A hybrid evolutionary multiobjective approach for the dynamic component selection problem

Component selection is a crucial problem in Component Based Software Engineering (CBSE). CBSE is concerned with the assembly of pre-existing software components that leads to a software system that responds to client-specific requirements. This work deals with the component selection problem which we formulate as multiobjective optimization, involving four objectives: the number of used components, the number of new requirements, the number of provided interfaces and the number of the initial requirements that are not in solution. We use the Pareto dominance principle to deal with the multiobjective optimization problem. Needles to say the last two objectives should be zero. Afterwards, we investigate the problem in an dynamic or changing environment for which two practical scenarios are envisaged: the repository containing the components varies over time and the system requirements change over time. The algorithm employed uses a combination of evolutionary algorithms and repair mechanism. The idea behind this was to avoid restarting the algorithm from randomly generated solutions and to make use of the ones found at the previous step.