A multi-objective architecture reconstruction approach

by Frederik Schmidt

Institution: AUT University
Year: 0
Keywords: SBSE; Multi objective optimisation; Software architecture; Search based software engineering; Refactoring
Record ID: 1310395
Full text PDF: http://hdl.handle.net/10292/8234


Design erosion is a persistent problem within the software engineering discipline. Software designs tend to deteriorate over time regardless of the ambitions of the development stakeholders involved. The preservation and restoration of the software design and architecture are often hampered by rapid increases in size and complexity, changing requirements and insufficient understanding of the aspired architectural design. Technical debt accumulates due to neglected refactoring and maintenance activities. A comprehensive redesign and redevelopment is often inevitable if the deterioration is not confined at an early stage. A variety of architecture management, reverse engineering and refactoring approaches are available which can prevent or overcome this cycle of architecture deterioration. Architecture management approaches help to monitor the architecture and identify emerging violations. Reverse engineering approaches help to analyse and understand the current structure of the system, and refactoring techniques can be used to restructure the system. However, the subsequent implementation of architecture management approaches into a legacy system is a complex and time consuming endeavour which requires thorough reverse engineering, manual analysis and refactoring to re-establish a well-structured and violation-free architectural design. Hence, such approaches are typically only able to deliver partial solutions to the problems of architecture erosion, confinement of deterioration or to the challenge of architecture reconstruction. The objective of the research presented in this thesis is to evaluate whether a Search Based Software Engineering (SBSE) approach can offer valuable support and solutions within these problem domains. The present research provides a framework to recover high-level architecture designs of software systems by structuring low-level artefacts into high-level architecture artefact configurations. The framework is implemented within a toolset to demonstrate its feasibility and to enable a thorough evaluation of the framework. The prototype features the flexible combination and configuration of SBSE techniques with established architecture metrics and design goals to discover feasible high-level architectural designs. A variety of analysis and visualisation techniques are implemented to effectively evaluate the quality of the identified solutions. The output of this process is an architecture design classification that can be integrated seamlessly into the development process to identify emerging design deteriorations. An important by-product of the evaluation of this research is a multi-objective evaluation artefact that enables the statistical analysis of multi-objective solution sets based on the computation of optimal Pareto-Front performance metrics. The evaluation framework enables the statistical analysis of performance snapshots by supporting the agglomeration and slicing of solution sets based on user configurations. It has been found in this research that the application of…