13 research outputs found

    Engineering scalable modelling Languages

    Full text link
    Tesis doctoral inédita leída en la Universidad Autónoma de Madrid, Escuela Politécnica Superior, Departamento de Ingeniería Informática. Fecha de lectura: 08-11-2019Esta tesis tiene embargado el acceso al texto completo hasta el 08-05-2021Model-Driven Engineering (MDE) aims at reducing the cost of system development by raising the level of abstraction at which developers work. MDE-based solutions frequently involve the creation of Domain-Specific Modelling Languages (DSMLs). WhilethedefinitionofDSMLsandtheir(sometimesgraphical)supportingenvironments are recurring activities in MDE, they are mostly developed ad-hoc from scratch. The construction of these environments requires high expertise by developers, which currently need to spend large efforts for their construction. This thesis focusses on the development of scalable modelling environments for DSMLs based on patterns. For this purpose, we propose a catalogue of modularity patterns that can be used to extend a modelling language with services related to modularization and scalability. More specifically, these patterns allows defining model fragmentation strategies, scoping and visibility rules, model indexing services, and scoped constraints. Once the patterns have been applied to the meta-model of a modelling language, we synthesize a customized modelling environment enriched with the defined services, which become applicable to both existing monolithic legacy models and new models. A second contribution of this thesis is a set of concepts and technologies to facilitate the creation of graphical editors. For this purpose, we define heuristics which identify structures in the DSML abstract syntax, and automatically assign their diagram representation. Using this approach, developers can create a graphical representation by default from a meta-model, which later can be customised. These contributions have been implemented in two Eclipse plug-ins called EMFSplitter and EMF-Stencil. On one hand, EMF-Splitter implements the catalogue of modularity patterns and, on the other hand, EMF-Stencil supports the heuristics and the generation of a graphical modelling environment. Both tools were evaluated in different case studies to prove their versatility, efficiency, and capabilitieEl Desarrollo de Software Dirigido por Modelos (MDE, por sus siglas en inglés) tiene como objetivo reducir los costes en el desarrollo de aplicaciones, elevando el nivel de abstracciónconelqueactualmentetrabajanlosdesarrolladores. Lassolucionesbasadas en MDE frecuentemente involucran la creación de Lenguajes de Modelado de Dominio Específico (DSML, por sus siglas en inglés). Aunque la definición de los DSMLs y sus entornos gráficos de modelado son actividades recurrentes en MDE, actualmente en la mayoría de los casos se desarrollan ad-hoc desde cero. La construcción de estos entornos requiere una alta experiencia por parte de los desarrolladores, que deben realizar un gran esfuerzo para construirlos. Esta tesis se centra en el desarrollo de entornos de modelado escalables para DSML basados en patrones. Para ello, se propone un catálogo de patrones de modularidad que se pueden utilizar para extender un lenguaje de modelado con servicios relacionados con la modularización y la escalabilidad. Específicamente, los patrones permiten definir estrategias de fragmentación de modelos, reglas de alcance y visibilidad, servicios de indexación de modelos y restricciones de alcance. Una vez que los patrones se han aplicado al meta-modelo de un lenguaje de modelado, se puede generar automáticamente un entorno de modelado personalizado enriquecido con los servicios definidos, que se vuelven aplicables tanto a los modelos monolíticos existentes, como a los nuevos modelos. Una segunda contribución de esta tesis es la propuesta de conceptos y tecnologías para facilitar la creación de editores gráficos. Para ello, definimos heurísticas que identifican estructuras en la sintaxis abstracta de los DSMLs y asignan automáticamente su representación en el diagrama. Usando este enfoque, los desarrolladores pueden crear una representación gráfica por defecto a partir de un meta-modelo. Estas contribuciones se implementaron en dos plug-ins de Eclipse llamados EMFSplitter y EMF-Stencil. Por un lado, EMF-Splitter implementa el catálogo de patrones y, por otro lado, EMF-Stencil implementa las heurísticas y la generación de un entorno de modelado gráfico. Ambas herramientas se han evaluado con diferentes casos de estudio para demostrar su versatilidad, eficiencia y capacidade

    Example-based generation of graphical modelling environments

    Full text link
    The final publication is available at Springer via http://dx.doi.org/10.1007/978-3-319-42061-5_7Domain-Specific Languages (DSLs) present numerous benefits like powerful domain-specific primitives, an intuitive syntax for domain experts, and the possibility of advanced code generation for narrow domains. While a graphical syntax is sometimes desired for a DSL, constructing graphical modelling environments is a costly and highly technical task. This relegates domain experts to play a passive role in their development and hinders a wider adoption of graphical DSLs. Targeting a simpler DSL construction process, we propose an example based technique for the automatic generation of modelling environments for graphical DSLs. This way, starting from examples of the DSL likely provided by domain experts using drawing tools like yED, our system is able to synthesize a graphical modelling environment that mimics the syntax of the provided examples. This includes a meta-model for the abstract syntax of the DSL, and a graphical concrete syntax supporting spatial relationships like containment or attachment. The system is implemented as an Eclipse plugin, and we demonstrate its usage on a running example in the home networking domain.Work supported by the Spanish Ministry of Economy and Competitivity (TIN2014-52129-R), the Madrid Region (S2013/ICE-3006), and the EU Commission (FP7-ICT-2013-10, #611125)

    Covariant Conversions (CoCo): A Design Pattern for Type-Safe Modular Software Evolution in Object-Oriented Systems

    Get PDF
    Software evolution is an essential challenge for all software engineers, typically addressed solely using code versioning systems and language-specific code analysis tools. Most versioning systems view the evolution of a system as a directed acyclic graph of steps, with independent branches that could be merged. What these systems fail to provide is the ability to ensure stable APIs or that each subsequent evolution represents a cohesive extension yielding a valid system. Modular software evolution ensures that APIs remain stable, which is achieved by ensuring that only additional methods, fields, and data types are added, while treating existing modules through blackbox interfaces. Even with these restrictions, it must be possible to add new variations, fields, and methods without extensive duplication of prior module code. In contrast to most literature, our focus is on ensuring modular software evolution using mainstream object-oriented programming languages, instead of resorting to novel language extensions. We present a novel CoCo design pattern that supports type-safe covariantly overridden convert methods to transform earlier data type instances into their newest evolutionary representation to access operations that had been added later. CoCo supports both binary methods and producer methods. We validate and contrast our approach using a well-known compiler construction case study that other researchers have also investigated for modular evolution. Our resulting implementation relies on less boilerplate code, is completely type-safe, and allows clients to use normal object-oriented calling conventions. We also compare CoCo with existing approaches to the Expression Problem. We conclude by discussing how CoCo could change the direction of currently proposed Java language extensions to support closed-world assumptions about data types, as borrowed from functional programming

    Consistency-by-Construction Techniques for Software Models and Model Transformations

    Get PDF
    A model is consistent with given specifications (specs) if and only if all the specifications are held on the model, i.e., all the specs are true (correct) for the model. Constructing consistent models (e.g., programs or artifacts) is vital during software development, especially in Model-Driven Engineering (MDE), where models are employed throughout the life cycle of software development phases (analysis, design, implementation, and testing). Models are usually written using domain-specific modeling languages (DSMLs) and specified to describe a domain problem or a system from different perspectives and at several levels of abstraction. If a model conforms to the definition of its DSML (denoted usually by a meta-model and integrity constraints), the model is consistent. Model transformations are an essential technology for manipulating models, including, e.g., refactoring and code generation in a (semi)automated way. They are often supposed to have a well-defined behavior in the sense that their resulting models are consistent with regard to a set of constraints. Inconsistent models may affect their applicability and thus the automation becomes untrustworthy and error-prone. The consistency of the models and model transformation results contribute to the quality of the overall modeled system. Although MDE has significantly progressed and become an accepted best practice in many application domains such as automotive and aerospace, there are still several significant challenges that have to be tackled to realize the MDE vision in the industry. Challenges such as handling and resolving inconsistent models (e.g., incomplete models), enabling and enforcing model consistency/correctness during the construction, fostering the trust in and use of model transformations (e.g., by ensuring the resulting models are consistent), developing efficient (automated, standardized and reliable) domain-specific modeling tools, and dealing with large models are continually making the need for more research evident. In this thesis, we contribute four automated interactive techniques for ensuring the consistency of models and model transformation results during the construction process. The first two contributions construct consistent models of a given DSML in an automated and interactive way. The construction can start at a seed model being potentially inconsistent. Since enhancing a set of transformations to satisfy a set of constraints is a tedious and error-prone task and requires high skills related to the theoretical foundation, we present the other contributions. They ensure model consistency by enhancing the behavior of model transformations through automatically constructing application conditions. The resulting application conditions control the applicability of the transformations to respect a set of constraints. Moreover, we provide several optimizing strategies. Specifically, we present the following: First, we present a model repair technique for repairing models in an automated and interactive way. Our approach guides the modeler to repair the whole model by resolving all the cardinalities violations and thereby yields a desired, consistent model. Second, we introduce a model generation technique to efficiently generate large, consistent, and diverse models. Both techniques are DSML-agnostic, i.e., they can deal with any meta-models. We present meta-techniques to instantiate both approaches to a given DSML; namely, we develop meta-tools to generate the corresponding DSML tools (model repair and generation) for a given meta-model automatically. We present the soundness of our techniques and evaluate and discuss their features such as scalability. Third, we develop a tool based on a correct-by-construction technique for translating OCL constraints into semantically equivalent graph constraints and integrating them as guaranteeing application conditions into a transformation rule in a fully automated way. A constraint-guaranteeing application condition ensures that a rule applies successfully to a model if and only if the resulting model after the rule application satisfies the constraint. Fourth, we propose an optimizing-by-construction technique for application conditions for transformation rules that need to be constraint-preserving. A constraint-preserving application condition ensures that a rule applies successfully to a consistent model (w.r.t. the constraint) if and only if the resulting model after the rule application still satisfies the constraint. We show the soundness of our techniques, develop them as ready-to-use tools, evaluate the efficiency (complexity and performance) of both works, and assess the overall approach in general as well. All our four techniques are compliant with the Eclipse Modeling Framework (EMF), which is the realization of the OMG standard specification in practice. Thus, the interoperability and the interchangeability of the techniques are ensured. Our techniques not only improve the quality of the modeled system but also increase software productivity by providing meta-tools for generating the DSML tool supports and automating the tasks

    Formal Foundations for Information-Preserving Model Synchronization Processes Based on Triple Graph Grammars

    Get PDF
    Zwischen verschiedenen Artefakten, die Informationen teilen, wieder Konsistenz herzustellen, nachdem eines von ihnen geändert wurde, ist ein wichtiges Problem, das in verschiedenen Bereichen der Informatik auftaucht. Mit dieser Dissertation legen wir eine Lösung für das grundlegende Modellsynchronisationsproblem vor. Bei diesem Problem ist ein Paar solcher Artefakte (Modelle) gegeben, von denen eines geändert wurde; Aufgabe ist die Wiederherstellung der Konsistenz. Tripelgraphgrammatiken (TGGs) sind ein etablierter und geeigneter Formalismus, um dieses und verwandte Probleme anzugehen. Da sie auf der algebraischen Theorie der Graphtransformation und dem (Double-)Pushout Zugang zu Ersetzungssystemen basieren, sind sie besonders geeignet, um Lösungen zu entwickeln, deren Eigenschaften formal bewiesen werden können. Doch obwohl TGG-basierte Ansätze etabliert sind, leiden viele von ihnen unter dem Problem des Informationsverlustes. Wenn ein Modell geändert wurde, können während eines Synchronisationsprozesses Informationen verloren gehen, die nur im zweiten Modell vorliegen. Das liegt daran, dass solche Synchronisationsprozesse darauf zurückfallen Konsistenz dadurch wiederherzustellen, dass sie das geänderte Modell (bzw. große Teile von ihm) neu übersetzen. Wir schlagen einen TGG-basierten Ansatz vor, der fortgeschrittene Features von TGGs unterstützt (Attribute und negative Constraints), durchgängig formalisiert ist, implementiert und inkrementell in dem Sinne ist, dass er den Informationsverlust im Vergleich mit vorherigen Ansätzen drastisch reduziert. Bisher gibt es keinen TGG-basierten Ansatz mit vergleichbaren Eigenschaften. Zentraler Beitrag dieser Dissertation ist es, diesen Ansatz formal auszuarbeiten und seine wesentlichen Eigenschaften, nämlich Korrektheit, Vollständigkeit und Termination, zu beweisen. Die entscheidende neue Idee unseres Ansatzes ist es, Reparaturregeln anzuwenden. Dies sind spezielle Regeln, die es erlauben, Änderungen an einem Modell direkt zu propagieren anstatt auf Neuübersetzung zurückzugreifen. Um diese Reparaturregeln erstellen und anwenden zu können, entwickeln wir grundlegende Beiträge zur Theorie der algebraischen Graphtransformation. Zunächst entwickeln wir eine neue Art der sequentiellen Komposition von Regeln. Im Gegensatz zur gewöhnlichen Komposition, die zu Regeln führt, die Elemente löschen und dann wieder neu erzeugen, können wir Regeln herleiten, die solche Elemente stattdessen bewahren. Technisch gesehen findet der Synchronisationsprozess, den wir entwickeln, außerdem in der Kategorie der partiellen Tripelgraphen statt und nicht in der der normalen Tripelgraphen. Daher müssen wir sicherstellen, dass die für Double-Pushout-Ersetzungssysteme ausgearbeitete Theorie immer noch gültig ist. Dazu entwickeln wir eine (kategorientheoretische) Konstruktion neuer Kategorien aus gegebenen und zeigen, dass (i) diese Konstruktion die Axiome erhält, die nötig sind, um die Theorie für Double-Pushout-Ersetzungssysteme zu entwickeln, und (ii) partielle Tripelgraphen als eine solche Kategorie konstruiert werden können. Zusammen ermöglichen diese beiden grundsätzlichen Beiträge es uns, unsere Lösung für das grundlegende Modellsynchronisationsproblem vollständig formal auszuarbeiten und ihre zentralen Eigenschaften zu beweisen.Restoring consistency between different information-sharing artifacts after one of them has been changed is an important problem that arises in several areas of computer science. In this thesis, we provide a solution to the basic model synchronization problem. There, a pair of such artifacts (models), one of which has been changed, is given and consistency shall be restored. Triple graph grammars (TGGs) are an established and suitable formalism to address this and related problems. Being based on the algebraic theory of graph transformation and (double-)pushout rewriting, they are especially suited to develop solutions whose properties can be formally proven. Despite being established, many TGG-based solutions do not satisfactorily deal with the problem of information loss. When one model is changed, in the process of restoring consistency such solutions may lose information that is only present in the second model because the synchronization process resorts to restoring consistency by re-translating (large parts of) the updated model. We introduce a TGG-based approach that supports advanced features of TGGs (attributes and negative constraints), is comprehensively formalized, implemented, and is incremental in the sense that it drastically reduces the amount of information loss compared to former approaches. Up to now, a TGG-based approach with these characteristics is not available. The central contribution of this thesis is to formally develop that approach and to prove its essential properties, namely correctness, completeness, and termination. The crucial new idea in our approach is the use of repair rules, which are special rules that allow one to directly propagate changes from one model to the other instead of resorting to re-translation. To be able to construct and apply these repair rules, we contribute more fundamentally to the theory of algebraic graph transformation. First, we develop a new kind of sequential rule composition. Whereas the conventional composition of rules leads to rules that delete and re-create elements, we can compute rules that preserve such elements instead. Furthermore, technically the setting in which the synchronization process we develop takes place is the category of partial triple graphs and not the one of ordinary triple graphs. Hence, we have to ensure that the elaborate theory of double-pushout rewriting still applies. Therefore, we develop a (category-theoretic) construction of new categories from given ones and show that (i) this construction preserves the axioms that are necessary to develop the theory of double-pushout rewriting and (ii) partial triple graphs can be constructed as such a category. Together, those two more fundamental contributions enable us to develop our solution to the basic model synchronization problem in a fully formal manner and to prove its central properties

    An agile process for the example-driven development of modelling languages and environments

    Full text link
    Tesis doctoral inédita leída en la Universidad Autónoma de Madrid, Escuela Politécnica Superior, Departamento de Ingeniería Informática. Fecha de lectura : 26-06-2017Los Lenguajes de Modelado de Dominio Específico (Domain-Specific Modelling Languages (DSMLs)) se utilizan con frecuencia en la Ingeniería del Software Dirigida por Modelos y en métodos de desarrollo por el usuario final. En comparación con los lenguajes de propósito general, los DSMLs presentan numerosas ventajas como la posibilidad de emplear primitivas de dominio específico, una sintaxis intuitiva para expertos en un dominio, y la posibilidad de generar código fuente complejo para dominios concretos. Algunos DSMLs tienen una sintaxis gráfica; sin embargo, construir entornos de modelado gráfico es una tarea altamente costosa a nivel técnico. Esto relega a los expertos del dominio a un rol pasivo en el desarrollo de dichos entornos, e impide una adopción más extensa de los DSML gráficos. El propósito de este trabajo de tesis es lograr un proceso sencillo para la construcción de DSMLs, en el que los expertos del dominio puedan contribuir de forma activa. Para ello, se propone un proceso basado en ejemplos para la generación automática de entornos de modelado de DSMLs gráficos. El sistema propuesto sintetiza, a partir de ejemplos del DSML esbozados por el experto del dominio en herramientas de dibujo, un entorno gráfico de modelado que emula la sintaxis de dichos ejemplos. Esto abarca un meta-modelo para la sintaxis abstracta del DSML, y una sintaxis concreta que además soporta la inclusión de relaciones espaciales. Adicionalmente, pese a tratarse de actividades esenciales en el campo del Desarrollo Dirigido por Modelos, existen muy pocas herramientas o métodos que den soporte a la Validación y Verificación (V&V) de DSMLs. Para cubrir esta necesidad se presentan tres lenguajes complementarios para la V&V de meta-modelos a través de tres métodos distintos: las pruebas unitarias, la comprobación de propiedades sobre el meta-modelo, y las pruebas inversas. Las dos contribuciones se han implementado en dos prototipos: metaBup, un sistema para construir editores de DSMLs a partir de ejemplos gráficos, y metaBest, su correspondiente entorno de pruebas. Tanto el proceso como el prototipo han sido validados mediante diversos experimentos, entre los que se incluye una validación con usuarios.Domain-Specific Modelling Languages (DSMLs) are heavily used in model-driven and enduser development approaches. Compared to general-purpose languages, DSMLs present numerous benefits like powerful domain-specific primitives, an intuitive syntax for domain experts, and the possibility of advanced code generation for narrow domains. While a graphical syntax is sometimes desired for a DSML, constructing graphical modelling environments is a costly and highly technical task. This relegates domain experts to a rather passive role in their development and hinders a wider adoption of graphical DSMLs. The aim of this dissertation is achieving a simpler DSML construction process where domain experts can contribute actively. For this purpose, an example-based process for the automatic generation of modelling environments for graphical DSMLs is proposed. This way, starting from examples of the DSML likely provided by domain experts using drawing tools, the proposed system synthesizes a graphical modelling environment that mimics the syntax of the provided examples. This includes a meta-model for the abstract syntax of the DSML, and a graphical concrete syntax supporting spatial relationships. Moreover, despite being essential activities in this field, there are scarce tools and methods supporting the Validation and Verification (V&V) of DSMLs. In order to fill this gap, three complementary meta-model V&V languages are presented. These languages provide means for testing a DSML through three V&V approches: unit testing, specification-based testing and reverse testing. These two contributions receive tool support in a prototype application comprising metaBup, a system for building DSML editors from graphical examples, and metaBest, its corresponding testing suite. The process and the prototype have been validated through several experiments, including a user study. Keywords: Model-Driven Engineering, Domain-Specific Modelling Languages, Meta-Modelling, Graphical Modelling Environments, Example-Based Meta-Modelling, Validation & Verification, Meta-Model Qualit

    Model analytics and management

    Get PDF

    Model analytics and management

    Get PDF

    Facing Evolution on Industry 4.0: Modular Monitoring and Adaptive & Adaptable Visualization for Industrial Cyber-Physical Systems

    Get PDF
    Industry 4.0 comes to play an important role in various industrial domains where monitoring industrial cyberphysical systems (ICPSs) is becoming essential. This is due to the necessity to efficiently collect data from industrial processes for then making decisions that can impact on the operation of the industrial systems. Typically, the ICPSs are composed by heterogeneous, distributed and autonomous physical devices which can evolve over time. Thus, this makes necessary the adaptation of the monitoring system according to the physical devices. In this dissertation, it is proposed a monitoring system for ICPSs that evolve over time, that has been designed for multiple domains. In this proposal, the data capture and storage beside the ICPS evolution detection and information visualization are considered. To do so, the proposed solution is composed by two subsystems: (I) Modular Monitoring System which is based on the union of different standards able to capture data and store it in a structured manner and; (II) Personal Visualization & Evolution Detection System where the user has the possibility of customizing its visualization and the system is able to trigger alerts on ICPS evolution. In order to validate the proposal a prototype of each system has been developed and finally evaluated.La Industria 4.0 juega un papel importante en diversos ámbitos industriales donde la monitorización de los sistema ciber-físicos industriales (en inglés, Industrial Cyber-Physical Systems, abreviadamente ICPSs) se está convirtiendo en parte esencial. Esto se debe a la necesidad de recolectar datos de los procesos industriales de manera eficiente para luego tomar decisiones que puedan impactar en el funcionamiento de los sistemas industriales. Normalmente, los ICPSs están compuestos por dispositivos físicos heterogéneos, distribuidos y autónomos que pueden evolucionar con el tiempo. Por lo tanto, esto hace que sea necesaria la adaptación de los sistemas de monitorización de acuerdo con los dispositivos físicos. En esta tesis se propone un sistema de monitorización para ICPSs que evolucionan con el tiempo, el cuál ha sido diseñado para múltiples dominios. En esta propuesta se considera la captura y almacenamiento de datos además de la detección de la evolución y la visualización de la información. Para ello, la solución propuesta se compone de dos subsistemas: (I) Modular Monitoring System que se basa en la unión de diferentes estándares capaces de capturar datos y almacenarlos de forma estructurada y; (II) Personal Visualization & Evolution Detection System donde el usuario tiene la posibilidad de personalizar su visualización y el sistema es capaz de generar alertas en caso de que se produzca una evolución. Para validar la propuesta se ha desarrollado un prototipo de cada sistema y finalmente se ha evaluado.Industry 4.0 sona handia hartzen ari da egungo gizartean. Hori dela eta, zeinbat esparru industrialetan, sistema ziberfisiko industrialen (ingelesez, Industrial Cyber-Physical System, laburdura ICPS) monitorizioak berebiziko garrantzia hartu du. Guzti honen funtsa, datuen bilketa era eraginkorrean egitean datza, ondoren datu hauek analizatu eta sistema industrialetan eragin dezaketen erabakiak hartzeko asmoz. Industrial Cyber-Physical Systems (ICPSs)-ak eboluziona dezaketen gailu heterogeneo, banatu eta autonomoez osatuta daude eta, ondorioz, monitorizazio sistemak egokitzea ezinbesteko bihurtzen da gaur egun. Tesi honek, eboluziona dezaketen ICPSs monitorizazio sistema bat aurkezten du, zeina hainbat domeinu industrialetarako diseinatu den. Proposamen honetan, datuen bilketa eta biltegiratze eraginkorra eta eboluzioen hautematea eta informazioaren bistaratzea aztertzen dira. Proposamena bi azpisistemaz osatuta dago: (I) Modular Monitoring System, hainbat estandar bateratzetik sortu den sistema bat da, non, datuak jaso eta berauek era estrukturatu batetan gordetzeko gaitasuna duen; eta (II) Personal Visualization & Evolution Detection System, erabiltzaileak bere interfazeak sortzeko gaitasuna duen sistema bat da eta, horrekin batera, eboluzioak detektatu eta hauen inguruan alertak sortzeko gaitasuna du. Proposamena balioztatzeko asmoz, sistema bakoitzaren prototipo bat sortu eta ebaluatu da tesi honetan

    The Essence of Software Engineering

    Get PDF
    Software Engineering; Software Development; Software Processes; Software Architectures; Software Managemen
    corecore