Summary: | 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 multi-objective optimisation techniques is a feasible approach to discover high-level software architecture configurations that feature software quality attributes that would be acceptable in practise. The inclusion of conceptual target architecture models in combination with software architecture conformance metrics enables the identification of modular software architecture configurations that align with desired high-level architecture designs. The performance of different Multi-Objective Evolutionary Algorithm (MOEA) implementations and MOEA tunings across different architecture reconstruction scenarios and software systems has been evaluated in this thesis. It has been found that the application of MOEA concepts such as genetic algorithms, scatter search, decomposition based search, differential evolution and particle swarm optimisation are feasible in the targeted application domain. The most prominent finding is that relaxed forms of Pareto-Dominance in combination with particle swarm optimisation search are powerful in finding promising architecture configurations in settings that feature many objectives.
|