Abstract
Background/Objectives: The software architecture recovery process is an activity that is included in different contexts. However, the methodological proposals to perform this process do not take into account the particular needs of the context in which it is developed. The objective of this work is to propose a methodology for Software Architecture Recovery, responding the specific needs of the context in which the need to recover the architecture of a software product is presented. Methods: The model was obtained after applying the pattern-matching technique in order to establish the common aspects to all the proposals identified in the literature review. Findings: The results of the evaluation of the methodological proposal reveal the usefulness when recovering architectures, since it allows focusing attention on the most relevant aspects of recovery for the specific context in which the process is performed. Novelty: The defined methodological proposal is a new way of performing architecture recovery processes, which achieves more relevant results to the context in which the needs arise. Keywords: Architecture Recovery, Methodological Approach, Reverse Engineering, Software Architecture
Highlights
From the beginning, reverse engineering has been used as a software maintenance technique[1], throughout its evolution, it has been used to solve several problems which software engineering is facing, such as: the recovery of architectures and design patterns, the re-documentation of programs and databases, the identification of reusable assets, the definition of traceability between software artifacts, the identification of the impact of software product changes, the restructuring of existing systems, the renewal of interfaces of user, the migration towards new architectures and platforms among others[2]
This characteristic has caused in the fields of application of reverse engineering to be extended to different contexts, such as: Software production, computer security, forensic computing and education[3]
Architecture recovery techniques and methods identified in the literature review have been defined only for situations that arise in the context of software production[4]
Summary
Reverse engineering has been used as a software maintenance technique[1], throughout its evolution, it has been used to solve several problems which software engineering is facing, such as: the recovery of architectures and design patterns, the re-documentation of programs and databases, the identification of reusable assets, the definition of traceability between software artifacts, the identification of the impact of software product changes, the restructuring of existing systems, the renewal of interfaces of user, the migration towards new architectures and platforms among others[2]. In a context like computer security, there are situations such as the analysis of malicious software, which are addressed by security experts, whose purpose is to understand the structure and behavior of this type of program to solve the representing risks. Under these circumstances, there are no artifacts such as source code, configuration files, data structures or documentation. There is a need to define a methodological proposal that guides the process of architecture recovery, taking into account the interests of the participants and the specific characteristics of each context, in which the situation to be solved is presented
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.