1 |
Enabling high quality executable domain specific language specificationLai, Qinan January 2015 (has links)
Domain Specific Languages (DSL) are becoming a common practice for describing models at a higher abstraction, using a notation that domain experts understand. Designing a DSL usually starts from creating a language specification, and the other tools of the DSLs are derived from the specification. Hence, the quality of the language specification can crucially impact the quality of the complete DSL tool chain. Although many methods for defining a language specification have been proposed, the quality of the language specification they produced is not emphasised. This thesis explores the quality of language specifications, and proposes consistency, correctness, executability, understandability, and interoperability as the key features that a high quality language specification processes. Given the importance of these features, this thesis designs a new language definition approach that is based on the newly published OMG standards, namely: the semantics of the foundational subset of UML (fUML), and the Action Language for fUML (ALF). This approach enables the creation of a language specification with the proposed criteria. Moreover, a software framework that simplifies the production of high quality language specifications is built. Finally, a software development process is developed, which analyses the roles, products, and activities in DSL specification development. The framework is demonstrated by defining the language specification of Business Process Execution Language (BPEL) as a case study. The BPEL specification is further evaluated, which confirms the desired quality features are processed.
|
2 |
Model-driven co-simulation of Cyber-Physical Systems / Co-simulation dirigée par les modèles des systèmes cyber-physiquesGuermazi, Sahar 28 September 2017 (has links)
Les CPS intègrent des composants physiques et des composants logiciels. Ils sont particulièrement difficiles à modéliser et à vérifier. En effet, de par la nature hétérogène de leurs composants, leur conception nécessite l’utilisation de différents formalismes de modélisation. Les modèles de ces systèmes combinent à la fois des formalismes à temps continu, et d’autres à événements discrets, pour représenter respectivement leurs composants physiques et logiciels. La vérification de l'ensemble du système nécessite donc la composition de ces composants. La vérification globale peut être réalisée par co-simulation des différents composants. En particulier, la norme FMI offre une interface normative pour coupler plusieurs simulateurs dans un environnement de co-simulation, nommé « Master ». Celui-ci est chargé de fournir un algorithme pour une synchronisation efficace des différents composants du système, nommés FMU. Cependant, FMI est initialement conçu pour la co-simulation des processus physiques, avec un support limité des formalismes à événements discrets qui est modèle de calcul et de communication largement utilisé dans les environnements de modélisation spécifiques au logiciel. En particulier, aucune des solutions actuelles de co-simulation basées sur FMI ne permet de le prendre en considération les modèle UML. La thèse défendue dans ce document est que l'ingénierie système en général bénéficierait de l’intégration des modèles UML dans une approche de co-simulation basée sur la norme FMI. Cela permettra à un grand nombre de concepteurs logiciels d’évaluer le comportement de leurs composants logiciels dans un environnement simulé, et donc de les aider à faire les meilleurs choix de conception le plus tôt possible dans leur processus de développement. Cela pourrait également ouvrir de nouvelles perspectives intéressantes pour les ingénieurs système des CPS, en leur permettant d'envisager l’utilisation d’un langage largement utilisé pour la modélisation des composants logiciels de leurs systèmes. L'objectif de cette thèse est de définir et formaliser un environnement de co-simulation basé sur la norme FMI pour les CPS et intégrant des modèles UML pour la partie logicielle. Nous abordons principalement la question d’adaptation entre la sémantique d’exécution définie dans UML et celle de FMI. Notre contribution intervient à deux niveaux : localement, au niveau des modèles UML, et globalement au niveau du « Master ». Localement, nous mettons en place une approche incrémentale où nous abordons différents types de systèmes à événements discrets caractérisant les composants logiciels. Nous basons nos propositions sur les normes OMG fUML et PSCS qui définissent une sémantique d’exécution précise pour un sous-ensemble de UML. Ces deux normes constitue notre socle de définition nous donne une base intéressante et formelle pour l'intégration des modèles UML dans les approches de co-simulation de CPS. Pour chaque type de système, nous identifions d'abord un ensemble de règles pour le modéliser avec UML et les éventuelles extensions à fUML dans le cas où la sémantique d'exécution des éléments UML requis n’est pas définie dans fUML. Ensuite, au niveau global, nous proposons un algorithme de « Master » pour chaque type de systèmes. Les algorithmes de « Master » reposent sur l'adaptation de la sémantique d’exécution des modèles UML et celle de FMI. Sur cette base, le « Master » est capable de propager les données entre les composants et de les stimuler aux bonnes dates durant la simulation. L'approche est illustrée par des cas d'utilisation du domaine des bâtiments intelligents, où l’objectif est d’évaluer différentes stratégies de gestion d'énergie. Ces stratégies représentent des composants logiciels à différents niveaux de contrôle d’un bâtiment pour des fins d’optimisation de son auto-consommation en électricité. / Cyber Physical Systems (CPS) are integrations of physical and computational components. CPS are difficult to model and verify because the heterogeneous nature of their components requires many different modeling formalisms. The global verification of the system can be achieved by co-simulation. FMI standard offers a standard interface to couple two or more simulators in a co-simulation environment, known as master. This latter is responsible for providing an algorithm with efficient orchestration and synchronization of the involved components, known as FMUs. However, FMI was originally intended for co-simulation of physical processes, with limited support for formalisms such as DE and Dara-Flow, even if this kind of formalisms are commonly used to model the logic of software parts of a system. In particular, while UML is the reference standard for software modeling and is very commonly used in industry, none of the present-day FMI-based co-simulation solutions consider UML models. Our thesis is that system engineering in general would greatly benefit from the consideration of UML in FMI-based co-simulation approach. It would indeed enable a significant number of software designers to evaluate the behavior of their software components in their simulated environment, as soon as possible in their development processes, and therefore make early and better design decisions. It would also open new interesting perspectives for CPS system engineers, by allowing them to consider a widely used modeling language for the software parts of their systems. In this context, the objective of this work is to define an FMI-based co-simulation environment for CPS with integration of UML models for software part. Our contribution is twofold: locally at the level of UML models, and globally at the master level. At the local level, we set up an incremental approach where we address different kinds of discrete event systems characterizing the computational components. We base our proposals on OMG standards fUML and PSCS which define precise execution semantics for a subset of UML. They provide an interesting and formal basis for the integration of UML models in CPSs co-simulation approaches. For each kind of system, we first identify a set of rules to model it with UML and potential extensions to fUML in case where execution semantics of the required UML elements are not defined by fUML. Then, at the global level, we propose a master algorithm for each kind of systems. The proposed masters take into account not only external and internal dependencies between components and their capabilities, but also and especially their models of time. They rely on adaptation of fUML semantics to that of the FMI API. Based on these adaptations, the master algorithm is able both to propagate data between components and to trigger them at the correct points of time. The approach is illustrated with use cases from the energy domain where the purpose is to verify energy management strategies defined as software components at different levels of the control module of an energy system.
|
3 |
Approche systématique basée sur fUML pour formaliser la sémantique d’exécution des profils UML / A Systematic Approach based on fUML to Formalize UML Profiles Execution SemanticsTatibouët, Jérémie 16 October 2014 (has links)
Les profils permettent de customiser UML pour un domaine particulier. Cette customisation se fait par l’ajout de concepts (stéréotypes) relatifs au domaine, l’ajout de contraintes sur ces concepts ainsi que la résolution de points de variation sémantiques. Il existe un processus établit et documenté dans l’état de l’art permettant de construire la syntaxe de ces langages basés sur UML. En revanche, ce processus ne couvre pas l’aspect formalisation de la sémantique et les propositions issues de l’état de l’art ne présentent pas d’approches systématiques pour traiter ce problème.La formalisation de la sémantique est un point essentiel de la construction d’un langage car elle permet de donner le sens des constructions syntaxiques. Pour être efficace, la formalisation de la sémantique d’un langage doit être menée conjointement à une action de normalisation. L’intérêt d’avoir une sémantique formelle et standard pour un langage est qu’elle permet aux modèles définis dans ce langage d’être exploités (analyse, exécution, simulation, etc.) de manière équivalente entre les outils. Cette équivalence permet aux utilisateurs d’observer des interprétations identiques d’un même modèle entre différents outils et donc d’avoir une compréhension commune du modèle et de la sémantique associée. Dans le contexte des profils, les actions de normalisations menées par l’OMG se concentrent exclusivement sur la syntaxe et la formalisation de la sémantique est négligée. Nous proposons de répondre à ce problème en nous appuyant sur les spécifications fUML et PSCS qui définissent une sémantique normative pour un sous-ensemble d’UML.Dans un premier temps, nous définissons deux méthodologies alternatives s’appuyant sur ces standards permettant de formaliser la sémantique d’exécution d’un profil UML. Dans la première méthodologie la sémantique d’exécution d’un profil est formalisée au niveau du modèle de domaine. La forme exécutable d’un modèle applicatif profilé est obtenue par transformation de modèle. Dans la seconde méthodologie, la sémantique est définie directement pour le profil. Le modèle qui la formalise est une extension du modèle sémantique de fUML/PSCS formalisée avec fUML. Les modèles sémantiques obtenus sont conformes à fUML ce qui les rend par construction exécutables et directement exploitables dans n’importe quel outil implantant les normes UML et fUML. Dans un deuxième temps, nous comparons nos approches sur la base de trois critères : l’effort de modélisation requis pour produire le modèle sémantique, la préservation de la sémantique de base d’UML définie par fUML/PSCS et la possibilité d’identifier rapidement les relations entre les stéréotypes et leurs sémantiques. Cette comparaison, nous permet de montrer la capacité de notre seconde méthodologie à prendre en compte des extensions clefs de la sémantique de base d’UML dans le contexte des profils. Ces éléments clefs sont : la délégation du contrôle, l’instanciation et les communications. L’ensemble de nos contributions ont été outillées dans le contexte de l’outil d’exécution de modèles MOKA qui est intégré au modeleur UML/SysML Papyrus. / UML profiles enable the UML to be tailored to a particular domain. To do so, a profile adds domain specific concepts (i.e., stereotypes) and constraints to UML and disambiguates specific semantic variation points. The design process for abstract syntax of profiles is well documented in the literature. However, specification of the semantics is neglected. According to our researches, there are no proposals in the state-of-the-art that define a systematic approach to solve this problem.Semantic formalization is a key point of language design. It enables to formally define the meaning of syntactic elements. In order to be efficient, the formalization activity must be realized in parallel with a standardization activity. The interest to have a language with a formal standardized semantic is to enable models defined using this latter to be interpreted (analysis, execution, simulation) in equivalent way between tools implementing the semantics. This equivalence enables users to observe similar interpretations of the same model between different tools and therefore to have a shared understanding of this model and the associated semantic.In the context of UML profiles, normalization activities leaded by the OMG are focused on the syntax. The semantic formalization aspect is neglected. We propose to address this problem by relying on fUML and PSCS OMG (Object Management Group) specifications. These standards formalize execution semantics for a subset of UML (classes, composite structures, and activities).Firstly, we define two methodologies relying on these standards to formalize execution semantics of UML profiles execution semantics. The first methodology defines the execution semantics for the domain model underlying the profile. The executable form of an applicative model defined using the profile is obtained by model transformation. In the second methodology, semantics are defined directly for the profile by extending the semantic model of fUML/PSCS using fUML. By being conform to fUML, the semantic model is by construction executable and can be directly used in any tools implementing the UML and fUML standards.Secondly, we compare our approaches against the following criteria: the modelling effort required to build the semantic model, the capability of the methodology to preserve the UML semantics (i.e., the one defined by fUML/PSCS) and the capability to identify clearly the relationships between the stereotypes and their semantics. This comparison enables us to demonstrate the capacity of the second methodology to define key extensions of the UML semantics in the context of a profile. These latter are: the control delegation, the instantiation, and the communications. The contributions have been implemented in our model execution framework Moka which is integrated in the open-source UML/SysML modeling tool Papyrus.
|
4 |
Contribution à la mise en oeuvre d'un moteur d'exécution de modèles UML pour la simulation d'applications temporisées et concurrentes. / Contribution to the realization of an UML execution engine for simulating timed and concurrent applicationsBenyahia, Abderraouf 26 November 2012 (has links)
L'Ingénierie Dirigée par les Modèles (IDM) place les modèles au cœur des processus de d'ingénierie logicielle et système. L'IDM permet de maitriser la complexité des logiciels et d'améliorer la rapidité et la qualité des processus de développement. Le Model Driven Architecture (MDA) est une initiative de l'Object Management Group (OMG) définissant un cadre conceptuel, méthodologique et technologique pour la mise-en-œuvre de flots de conception basés sur l'IDM. Le MDA s'appuie particulièrement sur une utilisation intensive des formalismes normalisés par l'OMG pour la mise-en-œuvre des flots IDM (UML pour la modélisation, QVT pour les transformations, etc.). Ce travail s'intéresse à la sémantique d'exécution du langage UML appliqué à l'exécution de modèles des applications temps réel embarquées. Dans ce contexte, l'OMG propose une norme qui définit un modèle d'exécution pour un sous-ensemble d'UML appelé fUML (foundational UML subset). Ce modèle d'exécution définit une sémantique précise non ambigüe facilitant la transformation de modèles, l'analyse, l'exécution de modèles et la génération de code. L'objectif de cette thèse est d'étudier et mettre-en-œuvre un moteur d'exécution de modèles UML pour les systèmes temps réel embarqués en explicitant les hypothèses portant sur la sémantique d'exécution des modèles à un niveau d'abstraction élevé afin de permettre l'exécution d'un modèle le plus tôt possible dans le flot de conception de l'application. Pour cela, nous avons étendu le modèle d'exécution défini dans fUML, en apportant une contribution sur trois aspects importants concernant les systèmes temps réel embarqués : * Gestion de la concurrence: fUML ne fournit aucun mécanisme pour gérer la concurrence dans son moteur d'exécution. Nous répondons à ce problème par l'introduction d'un ordonnanceur explicite permettant de contrôler les différentes exécutions parallèles, tout en fournissant la flexibilité nécessaire pour capturer et simuler différentes politiques d'ordonnancements. * Gestion du temps : fUML ne fixe aucune hypothèse sur la manière dont les informations sur le temps sont capturées ainsi que sur les mécanismes qui les traitent dans le moteur d'exécution. Pour cela, nous introduisons une horloge, en se basant sur le modèle de temps discret, afin de prendre en compte les contraintes temporelles dans les exécutions des modèles. * Gestion des profils : les profils ne sont pas pris en compte par ce standard, cela limite considérablement la personnalisation du moteur d'exécution pour prendre en charge de nouvelles variantes sémantiques. Pour répondre à ce problème, nous ajoutons les mécanismes nécessaires qui permettent l'application des profils et la capture des extensions sémantiques impliquées par l'utilisation d'un profil. Une implémentation de ces différentes extensions est réalisée sous forme d'un plugin Eclipse dans l'outil de modélisation Papyrus UML. / Model Driven Engineering (MDE) places models at the heart of the software engineering process. MDE helps managing the complexity of software systems and improving the quality of the development process. The Model Driven Architecture (MDA) initiative from the Object Management Group (OMG) defines a framework for building design flows in the context of MDE. MDA relies heavily on formalisms which are normalized by the OMG, such as UML for modeling, QVT for model transformations and so on. This work deals with the execution semantics of the UML language applied to embedded real-time applications. In this context, the OMG has a norm which defines an execution model for a subset of UML called fUML (foundational UML subset). This execution model gives a precise semantics to UML models, which can be used for analyzing models, generating code, or verifying transformations. The goal of this PhD thesis is to define and build an execution engine for UML models of embedded real-time systems, which takes into account the explicit hypothesis made by the designer about the execution semantics at a high level of abstraction, in order to be able to execute models as early as possible in the design flow of a system. To achieve this goal, we have extended the fUML execution model along three important axes with regard to embedded real-time systems: - Concurrency: fUML does not provide any mechanism for handling concurrent activities in its execution engine. We address this issue by introducing an explicit scheduler which allows us to control the execution of concurrent tasks. - Time: fUML does not provide any mean to handle time. By adding a clock to the model of execution, we can take into account the elapsed time as well as temporal constraints on the execution of activities. - Profiles: fUML does not take profiles into account, which makes it difficult to personalize the execution engine with new semantic variants. The execution engine we propose allows the use of UML models with profiles, and interprets these profiles as semantic extensions of the execution model. An implementation of these extensions has been realized as an Eclipse plug-in using the Papyrus UML modeling tool.
|
5 |
Contribution à la mise en oeuvre d'un moteur d'exécution de modèles UML pour la simulation d'applications temporisées et concurrentes.Benyahia, Abderraouf 26 November 2012 (has links) (PDF)
L'Ingénierie Dirigée par les Modèles (IDM) place les modèles au cœur des processus de d'ingénierie logicielle et système. L'IDM permet de maitriser la complexité des logiciels et d'améliorer la rapidité et la qualité des processus de développement. Le Model Driven Architecture (MDA) est une initiative de l'Object Management Group (OMG) définissant un cadre conceptuel, méthodologique et technologique pour la mise-en-œuvre de flots de conception basés sur l'IDM. Le MDA s'appuie particulièrement sur une utilisation intensive des formalismes normalisés par l'OMG pour la mise-en-œuvre des flots IDM (UML pour la modélisation, QVT pour les transformations, etc.). Ce travail s'intéresse à la sémantique d'exécution du langage UML appliqué à l'exécution de modèles des applications temps réel embarquées. Dans ce contexte, l'OMG propose une norme qui définit un modèle d'exécution pour un sous-ensemble d'UML appelé fUML (foundational UML subset). Ce modèle d'exécution définit une sémantique précise non ambigüe facilitant la transformation de modèles, l'analyse, l'exécution de modèles et la génération de code. L'objectif de cette thèse est d'étudier et mettre-en-œuvre un moteur d'exécution de modèles UML pour les systèmes temps réel embarqués en explicitant les hypothèses portant sur la sémantique d'exécution des modèles à un niveau d'abstraction élevé afin de permettre l'exécution d'un modèle le plus tôt possible dans le flot de conception de l'application. Pour cela, nous avons étendu le modèle d'exécution défini dans fUML, en apportant une contribution sur trois aspects importants concernant les systèmes temps réel embarqués : * Gestion de la concurrence: fUML ne fournit aucun mécanisme pour gérer la concurrence dans son moteur d'exécution. Nous répondons à ce problème par l'introduction d'un ordonnanceur explicite permettant de contrôler les différentes exécutions parallèles, tout en fournissant la flexibilité nécessaire pour capturer et simuler différentes politiques d'ordonnancements. * Gestion du temps : fUML ne fixe aucune hypothèse sur la manière dont les informations sur le temps sont capturées ainsi que sur les mécanismes qui les traitent dans le moteur d'exécution. Pour cela, nous introduisons une horloge, en se basant sur le modèle de temps discret, afin de prendre en compte les contraintes temporelles dans les exécutions des modèles. * Gestion des profils : les profils ne sont pas pris en compte par ce standard, cela limite considérablement la personnalisation du moteur d'exécution pour prendre en charge de nouvelles variantes sémantiques. Pour répondre à ce problème, nous ajoutons les mécanismes nécessaires qui permettent l'application des profils et la capture des extensions sémantiques impliquées par l'utilisation d'un profil. Une implémentation de ces différentes extensions est réalisée sous forme d'un plugin Eclipse dans l'outil de modélisation Papyrus UML.
|
6 |
Modelem řízený vývoj Android aplikací / Model Driven Development of Android ApplicationsBělehrádek, Stanislav January 2017 (has links)
This thesis deals with the design and implementation of Android application development tool based on model driven software development. The first part of the thesis is focused on general software development and next part on software development based on model driven development and executable UML. In next part Android platform, methods of Android application development and existing MDD tools are described. This thesis continues with the design of my own MDD tool for the creation of Android applications. The designed tool is realized like Gradle plugin and independent development environment using thisplugin. The designed tool is based on fUML and ALF language. The features and options of development tool are demonstrated by creation of example application.
|
Page generated in 0.0289 seconds