Get Complete Project Material File(s) Now! »

## Formalization and analysis of software architecture alternatives

An important goal of this thesis is to help system architects to automate the production of software architecture alternatives, and evaluate these alternatives regarding a set of conflicting non functional properties. In the past, different solutions have been proposed to perform the formalization and analysis of architecture alternatives. Some works such as in [1] proposed an approach based on feature models to capture configurations (or alternatives) in software produce lines [2]. Feature models allow to manage variable and common properties of products in a software product line, and to derive alternatives of software systems. Other works such as in [3] proposed an approach based on model transformations to automate the production of architecture alternatives for single-software systems.

Model transformations allow to produce new models (architecture alternatives) from existing ones. In the following we detail these two different techniques: feature models and model transformations.

### Multiple objective optimization techniques

Multiple objective optimization techniques (MOOTs) are well-known search strategies which offer a methodology and guidelines to resolve different multi-objective optimization problems. More precisely, MOOTs are used to explore large search spaces, compare the solutions of the search spaces with respect to multiple objectives (or criteria); and collect optimal solutions.

Multi-objective optimization techniques are a well established research field [20]. Most research works in this field focused on specific optimization problems, aiming at improving multiple criteria. Different MOOTs are presented in the following subsections.

**Linear programming with weighted objectives**

Linear programming with weighted objectives (LPWO) [21] is an optimization technique for finding an optimal solution to different multiple-objective optimization problems such as organization and allocation of resources. To apply LPWO on a given optimization problem, the latter must be represented by linear functions (y= f (x)). Thus, all the data of a multiple-objectives optimization problem (solutions, objectives and constraints) must be linearised (i.e., formulate using linear functions) into a single objective function, in order to solve the problem using LPWO. Notice that to linearise the objectives of an optimization problem, the user performs a well-known aggregation technique called weighted sum [21] based on weights and summation to have a single objective function. Applying the linear programming algorithm on this single objective function allows to find an optimal solution.

In the past, several works [22; 23; 24], proposed the use of linear programming with weighted objectives to solve different multiple objective optimization problems: resource allocation for very large scale service centers, optimization of web service compositions, In these works, the authors formalized their optimization problems as a multi-objective 0-1 integer linear problem [25], and apply linear programming algorithms to solve their problems.

Linear programming with weighted objectives provides an appropriate and simple representation (based on linear functions) of multiple-objective optimization problems. Yet, there are some limitations in the use of LPWO for multiple-objective optimization problems. Firstly, for each optimization problem, an additional effort is required to linearise the problem. Not all optimization problems can be formalized using linear functions. Some problems are composed of non-linear objectives. For instance, the objective function used to compute the reliability of an embedded system is non-linear, because the reliability of hardware components are variables, and multiplying them creates a curvilinear relationship. Applying LPWO on such problems is not efficient, and provides only one solution which is not optimal. Secondly, the application of LPWO requires to put weights on all the objectives and aggregate them into a single objective function using weighted sum. Note that weights are set manually. Thus, the identification of an optimal solution requires to put different weights for each objective and perform several experiments. To solve multiple-objective optimization problems (including non-linear problems) other MOOTs were proposed such as evolutionary algorithms.

#### Evolutionary algorithms

Evolutionary algorithms (EAs) provide a way to search through a large number of possibilities. EAs are inspired from the natural evolution. In other words, they are based on populations that evolve over several generations. In each generation, the EA selects from the search space several interesting solutions (also called parent solutions). These solutions are then analyzed regarding different objectives (criteria) to determine their quality.

From the evaluated parents, new solutions (also called offspring solutions) are determined, using selection (comparison of evaluated solutions) and genetic operators (crossover and mutation). The offspring solutions are evaluated to determine their quality and added to the population. Then, the population composed of parent and offspring solutions is shrunk by eliminating the worst solutions (regarding the results of the evaluation). Finally, all these steps (parent creation, evaluation) are repeated until the algorithm converge. Usually, an EA converges when there is no improvement in the objectives analysis of the population from one generation to another.

**Table of contents :**

**1 Introduction **

1.1 Context

1.2 Challenges

1.3 Problems overview

1.3.1 Creation of the design space of architecture alternatives

1.3.2 Correctness of architecture alternatives

