Enabling Model Components – Design, Implementation and Validation

Thesis supervisor: Philippe Lahire(UNS/MODALIS)

Thesis cosupervisor: Philippe Collet(UNS/MODALIS)

Motivation

Nowadays, a wide variety of software applications, ranging from travel booking systems to medical image processing systems, are built as aggregations of atomic services. These applications span many domains of interest (e.g., medical image processing spans image segmentation, image acquisition and pattern recognition domains), and thus can be viewed as systems of systems, in which each (sub-)system addresses concerns in a particular domain. The need to seamlessly integrate information across the different domains makes developing these applications using current software development technologies particularly difficult. This software development activity is currently time-consuming and error-prone, and it usually leads to high development costs. To address this problem software developers need sound basis, techniques and tools that enable them to (i) capture and embed high-quality software development experience in the languages and models used to describe the services in each domain, (ii) seamlessly integrate services and information across the different domains, and (iii) adapt the services to meet different needs (e.g., accommodation choices can vary depending on the type of travel).

Approach

This PhD work takes place in a general research line that aims at providing better solutions to handle the intrinsic variability of models and softwares. It deals with the modelling of Software Product Lines (SPL) in the context of systems of systems. It relies on the result obtained in the framework of the Mathieu Acher’s PhD and, in particular, on the language and environment for Feature Models called FAMILIAR (https://nyx.unice.fr/projects/familiar). The approach envisaged in the PhD work is to develop the concept of Model Components (MC), by establishing sound basis, techniques and tools for their end-to-end support. Usually, languages and models associated to a domain are based on a single metamodel. On the contrary, MC aims at encapsulating more than one metamodel, they are meant to encapsulate a set of elements that globally model a domain. In its largest configuration, a MC should encapsulate i) a metamodel that defines the abstract syntax that captures essential concepts of the domain; ii) the concrete syntax used to build models in this domain; iii) constraints that impose restrictions on the way the concepts can be assembled in models; iv) contracts that specify constraints on the way the MC can be composed with other components. The model component can also contain the definition of variation points on the domain language that specify possible specific ‘dialects’ for modelling in this domain. Specific constraints also have to be attached to these variability dimensions and have to be integrated into the metamodel when a particular dimension is selected. The rigorous engineering of such components imposes revisiting key activities of language and software engineering in order to adapt them to this context.

Agenda

The following activities are to be investigated in the PhD work:

  • To confront various approaches dealing with the design of business models and to the design of their associated DSL.
  • To study different approaches for associating extra-functional properties in order to increase flexibility of MC and to ensure their reusability in various context.
  • To define the modelling language that is the best suited to build a MC and handle all the information it contains.
  • To enable consistency validation: Each view in a MC imposes a set of constraints on the concepts and relationships that define a domain. For reasonable domain languages the number of concepts and associated constraints is large and checking the consistency between all these views is a major issue. Simulation or bounded model checking offer possible practical solutions in order to assist the definition of consistent and complete MC.
  • To model variability: The concept of software product line (SPL) has emerged as an efficient software engineering solution to handle reuse in a family of software systems. Here, we want to investigate the adaptation of SPL ideas to the definition of domain language. This means proposing new ways to attach variability to a metamodel, an associated model for the concrete syntax and structural constraints attached to both views. We will also have to define operators that can check the compatibility between the variability description and the other views.

Model Components (MC) are intended to be composed in order to handle complex domains and build complex systems. The PhD work will study the composition of MC as a first class entity. The fact that the content of MC includes several parts of various formalisms (metamodels, DSL, variability, etc.) with strong relationships means that it is necessary to invent new concepts and new mechanisms in order to achieve their composition. Several issues are then to be solved. The need to compose several concerns of different nature at the same time requires defining new kind of composition process for MC. Moreover, in order to specify constraints on the way MC can be composed with others, a notion of composition interface for MC has to be defined. Such interface will serve to describe elements of MC made available and those expected for the composition with other MC. Finally, the composition of MCs will rely on a binding model that allows for expressing the matching of elements declared in each composition interface of MC.

Version Française

Rendre possible les Composants de Modèles – Conception, Implémentation et Validation

Directeur de thèse: Philippe Lahire(UNS/MODALIS)

Co-directeur de thèse: Philippe Collet(UNS/MODALIS)

Motivation

Aujourd'hui, une grande variété d'applications logicielles, allant des systèmes de réservation de voyages aux systèmes de traitement d'imageries médicales, sont construits comme des agrégations de services élémentaires. Ces applications couvrent de nombreux domaines d'intérêt (par exemple, le traitement d'imageries médicales couvre à la fois la segmentation d’images, l'acquisition d'images et la reconnaissance des formes), et peuvent donc être considérées comme des systèmes de systèmes, dans lequel chaque (sous-) système répond à des préoccupations dans un domaine particulier. La nécessité d'intégrer de façon transparente de l'information dans les différents domaines rend avec les technologies actuelles, le développement de ces applications particulièrement difficile. Cette activité est actuellement très couteuse en temps et génératrice d'erreurs, et elle conduit donc habituellement à des coûts de développement élevés. Pour résoudre ce problème les développeurs de logiciels ont besoin de techniques et outils qui leur permettent (i) de capturer et d'intégrer l'expertise sur le développement de logiciels de qualité, dans des langages et modèles utilisés pour décrire les services dans chaque domaine, (ii) d’intégrer de façon transparente des services et des informations dans les différents domaines, et (iii) d'adapter les services pour répondre à des besoins différents (par exemple, le choix d'hébergement peut varier selon le type de Voyage).

Approche

Ce travail de thèse vise à fournir de meilleures solutions pour gérer la variabilité intrinsèque des modèles et des logiciels. Il traite de la modélisation des lignes de produits logiciels (SPL) dans le cadre de systèmes de systèmes. Il s'appuie sur les résultats obtenus dans le cadre de la thèse de Mathieu Acher et en particulier, sur le langage FAMILIAR et son environnement pour les Feature Models (https://nyx.unice.fr/projects/familiar). L'approche envisagée dans cette thèse est de développer le concept de composants de modèles, en mettant en œuvre des techniques et outils efficaces pour leur réalisation. Habituellement, les langages et les modèles associés à un domaine sont basés sur un métamodèle unique. Au contraire, un MC vise à encapsuler plusieurs métamodèles. Ils sont destinés à encapsuler un ensemble d'éléments qui modélisent globalement un domaine. Au maximum un MC doit encapsuler i) un métamodèle qui définit la syntaxe abstraite et capture les concepts essentiels du domaine, ii) la syntaxe concrète utilisée pour construire des modèles dans ce domaine; iii) les contraintes qui imposent des restrictions sur la façon dont les concepts peuvent être assemblés dans les modèles; iv) les contrats qui spécifient des contraintes sur la façon dont le MC peut être composé avec d'autres composants. Le composant de modèles peut également contenir la définition de points de variation sur le langage du domaine qui spécifient de possible «dialectes» spécifiques pour la modélisation dans ce domaine. Des contraintes spécifiques doivent également être attachées à ces dimensions de variabilité et être intégrées dans le métamodèle, quand une dimension particulière est sélectionnée. La réalisation rigoureuse de ces composants impose de revoir les activités clés des langages et du génie logiciel dans le but de les adapter à ce contexte.

Agenda

Les activités suivantes doivent être étudiées dans le cadre de la thèse:

  • Confronter diverses approches portant sur la conception de modèles métiers et de leurs DSL associés.
  • Etudier différentes approches pour associer des propriétés extra-fonctionnelles dans le but d'accroître la flexibilité du MC et d'assurer leur réutilisation dans différents contextes.
  • éfinir le meilleur langage de modélisation possible pour construire un MC et gérer toutes les informations qu'il contient.
  • Permettre d’assurer la cohérence: chaque vue dans un MC impose un ensemble de contraintes sur les concepts et les relations qui définissent un domaine. Pour des langages de domaine raisonnables, le nombre de concepts et les contraintes associées sont grands et vérifier la cohérence entre tous ces points de vue est un problème majeur. La simulation ou la vérification de modèles bornés offrent de possibles solutions pratiques afin d'aider à la définition de MCs cohérents et complets.
  • Modéliser la variabilité: Le concept de ligne de produits logiciels (SPL) est apparu comme une solution de génie logiciel efficace pour gérer la réutilisation à l’intérieur d’une famille de systèmes logiciels. Ici, nous voulons étudier l'adaptation d’idées venant des SPL à la définition de langages de domaines. Cela signifie proposer de nouvelles façons d’associer la variabilité à un métamodèle, à un modèle associé à la syntaxe concrète et à des contraintes structurelles attachées à ces deux points de vue. Il faudra également définir des opérateurs qui peuvent vérifier la compatibilité entre la description et la variabilité des autres vues.

Les composants de modèles sont destinés à être composés pour traiter des domaines complexes et construire des systèmes complexes. Le travail de thèse devra étudier la composition de MC comme une entité de première classe. Le fait que le contenu d’un MC comprend plusieurs parties utilisant différents formalismes (métamodèles, DSL, variabilité…) avec des interactions fortes signifie qu'il est nécessaire d'inventer de nouveaux concepts et de nouveaux mécanismes pour la composition. Plusieurs questions sont alors à résoudre. La nécessité de composer dans le même temps plusieurs préoccupations de nature différente, nécessite de définir un nouveau genre de processus de composition pour MC. En outre, une notion d'interface pour la composition doit être définie afin de spécifier des contraintes sur la façon dont un MC peut être composé avec d'autres. Cette interface servira à décrire les éléments de MC mis à disposition et ceux prévus pour la composition avec d'autres MC. Enfin, la composition des MCs s'appuiera sur un modèle de liaison qui permet d'exprimer la correspondance entre les éléments déclarés dans chaque interface de composition de MC.