This page describes the Multi-Objective Optimization Approach for PLA Design (MOA4PLA). All the information provided in this page were extracted from our works.
In this page you will find:
The Multi-Objective Optimization Approach for PLA design (MOA4PLA) [Colanzi et al., 2014], as the name says, is an approach to optimize Product Line Architectures (PLAs) design using multi-objective algorithms. MOA4PLA receives a PLA modeled in a UML class diagram containing all commonalities and variabilities, and optimize it while being guided by an evaluation model composed by software metrics. At the end of the optimization process, a set of solutions with the best trade-off between objectives is generated and the architect may select which architecture will be used.
The approach uses traditional mutation operators, as well as feature-driven mutation and crossover operators to modularize features. The activities of MOA4PLA are shown in Figure 1 and detailed next.
The first activity is the Construction of the PLA Representation. This activity has as input the PLA architecture designed in a class diagram. From this input a representation is generated according to the metamodel presented in Figure 2 [Colanzi and Vergilio, 2013].
The metamodel has all conventional elements of a class diagram (class, interface, method, attributes, etc.) and also SPL specific elements (variability, variation point, variant, etc.). Each element is associated to the SPL features (represented by stereotypes) that it realizes. A variable element is associated to a variability which has a variation point and variants.
In the second activity, Definition of the Evaluation Model, the architect defines which metrics will be used to guide the optimization process in order to fulfill his/her purposes. These metrics are used as fitness functions in the multi-objective optimization.
The third activity is the Multi-Objective Optimization. In this activity, the PLA representation and the evaluation model obtained in the previous activities are used to optimize the PLA design using a multi-objective algorithm selected by the architect. In this activity the architect may inform if there is any constraint, such as discarding solutions containing interfaces without operations or relationships. During the optimization process the search operators are used to generate PLA alternatives.
Finally, in the last activity (Transformation and Selection), the best PLA representations are converted to UML class diagrams in order to be readable by the architect. After this, the architect can select the one which better fits his/her organizational goals and use it as the architecture of the SPL.
In fact, MOA4PLA is automatized by the OPLA-Tool [Colanzi, 2014]. This tool was implemented as an extension of the jMetal framework. The OPLA-Tool modules are presented in Figure 3 and described next.
The OPLA-GUI module [Féderle, 2014] is the graphical interface for the interaction with the architect. This module allows the architect to chose which algorithm must be used, the metrics for the generation of the evaluation model and the search-based operators. Besides that, it allows the definition of which PLA will be used as input for the optimization process and the visualization of the generated results.
To allow that, the OPLA-GUI module uses services provided by the OPLA-Encoding, OPLA-Decoding and OPLA-Core modules [Féderle, 2014]. The OPLA-Encoding module receives a PLA modeled as a class diagram and converts it to a representation according to the metamodel presented in Figure 2. This representation is manipulated by the OPLA-Core module, which executes the optimization algorithm and returns to the architect a set of PLAs with the best trade-off between the objectives. These PLAs representations are then decodified by the OPLA-Decoding module, which transforms this representation into a class diagram for a better visualization.
The OPLA-Patterns module [Guizzo, 2014] and the OPLA-ArchStyles module [Mariani, 2015] have as objective, respectively, the application of design patterns and the preservation of architectural styles in order to improve the optimized PLA designs.
MOA4PLA improves the design of PLAs using a evaluation model given by the architect. In addition, this optimization is totally automatic, easing the burden of architecture optimization and reducing human effort. This implies in an automatic optimization of PLA design without discarding the needs of the architect.
According to empirical evaluations [Colanzi et al., 2014; Guizzo et al., 2014; Féderle, 2014; Mariani, 2014], the PLA designs obtained by the MOA4PLA optimization have the best trade-offs between the considered objectives and overall good quality. Current works are investigating the other benefits of MOA4PLA and addressing new research areas to improve even more the results of the approach.
Please visit the "Works" section in which the works related to this approach are listed.