Authors:
Assaad Moawad
1
;
Thomas Hartmann
1
;
Francois Fouquet
1
;
Gregory Nain
1
;
Jacques Klein
1
and
Johann Bourcier
2
Affiliations:
1
University of Luxembourg, Luxembourg
;
2
Université de Rennes 1, France
Keyword(s):
Multi-objective Evolutionary Algorithms, Optimization, Genetic Algorithms, Model-driven Engineering.
Related
Ontology
Subjects/Areas/Topics:
Frameworks for Model-Driven Development
;
Languages, Tools and Architectures
;
Methodologies, Processes and Platforms
;
Model Transformations and Generative Approaches
;
Model-Driven Architecture
;
Model-Driven Software Development
;
Modeling for the Cloud
;
Software Engineering
;
Software Process Modeling, Enactment and Execution
Abstract:
Multi-Objective Evolutionary Algorithms (MOEAs) have been successfully used to optimize various domains
such as finance, science, engineering, logistics and software engineering. Nevertheless, MOEAs are still
very complex to apply and require detailed knowledge about problem encoding and mutation operators to
obtain an effective implementation. Software engineering paradigms such as domain-driven design aim to
tackle this complexity by allowing domain experts to focus on domain logic over technical details. Similarly,
in order to handle MOEA complexity, we propose an approach, using model-driven software engineering
(MDE) techniques, to define fitness functions and mutation operators without MOEA encoding knowledge.
Integrated into an open source modelling framework, our approach can significantly simplify development and
maintenance of multi-objective optimizations. By leveraging modeling methods, our approach allows reusable
optimizations and seamlessly connects MOEA and MDE paradi
gms. We evaluate our approach on a cloud
case study and show its suitability in terms of i) complexity to implement an MOO problem, ii) complexity to
adapt (maintain) this implementation caused by changes in the domain model and/or optimization goals, and
iii) show that the efficiency and effectiveness of our approach remains comparable to ad-hoc implementations.
(More)