Systematically reviewing the layered architectural pattern principles and their use to reconstruct software architectures
Alvine B. Belle, Ghizlane El Boussaidi, Timothy C. Lethbridge, Segla, Kpodjedo, Hafedh Mili, Andres Paz

TL;DR
This paper systematically reviews principles and criteria for identifying layers in software architectures, aiding in architectural reconstruction and understanding technical debt in legacy systems.
Contribution
It introduces a systematic literature review of layered pattern principles, identifying six specific criteria and grouping them into four fundamental design principles.
Findings
Identified six criteria for layer identification
Grouped criteria under four core design principles
Synthesized literature on architecture reconstruction using these principles
Abstract
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware System Performance and Reliability · Software Engineering Research · Advanced Software Engineering Methodologies
