| 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 |