Architectural reconstruction is a reverse engineering activity aiming at recovering the missing decisions on a system. It can help identify the components, within a legacy software application, according to the application's architectural pattern. It is useful to identify architectural technical debt. We are interested in identifying layers within a layered application since the layered pattern is one of the most used patterns to structure large systems. Earlier component reconstruction work focusing on that pattern relied on generic component identification criteria, such as cohesion and coupling. Recent work has identified architectural-pattern specific criteria to identify components within that pattern. However, the architectural-pattern specific criteria that the layered pattern embodies are loosely defined. In this paper, we present a first systematic literature review (SLR) of the literature aiming at inventorying such criteria for layers within legacy applications and grouping them under four principles that embody the fundamental design principles under-lying the architectural pattern. We identify six such criteria in the form of design rules. We also perform a second systematic literature review to synthesize the literature on software architecture reconstruction in the light of these criteria. We report those principles, the rules they encompass, their representation, and their usage in software architecture reconstruction.
翻译:建筑重建是一项反向工程活动,旨在恢复一个系统上缺失的决定;它有助于根据应用的建筑结构模式,在遗留的软件应用中查明组成部分;它有助于查明建筑技术债务;我们有兴趣确定一个层层应用中的层层,因为层图案是构建大型系统最常用的模式之一;早期的构件重建工作,以该模式为主,依靠通用组成部分识别标准,如凝聚和组合;最近的工作确定了建筑-模式具体标准,以确定该模式中的各个组成部分;然而,层层模式所体现的建筑-模式具体标准是定义松散的;在本文件中,我们首次对文献进行了系统化文献审查,目的是将遗留应用中的层标准进行编目整理,并将其归为四项原则,其中体现了建筑模式下的基本设计原则;我们确定了设计规则形式的六种标准;我们还进行了第二次系统文献审查,以根据这些标准综合软件结构重建的文献。我们报告了这些原则、规则及其在软件结构重建中的代表性和用途。