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.
翻译:软件维护是软件系统生命周期中至关重要的一环。现有软件系统的维护任务常因架构信息随时间推移而逐渐偏离(架构漂移)而受到影响。数字架构孪生(Digital Architecture Twin, DArT)能够通过提供实时更新的架构信息来支持软件维护。为此,DArT收集此类信息并与软件系统协同演进,从而实现持续逆向工程。然而,利益相关者检索这些信息的关键环节尚缺失。为弥补这一空白,我们提出了架构信息查询语言(Architecture Information Query Language, AIQL),使利益相关者能够获取最新且定制化的架构信息。我们在持续逆向工程背景下推导出四个应用场景,证明AIQL具备为这些场景构建查询所需的完整功能,且该语言可扩展至实际软件系统的应用。在一项用户研究中,利益相关者认可该语言易于理解,并评估了其在特定应用场景下对特定利益相关者的价值。