The complexity of software systems has been steadily increasing over the past few decades. As a result, numerous means of shielding developers from unnecessarily low-level details, or accidental complexity, have been adopted. Today, Model-Driven Engineering (MDE) is considered to be the state-of-the-art of such means. Models describe complex systems from various viewpoints and at various levels of abstraction. To reduce accidental complexity, Multi-Paradigm Modelling (MPM) promotes modelling every part of a system, at the most appropriate level(s) of abstraction, using the most appropriate formalism(s). At the intersection of MDE and MPM principles is Domain-Specific Modelling (DSM),which promotes modelling using constructs familiar to domain-experts. Documented industrial applications of DSM have demonstrated increases in productivity of up to an order of magnitude, as well as an elevation in the level of abstraction of first class development artifacts. Due to a number of obstacles, DSM has yet to be widely embraced and recognized as a worthwhile and competitive discipline. On the one hand, means to perform essential tasks such as Domain-Specific model (DSm) differencing (e.g., for version control) and de-bugging are still lacking or incomplete. On the other hand, an enormous strain is placed on DSM experts to develop tools, formalisms and compilers that elegantly hide and encapsulate the complexities of whole families of systems. As such, these experts are often faced with problems and challenges that are several "meta-levels" more complex than the increasingly complex systems whose creation they facilitate. This thesis contributes to the removal of both the aforementioned obstacles with a strong focus on the last. First, the long-standing Separation of Concerns principles, that have guided much of the improvements in computer-assisted development, are explored in the light of MPM to produce a new and more structured approach to artifact (e.g., executable code, configuration files) synthesis from DSms. Whereas traditional artifact synthesis techniques favour brute force and transform entire models to artifacts via a single and often complex generator, we propose the modular isolation, compilation and later re-combination of each concern within DSms. Second, a side-effect of this layered approach is a much increased ease of examining and manipulating intermediate data and concept representations between DSms and artifacts. This leads to the introduction of a set of guidelines, caveats and examples, that together form a blueprint for future DSM debuggers. Third, the proposed approach to artifact synthesis from DSms is re-examined in the context of Domain-Specific Modelling Language (DSML) engineering, while remaining mindful of DSM and MPM principles. The result is the extraction of a collection of concepts that form the domain of DSML design and specification, and the introduction of a technique for composing these concepts to create new DSMLs while dramatically reducing the complexity of this notoriously difficult task. Finally, AToMPM, a new tool for MPM, is presented. In addition to several noteworthy technical innovations and improvements, its main scientific interest lies in its theoretically sound approach towards the specification of modelling language syntax and semantics and of model transformation rule pattern languages, and in its implementation and integration of recent research work by ourselves and others. / Au cours des dernières décennies, la complexité des systèmes logiciels n'a cessé de croître. En conséquence, de nombreuses techniques visant à isoler les développeurs de détail de bas niveau, aussi appellé complexité accidentelle, ont été adoptées. La palme de celles-ci est l'Ingénierie à Base de Modèles (IBM), qui préconise la description de systèmes complexes au moyen de modèles de cible et de niveau d'abstraction variés. Afin de réduire la complexité accidentelle, la Modélisation à Paradigmes Multiples (MPM) prône la modélisation de chaque partie d'un système au niveau d'abstraction le plus approprié, usant des langages les plus appropriés. La Modélisation Spécifique au Domaine (MSD) se situe au croisement des principes de l'IBM et de la MPM. Elle promeut l'usage de notions familières aux experts des domaines concernés. Des études en milieu industriel ont révélé que la DSM pouvait mener à une augmentation de la productivité allant jusqu'à un ordre de magnitude, tout en élevant le niveau d'abstraction des artefacts de développement. En raison d'un certain nombre d'obstacles, la MSD ne jouit toujours que d'une adoption et d'une renommée limitées. D'une part, les moyens et outils requis pour effectuer des tâches essentielles telles que la comparaison de modèles Spécifiques au Domaine (mSD) (e.g., pour le contrôle de version) et leur débogage demeurent absents ou incomplets. D'autre part, un fardeau énorme est placé sur les épaules d'experts en MSD, à qui incombent les tâches de créer des outils, des langages et des compilateurs qui masquent élégamment la complexité de familles de systèmes entières. Ces experts font souvent face à des épreuves et des problèmes qui se situent à plusieurs "meta-niveaux" de complexité et difficulté au-dessus de ceux des systèmes, eux-mêmes de plus en plus complexes, dont ils facilitent la création.Cette thèse aborde les deux obstacles mentionnés ci-haut tout en insistant sur le second. Tout d'abord, les principes aguerris de la Séparation des Préoccupations, qui ont guidé bon nombre des améliorations passées dans le développement informatique, sont explorés dans le contexte de la MPM pour produire une nouvelle approche, plus structurée, à la synthèse d'artefacts (e.g., code exécutable, fichiers de configurations) à partir de mSD. Cette approche se distingue des méthodes traditionelles, qui privilégient la synthèse d'artefacts via un unique et souvent très complexe compilateur, en optant plutôt pour une synthèse par phase, qui isole, compile et recombine chacune des préoccupations présentes dans un mSD. Un des effets secondaires de cette approche par phase est qu'il devient largement plus aisé d'examiner, de manipuler et de représenter les données et notions se situant conceptuellement entre les mSD et les artefacts. Exploitant cet avantage, nous proposons une série de recommendations, d'avertissements et d'exemples qui forment une marche à suivre pour le développement de débogeurs pour la MSD. Ensuite, nous réexaminons notre approche de synthèse d'artefacts dans le contexte de la conception de Langages de Modélisation Spécifiques au Domaine (LMSD), en demeurant toujours fidèles aux principes fondateurs de la MSD et de la MPM. Les résultats sont l'identification d'un ensemble de concepts qui forment le domaine de la spécification et du design de LMSD, et l'introduction d'une technique qui permet la création de nouveaux LMSD au moyen de l'agencement de ces concepts. Notre technique réduit drastiquement la difficulté associée à la création de LMSD, une tâche dont la complexité est notoire.En dernier lieu, AToMPM, un nouvel outil de MPM, est présenté. En plus d'un nombre important d'innovations et d'améliorations techniques, ses attraits principaux, d'un point de vue purement scientifique, sont son approche élégante à la spécification de la syntaxe et de la sémantique de langages de modélisation et de langages de motifs, et son intégration de techniques récentes d'auteurs variés, dont nous-mêmes.
Identifer | oai:union.ndltd.org:LACETR/oai:collectionscanada.gc.ca:QMM.110552 |
Date | January 2012 |
Creators | Mannadiar, Raphaël |
Contributors | Hans Louis Vangheluwe (Supervisor) |
Publisher | McGill University |
Source Sets | Library and Archives Canada ETDs Repository / Centre d'archives des thèses électroniques de Bibliothèque et Archives Canada |
Language | English |
Detected Language | French |
Type | Electronic Thesis or Dissertation |
Format | application/pdf |
Coverage | Doctor of Philosophy (School of Computer Science) |
Rights | All items in eScholarship@McGill are protected by copyright with all rights reserved unless otherwise indicated. |
Relation | Electronically-submitted theses. |
Page generated in 0.003 seconds