1.4 Contributions

1.5 Structure of this Thesis

**2 Related Works **

2.1 Formalization and analysis of software architecture alternatives

2.1.1 Feature models

2.1.2 Model transformations

2.1.3 Model transformations composition

2.1.4 Discussion

2.2 Multiple objective optimization techniques

2.2.1 Linear programming with weighted objectives

2.2.2 Evolutionary algorithms

2.2.3 Discussion

2.3 Exploring a design space of architecture alternatives

2.3.1 Managing structural constraints

2.3.2 Genericity of design space exploration frameworks

2.3.3 Discussion

2.4 Exploring a design space of model transformations

2.4.1 Automate several steps of a design process

2.4.2 Management of model transformation dependencies

2.4.3 Automatic exploration of model transformations

2.4.4 Discussion

2.5 Conclusion

**3 Problem Statement **

3.1 Introduction

3.2 Identification and selection of architecture alternatives

3.2.1 Automatic enumeration of model transformation alternatives

3.2.2 Validation of model transformation compositions

3.3 Exploration of model transformation compositions

3.3.1 Structure model transformations for design space exploration

3.3.2 Exploration of chained model transformations

3.4 Conclusion

**4 Overview of the approach **

4.1 Introduction

4.2 Formalization of architecture alternatives

4.2.1 Modelling of architecture alternatives

4.2.2 Automatic identification of architecture alternatives

4.2.3 Validation of composite transformations

4.3 Design space exploration

4.3.1 Exploration of model transformation compositions

4.3.2 Exploration of model transformation chains

4.4 Conclusion

**5 Identification and composition of model transformation alternatives **

5.1 Introduction

5.2 Formalization of confluent transformation rule instantiations

5.2.1 Execution of rule-based model transformations

5.2.2 Identification of alternative transformation rule instantiations

5.3 Composition of atomic model transformation alternatives

5.3.1 Constraints Expressed on rule-based model transformations

5.3.2 Formalization of the transformation rule instantiations selection .

5.3.3 Automatic extraction of validity preserving transformation rule instantiations

5.4 Specification of transformation rule alternatives with ATL

5.4.1 ATL overview

5.4.2 Transformation Rules Catalog (TRC)

5.4.3 Extraction of Atomic Transformation Alternatives

5.5 Conclusion

**6 Multi-Objective selection and composition of composite transformations **

6.1 Introduction

6.2 Exploration of composite transformations using EAs

6.2.1 Encoding of composite transformations

6.2.2 Selection of composite transformations

6.2.3 Application of genetic operators on composite transformations

6.2.4 Identification of non-dominated composite transformations

6.3 Exploration of chained model transformations

6.3.1 Exploration of links

6.3.2 Application example

6.3.3 General formalization

6.4 Conclusion

**7 Experiments and Evaluation of the approach **

7.1 Introduction

7.2 Research questions

7.3 Evaluation of the genericity of the framework

7.3.1 Model refinement case study

7.3.2 Safety case study

7.4 Evaluation of the quality of the framework

7.4.1 A priori vs. a posteriori validation

7.4.2 Distance to local optimum

7.4.3 Resources consumption

7.4.4 Threats to validity

7.5 Conclusion

**8 Conclusion and Future work**

8.1 Conclusion

8.2 Future Work

8.3 Acknowledgements

**9 Résumé de la thèse en Français **

9.1 Contexte

9.2 Défis

9.3 Problématique

9.3.1 Création de l’espace de conception

9.3.2 Vérifier l’exactitude des alternatives architecturales

9.4 Identification et composition de transformations de modèles

9.4.1 Modélisation des alternatives architecturales

9.4.2 Identification automatique d’alternatives architecturales

9.4.3 Validation des transformation composites

9.5 Exploration de transformations composites

9.5.1 Exploration de transformations composites

9.5.2 Exploration de chaines de transformations de modèles

9.6 Expérimentations et évaluation de l’approche

9.6.1 Évaluation de la généricité du framework

9.6.2 Résultats expérimentaux pour le premier cas d’étude

9.6.3 Résultats expérimentaux

9.6.4 Évaluation de la qualité du framework

9.7 Conclusions

9.7.1 Conclusion

9.7.2 Perspectives

**10 Publications **

**Bibliography**