Leveraging model-based product lines for systems engineering (Exploitation des lignes de produits fondées sur les modèles pour l’ingénierie système) Ferreira Filho, João Bosco - (2014-12-03) / Université de Rennes 1 Leveraging model-based product lines for systems engineering
| |||
Langue : Anglais Directeur(s) de thèse: Baudry, Benoit; Barais, Olivier Discipline : Informatique Laboratoire : IRISA Ecole Doctorale : Mathématiques, informatique, signal, électronique et télécommunications Classification : Informatique Mots-clés : Ingénierie dirigée par les modèles, ligne de produits, système logiciel, variabilité
| |||
Résumé : Actuellement, de nombreuses entreprises ont besoin de construire des versions\variantes légèrement différentes d'un même système. Ces versions partagent des points communs et des différences, le tout pouvant être géré à l'aide d'une approche ligne de produits (SPL). L'objectif principal d'une SPL est d'exploiter la personnalisation de masse, dans laquelle les produits sont réalisés pour répondre aux besoins spécifiques de chaque client. Pour répondre à ce besoin de personnalisation, les systèmes doivent être étendus de manière efficace, ou modifiés, configurés pour être utilisé dans un contexte particulier. Une approche encourageante consiste à connecter l'approche MDE (l'ingénierie dirigée par les modèles) à l'approche SPL – les SPL basées sur les modèles (MSPL). L'espace de conception, l'environnement du système logiciel que l'on construit (i.e., l'ingénierie du domaine) d'une MSPL est extrêmement complexe à gérer pour un ingénieur. Tout d'abord, le nombre possible des produits d'une MSPL est exponentielle au nombre d'éléments ou de décisions exprimé dans le modèle de variabilité. Ensuite, les modèles de produits dérivés doivent être conformes à de nombreuses règles liées au domaine métier mais aussi aux langages de modélisation utilisés. Troisièmement, le modèle de réalisation qui relie un modèle de variabilité et un modèle de base peut être très expressif. En plus, il faut ajouter que les ingénieurs système utilisent différents langages de modélisation dédiés dans le cadre de projets pour la réalisation de systèmes critiques. Nos contributions sont basées sur le fait qu'une solution générique, pour tous les domaines, et qui dérive des modèles corrects n'est pas réaliste, surtout si on prend en considération le contexte des systèmes complexes décrits précédemment. Nous proposons une approche indépendante du domaine pour générer des contre-exemples de MSPLs, révélant des erreurs de conceptions de modèles et supportant les parties prenantes à construire de meilleures MSPLs et des mécanismes de dérivation plus efficaces. Plus précisément, la première et principale contribution de la thèse est un processus systématique et automatisé, basé sur CVL (common variability language), pour la recherche aléatoire de contre-exemples de MSPL dans un langage donné. La seconde contribution de la thèse est un étude sur les mécanismes pour étendre la sémantique des moteurs de dérivation, offrant une approche basée sur des modèles à fin de personnaliser leurs sémantique opérationnelle. Dans la troisième contribution de la thèse, nous présentons une étude empirique à large échelle sur le langage Java en utilisant notre approche générative. La quatrième et dernière contribution de la thèse est une méthodologie pour intégrer notre travail dans une organisation qui cherche à mettre en œuvre les lignes de produit logiciels basées sur des modèles pour l'ingénierie des systèmes. Abstract : Systems Engineering is a complex and expensive activity in several kinds of companies, it imposes stakeholders to deal with massive pieces of software and their integration with several hardware components. To ease the development of such systems, engineers adopt a divide and conquer approach : each concern of the system is engineered separately, with several domain specific languages (DSL) and stakeholders. The current practice for making DSLs is to rely on the Model-driven Engineering (MDE. On the other hand, systems engineering companies also need to construct slightly different versions/variants of a same system; these variants share commonalities and variabilities that can be managed using a Software Product Line (SPL) approach. A promising approach is to ally MDE with SPL – Model-based SPLs (MSPL) – in a way that the products of the SPL are expressed as models conforming to a metamodel and well-formedness rules. The Common Variability Language (CVL) has recently emerged as an effort to standardize and promote MSPLs. Engineering an MSPL is extremely complex to an engineer: the number of possible products is exponential; the derived product models have to conform to numerous well- formedness and business rules; and the realization model that connects a variability model and a set of design models can be very expressive specially in the case of CVL. Managing variability models and design models is a non-trivial activity. Connecting both parts and therefore managing all the models is a daunting and error-prone task. Added to these challenges, we have the multiple different modeling languages of systems engineering. Each time a new modeling language is used for developing an MSPL, the realization layer should be revised accordingly. The objective of this thesis is to assist the engineering of MSPLs in the systems engineering field, considering the need to support it as earlier as possible and without compromising the existing development process. To achieve this, we provide a systematic and automated process, based on CVL, to randomly search the space of MSPLs for a given language, generating counterexamples that can server as antipatterns. We then provide ways to specialize CVL’s realization layer (and derivation engine) based on the knowledge acquired from the counterexamples. We validate our approach with four modeling languages, being one acquired from industry; the approach generates counterexamples efficiently, and we could make initial progress to increase the safety of the MSPL mechanisms for those languages, by implementing antipattern detection rules. Besides, we also analyse big Java programs, assessing the adequacy of CVL to deal with complex languages; it is also a first step to assess qualitatively the counterexamples. Finally, we provide a methodology to define the processes and roles to leverage MSPL engineering in an organization. |