thesis

COMpOSER : a model-driven software product line approach for an effective management of software reuse within software product families and populations

Defense date:

Dec. 11, 2019

Edit

Institution:

Montpellier

Disciplines:

Abstract EN:

Software systems are constantly increasing in size and complexity, forcing the software industry to migrate their hand-craft development processes, slowly realizing each product, to more systematized and automated ones, mass-producing software at lower costs. This migration process, that we call industrialization, can be achieved through the integration of systematic software reuse and automation in their development processes. Their combination results in the realization of sounder products at lower costs. Existing approaches combining Model-Driven Architecture (MDA) and Software Product Line Engineering (SPLE) partially automate development processes with systematic software reuse by capitalizing on their compatible benefits. While MDA permits developers to define highly reusable assets and automatic operations to perform on them, SPLE systematizes software reuse by relying on the commonalities and variabilities of a set of related products named a software product family. However, these approaches suffer from two major restrictions that can be a brake for companies aiming to industrialize their development processes using these solutions. Firstly, they have difficulties to fully manage variability at different levels of abstraction because of the rapidly increasing complexity of operations performed on assets alongside the addition of new variation points. Then, existing combinations of MDA and SPLE are limited to the management of variability in a software product family. But, in some contexts such as IT services companies, variability can be related to more heterogeneous sets of products than families named software product populations. Although some existing works propose to manage the variability in a software product population, these approaches, by composing independent software product lines, are limited to the composition, and by extension to reuse, of coarse-grained assets.In this PhD thesis, we propose a new approach named COMpOSER (CrOss-platform MOdel-driven Software product line EngineeRing) which defines an efficient way to compose MDA and SPLE in order to fully manages variability in a software product family but also in a software product population without reducing its reuse capabilities. To do so, COMpOSER introduces a new characterization of variability to organize reusable assets in three dimensions: the business dimension; the architecture dimension; and the technological ecosystem dimension. Additionally, this characterization distinguishes inter-domain variability, organizing the different software product families of a population, and intra-domain variability, organizing assets in a single software product family. To properly organize reusable assets, COMpOSER defines a model of fine-grained core assets which is compatible with its characterization of variability. In parallel, our approach defines partially automated operations to produce new software through systematic reuse which permit to fully manage variability without inducing scaling up issues with the addition of new variation points. Thanks to our collaboration with an industrial partner, we could experiment COMpOSER by applying our propositions to help the company industrializing its development processes. As such, we implemented a framework that supports our approach while considering the specificities of our industrial context. This framework embeds the principles of COMpOSER in a format that is easier to understand to developers with little knowledge about SPLE and MDA. In this way, we have observed that the framework facilitated the adoption of our solutions by the company's development teams. Using the COMpOSER framework, we obtained results demonstrating how our approach improves systematic software reuse when compared to concurrent approaches. These results stemmed from empirical experiments performed on concrete industrial case studies.

Abstract FR:

Avec la constante croissance en taille et en complexité des systèmes logiciels, l'industrie logicielle est poussée à migrer ses processus de développements manuels, réalisant chaque produit individuellement et lentement, vers des procédés systématiques et automatisés, produisant massivement des logiciels et à moindre coût. Cette migration, que nous appelons industrialisation, peut être réalisée en favorisant à la fois la réutilisation logicielle systématique et l'automatisation dans les phases de développement. Favoriser ces pratiques permet la réalisation de produits de meilleure qualité à coût réduit. Les approches existantes combinant l'Architecture Dirigée par les Modèles (MDA) et l'Ingénierie des Lignes de Produits Logiciels (SPLE) automatisent la réutilisation dans leurs processus de développement en exploitant les avantages de MDA et SPLE. Tandis que MDA permet aux développeurs de définir des artefacts hautement réutilisables et des opérations automatiques à effectuer sur ces artefacts, SPLE systématise la réutilisation en s'appuyant sur les similarités et les différences d'un ensemble de produits similaires appelé famille de produits logiciels. Cependant, ces combinaisons souffrent de deux restrictions majeures pouvant être un frein aux entreprises souhaitant industrialiser leurs processus en utilisant ces solutions. D’une part, il leur est difficile de gérer efficacement la variabilité. En effet, la complexité des opérations effectuées sur les artefacts dépend du nombre de points de variation à gérer. D'autre part, ces approches se limitent à gérer la variabilité au sein d'une famille de produits. Or, dans certains contextes comme les sociétés de services, la variabilité peut concerner un ensemble plus hétérogène de produits nommé population de produits. Bien que certains travaux proposent de gérer la variabilité au sein d'une population de produits, ces derniers, en proposant de composer des lignes de produits indépendantes, limitent la composition, et ainsi la réutilisation, d'artefacts à gros grain.Dans cette thèse, nous proposons une nouvelle approche nommée COMpOSER (CrOss-platform MOdel-driven Software product line EngineeRing) définissant une solution efficace pour composer MDA et SPLE afin d'exploiter intégralement la variabilité à la fois d'une famille mais également d'une population de produits logiciels. Pour cela, COMpOSER introduit une nouvelle caractérisation de la variabilité pour organiser des artefacts réutilisables selon trois dimensions : la dimension métier ; la dimension architecturale ; et la dimension des écosystèmes technologiques. De plus, cette caractérisation distingue la variabilité inter-domaine, responsable de l'organisation des différentes familles au sein d'une population, et la variabilité intra-domaine, organisant les artefacts dans chaque famille. Afin d'organiser correctement ces artefacts, COMpOSER définit un modèle d'artefacts réutilisables à fine granularité étant compatible avec cette caractérisation. Par ailleurs, notre approche définit des opérations partiellement automatisées systématisant la réutilisation d'artefacts lors de la production de nouveaux logiciels sans induire de difficulté de passage à l'échelle avec l'ajout de nouveaux points de variation. Grâce à notre collaboration avec un partenaire industriel, nous avons pu expérimenter COMpOSER pour aider à l'industrialisation des processus de développement de l'entreprise. Ainsi, nous avons réalisé un framework qui réifie notre approche tout en considérant les spécificités de notre contexte industriel. Cet outil traduit les principes de COMpOSER dans un langage adapté à des développeurs sans expertise en SPLE ou MDA, facilitant ainsi l'adoption de nos solutions par les équipes de développements de l'entreprise. Nous avons obtenu des résultats démontrant que notre approche améliore la réutilisation logicielle systématique comparativement à des solutions concurrentes sur des cas d'études industriels concrets.