A Framework and Taxonomy for Characterizing the Applicability of Software Architecture Recovery Approaches: A Tertiary-Mapping Study

Approach Heuristic Sub-Type of SAR Approach Approach Name + Reference Direction of Recovery Technique or Tool Availability Empirical Evaluation Applied-to Systems Required Input
ArchView [16] Top-Down Technique No Case Study Mozilla Source Code, Dynamic Information, Historical Information, Human Expertise
ArchVis [17] Hybrid Tool No Experimental Simulation A new feature-based evaluation framework Source Code, Textual Information, Dynamic Information, Physical Information, Styles, Viewpoints
ARM [18] Bottom-up Technique No Case Study SupraAnalyse and MATIS systems Source Code, Human Expertise
ARMIN [19], [20] Bottom-up Tool No Case Study Not Specified Source Code, Physical Organization, Human Expertise
Dali [21], [22] Hybrid Tool No Field Study VANISH Application Source Code, Human Expertise
Relational Queries Gupro [23] Bottom-up Tool No Not Specified German insurance company Source Code, Human Expertise
PBS/SBS [24] Bottom-up Tool No Case Study Linux Kernel Source Code, Physical Organization, Human Expertise
QADSAR [25] Bottom-up Technique No Case Study QAD analysis framework Source Code, Human Expertise, Viewpoints
Rules based Approach SARTool [26] Bottom-up Tool No Not Specified Not Specified Source Code, Human Expertise, Viewpoints
Softwarenaut [27], [28] Hybrid Tool Yes Not Specified Hapax semantic analysis framework Source Code, Textual Information, Physical Organization, Human Expertise
Unnamed repair approach [29] Hybrid Technique No Field Study Linux Kernel Source Code, Human Expertise
Logic Queries Intensive [30] Bottom-up Tool No Case Study Two recent versions of SmallWiki Source Code, Human Expertise
ArchVis [31] Hybrid Tool No Experimental Simulation A new feature-based evaluation framework Source Code, Textual Information, Dynamic Information, Physical Information, Styles, Viewpoints
Object Oriented Programs Static approach for OOP systems [32] Bottom-up Technique No Field Study Not Specified Dynamic Information
Abstract Object Language based approach [33] Bottom-up Tool No Precision and Recall Industrial and public domain systems Design Patterns
Lexical and Structural Queries Revealer [34], [35], [36] Bottom-up Tool No Case Study SPARTA Source Code, Textual Information, Human Expertise
OMT based approach [37] Bottom-up Technique and Tool No Precision and Recall Sodalia SpA Source Code
ART [37.5] Top-Down Tool Yes Precision and Recall H261, Samba, Bash, Mosaic Source Code, Human Expertise, Styles
Bauhaus [38], [39], [40] Bottom-up Technique No Case Study Aero, Bash, CVS, Mosaic Source Code, Dynamic Information, Human Expertise
ManSART [41], [42] Bottom-up Tool No Not Specified Not Specified Source Code, Physical Organization, Human Expertise, Styles
Style Matching Recognizer X-Ray [43] Bottom-up Technique No Case Study Control panel, Debugger interface, Cross reference facility, Message facility, Communication package Source Code, Human Expertise
ADDRA [44] Bottom-up Tool No Case Study Athena Architectural Styles
Unnammed [45] Hybrid Technique No Field Study Not Specified Source Code, Architectural Styles
Columbus [46] Bottom-up Tool No Field Study Maisa Source Code
Alborz [47], [48] Bottom-up Technique and Tool No Precision and Recall Not Specified Source Code, Dynamic Information, Human Expertise
ARM [49] Bottom-up Technique No Case Study SupraAnalyse and MATIS systems Source Code, Human Expertise
Graph Pattern Matching Rigi [50], [51], [52] Bottom-up Tool No Experimental Simulation RDS Source Code
Design Patterns and Features based Approach Shimba [53], [54] Bottom-up Tool No Case Study FUJABA Structural Information
Unnamed [55] Bottom-up Technique and Tool No Field Study AWT and JGL Design Patterns
Comparing to State machines reflecting architecture patterns DiscoTect [56] Bottom-up Technique No Case Study AAMS Source Code, Dynamic Information, Human Expertise, Styles
Unnamed [57] Bottom-up Tool No Case Study Telephone switching system Historical Information
Bauhaus [58], [59], [60] Bottom-up Technique No Case Study Aero, Bash, CVS, Mosaic Source Code, Dynamic Information, Human Expertise
PBS/SBS [61] Bottom-up Tool No Case Study Linux Kernel Source Code, Physical Organization, Human Expertise
Entities Mapping using naming conventions PuLSE/SAVE [62] Bottom-up Tool No Case Study Apache Tomcat, Go Phone, SAVE, TSAFE, Migration to a Reference Architecture, Product Line versus Implementations, Component Adequacy, Product Line Potential, Commonalities among Products Source Code, Human Expertise, Viewpoints
RMTool [63], [64] Top-Down Tool No Case Study NetBSD Source Code, Human Expertise
Unnamed repair approach [65], [66] Hybrid Technique No Field Study Linux Kernel Source Code, Human Expertise
Names Matching Algorithm [67] Bottom-up Technique No Respondents Not Specified Source Code File Name
ARES [68] Top-Down Technique and Tool No Case Study TCS Source Code, Human Expertise
Nimeta [69] Hybrid Technique and Tool No Case Study Venice Dynamic Information, Human Expertise, Viewpoints
Others Symphony [70], [71] Hybrid Technique No Case Study SDCC, CCL, NPF Dynamic Information, Human Expertise, Viewpoints
Unnammed [72] Bottom-up Tool No Field Study Linux, Mozilla, Commercial software development system Source Code, Human Organization, Historical Information, Human Expertise
Pat [73] Hybrid Tool Yes Precision and Recall zApp and LEDA Design Patterns
RPA based Approach Bottom-up Tool No Field Study Not Specified Not Specified
A microservice mesh based SAR [139] Bottom-up Technique No Not Specified TrainTicket microservice benchmark Source Code