Software maintenance is an important part of a software system's life cycle. Maintenance tasks of existing software systems suffer from architecture information that is diverging over time (architectural drift). The Digital Architecture Twin (DArT) can support software maintenance by providing up-to-date architecture information. For this, the DArT gathers such information and co-evolves with a software system, enabling continuous reverse engineering. But the crucial link for stakeholders to retrieve this information is missing. To fill this gap, we contribute the Architecture Information Query Language (AIQL), which enables stakeholders to access up-to-date and tailored architecture information. We derived four application scenarios in the context of continuous reverse engineering. We showed that the AIQL provides the required functionality to formulate queries for the application scenarios and that the language scales for use with real-world software systems. In a user study, stakeholders agreed that the language is easy to understand and assessed its value to the specific stakeholder for the application scenarios.
翻译:软件维护是软件系统生命周期中的重要环节。现有软件系统的维护任务常因架构信息随时间逐渐偏离实际(架构漂移)而面临困难。数字架构孪生可通过提供最新的架构信息来支持软件维护。为此,DArT收集此类信息,并与软件系统协同演化,从而实现持续逆向工程。然而,利益相关者检索这些信息的关键环节仍然缺失。为填补这一空白,我们提出了架构信息查询语言,使利益相关者能够获取最新且定制化的架构信息。我们推导出持续逆向工程场景下的四个应用案例。研究表明,AIQL能够提供针对应用案例制定查询所需的必要功能,且该语言具备处理真实软件系统的可扩展性。在用户研究中,利益相关者一致认为该语言易于理解,并评估了其针对特定利益相关者在应用案例中的价值。