Metaheuristic models for decision support in the software construction process – Ph.D. Thesis – Aurora Ramírez Quesada Dept. Computer Science and Numerical Analysis University of Córdoba Supervisors: Dr. José Raúl Romero Salguero Dr. Sebastián Ventura Soto 24 th September 2018
Introduction Architecture discovery Multi/Many perspectives Human-in-the-loop approach Conclusions Introduction 1 2 Evolutionary discovery of software architectures The multi- and many-objective perspectives 3 The human-in-the-loop approach 4 Conclusions and future work 5 Aurora Ramírez Quesada Ph.D. Thesis 2 / 50
Introduction Architecture discovery Multi/Many perspectives Human-in-the-loop approach Conclusions Introduction Aurora Ramírez Quesada Ph.D. Thesis 3 / 50
Introduction Architecture discovery Multi/Many perspectives Human-in-the-loop approach Conclusions Background - Software architectures A software architecture represents “the fundamental concepts or properties of a system in its environment embodied in its elements, relationships, and in the principles of its design and evolution” (ISO/IEC Std. 42010) A bridge between requirements and implementation Essential in early software conception and its subsequent evolution Special focus on non-functional requirements: availability, performance, security... Software architectures are fundamental for: Understanding Reuse Construction Evolution Analysis Management Aurora Ramírez Quesada Ph.D. Thesis 4 / 50
Introduction Architecture discovery Multi/Many perspectives Human-in-the-loop approach Conclusions Background - Metaheuristics “Intelligent” exploration of the search space Optimality is not guaranteed Intensification and diversification Properties: Iterative 1 Stochastic 2 Memory-based 3 Bio-inspired 4 Aurora Ramírez Quesada Ph.D. Thesis 5 / 50
Introduction Architecture discovery Multi/Many perspectives Human-in-the-loop approach Conclusions Background - Evolutionary computation “It is not the strongest of the species that survives, nor the most intelligent that survives. It is the one that is most adaptable to change.” (Charles Darwin) Phenotype/genotype mapping The fitness function Aurora Ramírez Quesada Ph.D. Thesis 6 / 50
Introduction Architecture discovery Multi/Many perspectives Human-in-the-loop approach Conclusions Background - Optimisation with multiple objectives Multi-objective optimisation problem: x = [ x 1 , x 2 , ..., x n ] subject to g j ( x ) ≤ 0 j = 1 , ..., p f ( x ) = [ f 1 ( x ) , f 2 ( x ) , ..., f m ( x )] 2-3 objectives, often in conflict ( ≥ 4 → many-objective) The concept of Pareto dominance No single optimal solution ⇒ Pareto Set (PS) In the objective space ⇒ Pareto Front (PF) The goals of a multi-/many-objective evolutionary algorithm (MOEA/MaOEA): 1 To find a good approximation of the true PF 2 To generate a well-spread and uniform PF Aurora Ramírez Quesada Ph.D. Thesis 7 / 50
Introduction Architecture discovery Multi/Many perspectives Human-in-the-loop approach Conclusions Background - Interactive optimisation Any optimisation method, including Full automation is not always realistic: metaheuristics, in which the human Uncertainty scenarios actively participates in any step of the Creative tasks process to provide feedback Human is put in the loop: To provide problem knowledge To increase trust on automatic results To meet user’s expectations Design and implementation issues: Selection of solutions Type of feedback Frequency of interaction Information lifetime Aurora Ramírez Quesada Ph.D. Thesis 8 / 50
Introduction Architecture discovery Multi/Many perspectives Human-in-the-loop approach Conclusions Background - Search-based Software Engineering Origin and characteristics SBSE was formalised as research field by Harman and Jones in 2001 Software engineering activities can be reformulated as optimisation problems Examples along the software lifecycle: project planning, requirement priorisation, selection of test cases, refactoring... Software metrics are adopted to define the fitness function Evolutionary computation (EC) stands out as the most popular technique Search-based software design (SBSD) The need of creativity and intuition makes it particularly challenging Applicable to different paradigms (object-oriented, services...) Problem encoding and evaluation are hard to define Aurora Ramírez Quesada Ph.D. Thesis 9 / 50
Introduction Architecture discovery Multi/Many perspectives Human-in-the-loop approach Conclusions Background - Software architecture optimisation Scope and characteristics Automatic specification and improvement of architectural models Often guided by more than one non-functional requirement Problems can be defined at different levels of abstraction Current approaches Architecture synthesis from requirements or use cases Selection and assembling of black-box components, e.g. COTS Recovery of software components from code Architecture deployment (reconfiguration and allocation) Aurora Ramírez Quesada Ph.D. Thesis 10 / 50
Introduction Architecture discovery Multi/Many perspectives Human-in-the-loop approach Conclusions Objectives General objective: Development of search models based on metaheuristic algorithms to provide semi-automatic support to software engineers in early stages of the software development process Subobjectives: O 1 : Analysis of the state of the art in SBSE, especially in the areas of SBSD and architecture optimisation O 2 : Design and development of a metaheuristic model based on EC to support the discovery of component-based software architectures O 3 : Design and development of multi-objective approaches and hybrid techniques to study their suitability to the decision support process O 4 : Design and development of an interactive approach to incorporate human expertise in the context of software architecture optimisation Aurora Ramírez Quesada Ph.D. Thesis 11 / 50
Introduction Architecture discovery Multi/Many perspectives Human-in-the-loop approach Conclusions Work plan 1 Formulation of software architecture discovery as an optimisation problem 2 A first evolutionary model to validate the idea 3 Exploration of diverse search techniques to cope with additional decision factors 4 Participation of the engineer to complete the scenario Aurora Ramírez Quesada Ph.D. Thesis 12 / 50
Introduction Architecture discovery Multi/Many perspectives Human-in-the-loop approach Conclusions Problem description Software architecture discovery To identify the underlying architecture of the system from the analysis information contained in a UML class diagram The elements of the component-based software architecture are obtained as follows: Component A cohesive group of classes that work together to satisfy the expected behaviour of the component Interface A directed relationship between classes in the analysis model belonging to different components Connector The linkage between a pair of required / provided interfaces interconnecting different components Aurora Ramírez Quesada Ph.D. Thesis 13 / 50
Introduction Architecture discovery Multi/Many perspectives Human-in-the-loop approach Conclusions Evolutionary discovery of software architectures Aurora Ramírez Quesada Ph.D. Thesis 14 / 50
Introduction Architecture discovery Multi/Many perspectives Human-in-the-loop approach Conclusions Motivation Current approaches recover components from low-level artefacts, e.g. code The process cannot be performed until the system is built The system structure could be different from that originally conceived Analysis information is omitted Aurora Ramírez Quesada Ph.D. Thesis 15 / 50
Introduction Architecture discovery Multi/Many perspectives Human-in-the-loop approach Conclusions Research questions RQ: Can single-objective EAs help the software engineer to iden- tify an initial candidate architecture of a system at a high level of abstraction? RQ: How does the configuration of the algorithm influence both the evolutionary performance and the quality of the returned solution? Aurora Ramírez Quesada Ph.D. Thesis 16 / 50
Introduction Architecture discovery Multi/Many perspectives Human-in-the-loop approach Conclusions Solution encoding Solutions are encoded using tree structures: Hierarchical decomposition E_req_A Comprehensive for software engineers Architectural solutions of different size A_prov_E Phenotype Architecture Components Connectors Component_1 Component_2 Connector_1 Required Provided Provided Required Provided Required Classes Classes interfaces interfaces interfaces interface interface interfaces A B C D A_prov_E E F G H E_req_A E_req_A A_prov_E Genotype Aurora Ramírez Quesada Ph.D. Thesis 17 / 50
Introduction Architecture discovery Multi/Many perspectives Human-in-the-loop approach Conclusions Fitness function Intra-modular Coupling Density (ICD) n CI in ICD i = # classes total − # classes i ICD = 1 i � · n · ICD i CI in i + CI out # classes total i i = 1 External Relations Penalty (ERP) n n � � ERP = ( w as · n as ij + w ag · n ag ij + w co · n co ij + w ge · n ge ij ) i = 1 j = i + 1 Groups/Components Ratio (GCR) GCR = # cgroups n � r ( ICD ( ind )) + r ( ERP ( ind )) + r ( GCR ( ind )) if ind is feasible fitness ( ind ) = # individuals · # metrics + 1 if ind is infeasible Aurora Ramírez Quesada Ph.D. Thesis 18 / 50
Recommend
More recommend