Software Architecture Reconstruction Method, a Survey
---
paper_title: Software architecture reconstruction: An approach based on combining graph clustering and partitioning

paper_content:

This article proposes an approach of improving the accuracy of automatic software architecture reconstruction. Many research uses clustering for the purpose of architectural reconstruction. Our work improves the results of coupling/cohesion driven clustering by combining it with a partitioning preprocessing that establishes a layering of the classes of the system. Two simple and not really efficient algorithms for software clustering are improved by applying this approach, as it is shown in the validation section.
---
paper_title: Moving towards quality attribute driven software architecture reconstruction

paper_content:

There are many good reasons why organizations shouldperform software architecture reconstructions. However,few organizations are willing to pay for the effort. Softwarearchitecture reconstruction must be viewed not as an efforton its own but as a contribution in a broader technicalcontext, such as the streamlining of products into a productline or the modernization of systems that hit theirarchitectural borders. In these contexts software architectsfrequently need to reason about existing systems, forexample to lower adoption and technical barriers for newtechnology approaches. We propose a Quality AttributeDriven Software Architecture Reconstruction (QADSAR)approach where this kind of reasoning is driven by theanalysis of quality attribute scenarios.This paper introduces a quality attribute driven perspectiveon software architecture reconstruction. It presents atechnical reasoning framework and illuminates theinformation that is required from the reconstruction processto link the knowledge gained back to the business goals ofan organization. The paper illustrates the techniques bypresenting a real-world case study.
---
paper_title: Software Architecture Reconstruction: A Process-Oriented Taxonomy

paper_content:

To maintain and understand large applications, it is important to know their architecture. The first problem is that unlike classes and packages, architecture is not explicitly represented in the code. The second problem is that successful applications evolve over time, so their architecture inevitably drifts. Reconstructing the architecture and checking whether it is still valid is therefore an important aid. While there is a plethora of approaches and techniques supporting architecture reconstruction, there is no comprehensive software architecture reconstruction state of the art and it is often difficult to compare the approaches. This paper presents a state of the art in software architecture reconstruction approaches.
---
paper_title: Software Architecture Reconstruction: A Process-Oriented Taxonomy

paper_content:

To maintain and understand large applications, it is important to know their architecture. The first problem is that unlike classes and packages, architecture is not explicitly represented in the code. The second problem is that successful applications evolve over time, so their architecture inevitably drifts. Reconstructing the architecture and checking whether it is still valid is therefore an important aid. While there is a plethora of approaches and techniques supporting architecture reconstruction, there is no comprehensive software architecture reconstruction state of the art and it is often difficult to compare the approaches. This paper presents a state of the art in software architecture reconstruction approaches.
---
paper_title: Software Architecture Reconstruction: A Process-Oriented Taxonomy

paper_content:

To maintain and understand large applications, it is important to know their architecture. The first problem is that unlike classes and packages, architecture is not explicitly represented in the code. The second problem is that successful applications evolve over time, so their architecture inevitably drifts. Reconstructing the architecture and checking whether it is still valid is therefore an important aid. While there is a plethora of approaches and techniques supporting architecture reconstruction, there is no comprehensive software architecture reconstruction state of the art and it is often difficult to compare the approaches. This paper presents a state of the art in software architecture reconstruction approaches.
---
paper_title: CaCOphoNy: metamodel-driven software architecture reconstruction

paper_content:

Far too often, architecture descriptions of existing software systems are out of sync with the implementation. If they are, they must be reconstructed, but this is a very challenging task. The first problem to be solved is to define what "software architecture" means in the company. The answer can greatly vary, especially among the many stakeholders. In order to solve this problem, This work presents CaCOphoNy, a generic metamodel-driven process for reconstructing software architecture. This work provides a methodological guide and shows how metamodels can be used (1) to define architectural viewpoints, (2) to link these viewpoints to existing metaware and (3) to drive architecture reconstruction processes. The concepts presented Were identified over the last decade in the context of Dassault Systemes, one of the largest software companies in Europe, with more than 1200 developers. CaCOphoNy is however a very generic process pattern, and as such it can be applied in many other contexts. This process pattern is in line with the MDA and ADM approaches from the OMG. It also complies with the IEEE Standard 1471 for software architecture. A megamodel integrating these standards is presented.
---
paper_title: Software Architecture Reconstruction: A Process-Oriented Taxonomy

paper_content:

To maintain and understand large applications, it is important to know their architecture. The first problem is that unlike classes and packages, architecture is not explicitly represented in the code. The second problem is that successful applications evolve over time, so their architecture inevitably drifts. Reconstructing the architecture and checking whether it is still valid is therefore an important aid. While there is a plethora of approaches and techniques supporting architecture reconstruction, there is no comprehensive software architecture reconstruction state of the art and it is often difficult to compare the approaches. This paper presents a state of the art in software architecture reconstruction approaches.
---
paper_title: Moving towards quality attribute driven software architecture reconstruction

paper_content:

There are many good reasons why organizations shouldperform software architecture reconstructions. However,few organizations are willing to pay for the effort. Softwarearchitecture reconstruction must be viewed not as an efforton its own but as a contribution in a broader technicalcontext, such as the streamlining of products into a productline or the modernization of systems that hit theirarchitectural borders. In these contexts software architectsfrequently need to reason about existing systems, forexample to lower adoption and technical barriers for newtechnology approaches. We propose a Quality AttributeDriven Software Architecture Reconstruction (QADSAR)approach where this kind of reasoning is driven by theanalysis of quality attribute scenarios.This paper introduces a quality attribute driven perspectiveon software architecture reconstruction. It presents atechnical reasoning framework and illuminates theinformation that is required from the reconstruction processto link the knowledge gained back to the business goals ofan organization. The paper illustrates the techniques bypresenting a real-world case study.
---
paper_title: Software Architecture in Practice

