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 |
Approach Heuristic | Sub-Type of SAR Approach | Approach Name + Reference | Direction of Recovery | Technique or Tool | Availability | Empirical Evaluation | Applied-to Systems | Required Input |
---|---|---|---|---|---|---|---|---|
Alborz [74], [75] | Bottom-up | Tool | No | Precision and Recall | Not Specified | Source Code, Dynamic Information, Human Expertise | ||
A concept analysis based approach [80] | Hybrid | Tool | No | Experimental Simulation | A new feature-based evaluation framework | Source Code, Textual Information, Dynamic Information, Physical Information, Styles, Viewpoints | ||
Feature based Architecture Recovery [86] | Bottom-up | Technique | No | Case Study | Aero, Bash, CVS, Mosaic | Source Code, Dynamic Information, Human Expertise | ||
Concept Analysis | Unnamed [91] | Bottom-up | Technique | No | Case Study | Chull, BDD, Go, Lucent Code | Source Code | |
URCA [81] | Bottom-up | Tool | Yes | Not Specified | Not Specified | Source Code, Dynamic Information, Human Expertise | ||
Cacophony [87] | Bottom-up | Technique | No | Case Study | Control panel, Debugger interface, Cross reference facility, Message facility, Communication package | Source Code, Human Expertise | ||
Directed Analysis | Symphony/Nimeta [88], [89], [90] | Bottom-up | Tool | No | Field Study | PKUAS, EJB | Source Code, Dynamic Information, Styles | |
Unnamed [83], [84] | Bottom-up | Tool | No | Experimental Simulation | Call Graph | Source Code, Human Expertise | ||
X-Ray [82] | Bottom-up | Technique | No | Case Study | Image Processing System | Source Code, Dynamic Information, Human Expertise, Styles | ||
Dominance Analysis | Bauhaus [77], [78], [79] | Hybrid | Tool | No | Not Specified | Dassault Systèmes | Human Expertise | |
Unnamed (Dominance analysis) [85] | Hybrid | Technique and Tool | No | Case Study | SDCC, CCL, NPF, Venice | Dynamic Information, Human Expertise, Viewpoints | ||
Layers and Matrix | ArchVis [76] | Bottom-up | Technique | No | Precision and Recall | Not Specified | Not Specified | |
LBHFC [92] | Bottom-up | Technique | No | Field Study | Bash, CVS, CA, WCA, LIMBO | Structural Information | ||
UPGMA [93] | Bottom-up | Technique | No | Case Study | Telecommunications system | Object-attribute data matrix | ||
Probabilistic model based on Expectation Maximization [94] | Bottom-up | Technique and Tool | No | Case Study | EasyMock, JabRef, Javagroups, JEdit, JUnit, Jvlt | Lexical information | ||
LBME [95] | Bottom-up | Technique and Tool | No | Field Study | ArgoUML, GEF, JFreeChart, Lucene, Solr, Tomcat, Weka,BMC, Equality, Karniyarik, SMC | Structural Information | ||
WCA [96] | Bottom-up | Technique | No | Similarity Metrics | Xfig, Bash | Structural Information | ||
LIMBO [97], [98], [99] | Bottom-up | Technique | No | Similarity Metrics | 4 algorithms and 5 datasets | Not Specified | ||
ARC [100] | Bottom-up | Technique | No | Similarity Metrics | MALLET, Weka, Soot | IR based information | ||
Weight based Approaches | Zone Based Recovery (ZBR) [101], [102] | Bottom-up | Technique | No | Case Study | EasyMock, JabRef, Javagroups, JEdit, JUnit, Jvlt, JHotDraw, JFreeChart, PMD, FindBugs, ArgoUML, EclipseJdtCore, JdkSwing | Textual Information | |
A Hypergraph Clustering based approach [103] | Bottom-up | Technique | No | Precision and Recall | CRM | Structural Information | ||
CCHD based Approach [104] | Bottom-up | Technique and Tool | No | Experimental Simulation | Sando, Apache httpd, JEdit, Apache OODT, Hadoop, ArchStudio, and ITK | Source Code | ||
HCC [105] | Bottom-up | Technique | No | Experimental Simulation | DDA, FES, Junit, SAVT, iText, Weka | Structural Information | ||
Clustering (Non ML based/Not Specified) | A clustering method for SAR based on source code [106] | Bottom-up | Technique | No | Experimental Simulation | CVS, Mosaic, Bash, Xfig | Source Code | |
WDCG based SAR [107] | Top-Down | Technique | No | Experimental Simulation | Software clustering quality, authoritativeness, extremity of cluster distribution and stability | Structural Information | ||
Unnamed [108] | Bottom-up | Technique | No | Precision and Recall | Xfig, Bash | Not Specified | ||
HYGAR [141] | Hybrid | Technique | No | Case Study | Lucene, OpenJPA, Bash, Hadoop, ArchStudio | Structural Information | ||
HYGAR-II [142] | Hybrid | Technique | Yes | Case Study | Lucene, OpenJPA, Bash, Hadoop, ArchStudio, Nutch, Struts2 | Structural Information | ||
Unnamed [109], [110] | Bottom-up | Technique | No | Precision and Recall | Mobile Media and Health Watcher | Lexical information | ||
Softwarenaut [111], [112] | Hybrid | Tool | Yes | Not Specified | Hapax semantic analysis framework | Source Code, Textual Information, Physical Information, Styles | ||
Knowledge Based Recovery | ArchMine [113] | Top-Down | Technique | No | Case Study | CSBase | Not Specified | |
A proximity measure based SAR approach [114] | Not Specified | Technique | No | Case Study | Not Specified | Structural Information | ||
Software Reflexion Model [115] | Bottom-up | Technique and Tool | No | Case Study | NetBSD, Restructuring Tool, Excel | Source Code | ||
CASE based Approach [116] | Bottom-up | Tool | No | Not Specified | Not Specified | Architectural Information | ||
Architecture recovery based on a software structure [117] | Bottom-up | Technique and Tool | No | Field Study | Ericsson | Not Specified | ||
Mapping Based Recovery | ACDC [118] | Bottom-up | Technique | No | Field Study | TOBEY, Linux | Structural Information | |
ARCADE [119] | Bottom-up | Technique and Tool | Yes | Case Study | Not Specified | Structural Information, Lexical Information | ||
SysMar [120] | Bottom-up | Technique | No | Case Study | Not Specified | Source Code | ||
Program Slicing | MDGs based technique [121] | Bottom-up | Technique | No | Case Study | Compiler, boxer, minitunis, ispell, rcs, bison | Not Specified | |
Dependency Based Recovery | MAFM [143] | Bottom-up | Technique | No | Not Specified | SpringCloud, SpringBlade, SOP, microservice-platform, mogu_blog_v2, bigfans-cloud, mall-swarm, pig, Xueyuan, auto-platfrom@STQ, multi-task@STQ, ci-platform@STQ | Structural Information, Source Code |