paper_content:

The award-winning and highly influential Software Architecture in Practice, Third Edition, has been substantially revised to reflect the latest developments in the field. In a real-world setting, the book once again introduces the concepts and best practices of software architecturehow a software system is structured and how that systems elements are meant to interact. Distinct from the details of implementation, algorithm, and data representation, an architecture holds the key to achieving system quality, is a reusable asset that can be applied to subsequent systems, and is crucial to a software organizations business strategy. The authors have structured this edition around the concept of architecture influence cycles. Each cycle shows how architecture influences, and is influenced by, a particular context in which architecture plays a critical role. Contexts include technical environment, the life cycle of a project, an organizations business profile, and the architects professional practices. The authors also have greatly expanded their treatment of quality attributes, which remain central to their architecture philosophywith an entire chapter devoted to each attributeand broadened their treatment of architectural patterns. If you design, develop, or manage large software systems (or plan to do so), you will find this book to be a valuable resource for getting up to speed on the state of the art. Totally new material covers Contexts of software architecture: technical, project, business, and professional Architecture competence: what this means both for individuals and organizations The origins of business goals and how this affects architecture Architecturally significant requirements, and how to determine them Architecture in the life cycle, including generate-and-test as a design philosophy; architecture conformance during implementation; architecture and testing; and architecture and agile development Architecture and current technologies, such as the cloud, social networks, and end-user devices
---
paper_title: Moving towards quality attribute driven software architecture reconstruction

paper_content:

There are many good reasons why organizations shouldperform software architecture reconstructions. However,few organizations are willing to pay for the effort. Softwarearchitecture reconstruction must be viewed not as an efforton its own but as a contribution in a broader technicalcontext, such as the streamlining of products into a productline or the modernization of systems that hit theirarchitectural borders. In these contexts software architectsfrequently need to reason about existing systems, forexample to lower adoption and technical barriers for newtechnology approaches. We propose a Quality AttributeDriven Software Architecture Reconstruction (QADSAR)approach where this kind of reasoning is driven by theanalysis of quality attribute scenarios.This paper introduces a quality attribute driven perspectiveon software architecture reconstruction. It presents atechnical reasoning framework and illuminates theinformation that is required from the reconstruction processto link the knowledge gained back to the business goals ofan organization. The paper illustrates the techniques bypresenting a real-world case study.
---
paper_title: Software Architecture Reconstruction: A Process-Oriented Taxonomy

paper_content:

To maintain and understand large applications, it is important to know their architecture. The first problem is that unlike classes and packages, architecture is not explicitly represented in the code. The second problem is that successful applications evolve over time, so their architecture inevitably drifts. Reconstructing the architecture and checking whether it is still valid is therefore an important aid. While there is a plethora of approaches and techniques supporting architecture reconstruction, there is no comprehensive software architecture reconstruction state of the art and it is often difficult to compare the approaches. This paper presents a state of the art in software architecture reconstruction approaches.
---
paper_title: Software architecture reconstruction: An approach based on combining graph clustering and partitioning

paper_content:

This article proposes an approach of improving the accuracy of automatic software architecture reconstruction. Many research uses clustering for the purpose of architectural reconstruction. Our work improves the results of coupling/cohesion driven clustering by combining it with a partitioning preprocessing that establishes a layering of the classes of the system. Two simple and not really efficient algorithms for software clustering are improved by applying this approach, as it is shown in the validation section.
---

Title: Software Architecture Reconstruction Method, a Survey

Section 1: INTRODUCTION
Description 1: This section provides an overview of the necessity for software architecture reconstruction, the problems that arise with old software systems, and the iterative process of reconstruction.

Section 2: LITERATURE REVIEW
Description 2: This section presents an extended review of existing research on software architecture reconstruction, including terminology, factors leading to reconstruction, and techniques used.

Section 3: Bottom up Techniques
Description 3: This section describes the bottom-up technique for gathering information from lower levels, tools like ARMIN and Rigi used for this purpose, and the visualization of reconstructed views.

Section 4: Top down approaches
Description 4: This section explains the top-down approaches which start with high-level knowledge and verify it against the source code.

Section 5: Hybrid approaches
Description 5: This section discusses hybrid approaches that combine top-down and bottom-up methods, highlighting tools like Cacophony, Symphony, and Nimeta.

Section 6: SOFTWARE QUALITY ATTRIBUTES
Description 6: This section delves into the importance of quality attributes in software architecture, determining their influence on software features, and how they can be supported or conflicted.

Section 7: QUALITY ATTRIBUTES DRIVEN SOFTWARE ARCHITECTURE RECONSTRUCTION
Description 7: This section introduces a framework for quality attribute-driven architecture reconstruction and discusses application contexts and scenarios.

Section 8: INTERFACE IDENTIFICATION
Description 8: This section covers reverse engineering techniques for identifying software interfaces by analyzing source code.

Section 9: CLUSTER BASED ARCHITECTURE RECONSTRUCTION
Description 9: This section explains clustering approaches in software systems, the types of clustering algorithms, and their applications.

Section 10: COMPARATIVE ANALYSIS
Description 10: This section provides a comparative analysis of top-down, bottom-up, and hybrid approaches, including their advantages and drawbacks.

Section 11: CONCLUSION
Description 11: This section summarizes the findings of the survey, concludes that the bottom-up approach is most appropriate, and suggests future work with tools like ARMIN.