12 research outputs found

    Teaching computer language handling - From compiler theory to meta-modelling

    Get PDF
    Most universities teach computer language handling by mainly focussing on compiler theory, although MDA (model-driven architecture) and meta-modelling are increasingly important in the software industry as well as in computer science. In this article, we investigate how traditional compiler theory compares to meta-modelling with regard to formally defining the different aspects of a language, and how we can expand the focus in computer language handling courses to also include meta-model-based approaches. We give an outline of a computer language handling course that covers both paradigms, and share some experiences from running a course based on this outline at the University of Agder

    A Generic Language for Query and Viewtype Generation By-Example

    Get PDF
    In model-driven engineering, powerful query/view languages exist to compute result sets/views from underlying models. However, to use these languages effectively, one must understand the query/view language concepts as well as the underlying models and metamodels structures. Consequently, it is a challenge for domain experts to create queries/views due to the lack of knowledge about the computer-internal abstract representation of models and metamodels. To better support domain experts in the query/view creation, the goal of this paper is the presentation of a generic concept to specify queries/views on models without requiring deep knowledge on the realization of modeling languages. The proposed concept is agnostic to specific modeling languages and allows the query/view generation by-example with a simple mechanism for filtering model elements. Based on this generic concept, a generic query/view language is proposed that uses role-oriented modeling for its non-intrusive application for specific modeling languages. The proposed language is demonstrated based on the role-based single underlying model (RSUM) approach for AutomationML to create queries/views by-example, and subsequently, associated viewtypes to modify the result set or view

    UNA VISIÓN DEL DESARROLLO DE SOFTWARE UTILIZANDO MODELOS

    Get PDF
    RESUMEN ANALÍTICOLa construcción de software está lejos de ser una tarea sencilla, sobre todo si su complejidad es alta. Esta tarea exige un alto compromiso del equipo de desarrollo, recursos costosos, especialistas altamente cualificados y procesos y métodos cada vez más formales. Con el propósito de agilizar este proceso, surgió un movimiento centrado en el uso de modelos en diferentes niveles de abstracción. Las principales propuestas en este sentido son la Arquitectura Dirigida por Modelos y el Desarrollo de Software Dirigido por Modelos (MDA y MDSD, por sus siglas en ingles). En este artículo se hace una revisión de la literatura a cerca de estas dos propuestas. Describe sus principios fundamentales, el trabajo orientado a conformar la fundamentación teórica de las dos propuestas y las principales herramientas que implementan el desarrollo conducido por modelos. Este trabajo se realiza en el marco del proyecto de investigación “Construcción de un proceso de desarrollo de software con base en MDA y MDSD”, concretamente contribuye a establecer el trabajo de investigación realizado por la comunidad internacional y los fundamentos teóricos y conceptuales que subyacen a las dos propuestas.PALABRAS CLAVES: Arquitectura Guiada por Modelos, Desarrollo de Software Guiado por Modelos, Modelo Independiente de Plataforma, Modelo Independiente de la Computación, Transformaciones entre modelos, Herramientas MDSDA VIEW OF SOFTWARE DEVELOMENT USING MODELSANALYTICAL SUMMARYBuilding software is not an easy task, especially if its complexity is high. This task requires a high commitment to the development team, expensive resources, highly qualified specialists and increasingly formal methods and processes. In order to expedite this process, a movement focused on the use of models in different abstraction levels has emerged. The main proposals in this regard are Model Driven Architecture (MDA) and Model Driven Software Development (MDSD). This paper is a review of the literature about those two proposals. It describes its fundamental principles, work oriented to form its theoretical basis and the main tools that implement the model-driven development. This work is performed under the research project “Construction of a software development process based on MDA and MDSD”, specifically contributes to establishing the research work done by the international community and the theoretical and conceptual underpinning the two proposals.KEYWORDS: Model Driven Architecture MDA, Model Driven Software Development MDSD, Platform Independent Model PIM, Computation Independent Model CIM, Transformations between Models MDSD tool

    UNA VISIÓN DEL DESARROLLO DE SOFTWARE UTILIZANDO MODELOS

    Get PDF
    RESUMEN ANALÍTICOLa construcción de software está lejos de ser una tarea sencilla, sobre todo si su complejidad es alta. Esta tarea exige un alto compromiso del equipo de desarrollo, recursos costosos, especialistas altamente cualificados y procesos y métodos cada vez más formales. Con el propósito de agilizar este proceso, surgió un movimiento centrado en el uso de modelos en diferentes niveles de abstracción. Las principales propuestas en este sentido son la Arquitectura Dirigida por Modelos y el Desarrollo de Software Dirigido por Modelos (MDA y MDSD, por sus siglas en ingles). En este artículo se hace una revisión de la literatura a cerca de estas dos propuestas. Describe sus principios fundamentales, el trabajo orientado a conformar la fundamentación teórica de las dos propuestas y las principales herramientas que implementan el desarrollo conducido por modelos. Este trabajo se realiza en el marco del proyecto de investigación “Construcción de un proceso de desarrollo de software con base en MDA y MDSD”, concretamente contribuye a establecer el trabajo de investigación realizado por la comunidad internacional y los fundamentos teóricos y conceptuales que subyacen a las dos propuestas.PALABRAS CLAVES: Arquitectura Guiada por Modelos, Desarrollo de Software Guiado por Modelos, Modelo Independiente de Plataforma, Modelo Independiente de la Computación, Transformaciones entre modelos, Herramientas MDSDA VIEW OF SOFTWARE DEVELOMENT USING MODELSANALYTICAL SUMMARYBuilding software is not an easy task, especially if its complexity is high. This task requires a high commitment to the development team, expensive resources, highly qualified specialists and increasingly formal methods and processes. In order to expedite this process, a movement focused on the use of models in different abstraction levels has emerged. The main proposals in this regard are Model Driven Architecture (MDA) and Model Driven Software Development (MDSD). This paper is a review of the literature about those two proposals. It describes its fundamental principles, work oriented to form its theoretical basis and the main tools that implement the model-driven development. This work is performed under the research project “Construction of a software development process based on MDA and MDSD”, specifically contributes to establishing the research work done by the international community and the theoretical and conceptual underpinning the two proposals.KEYWORDS: Model Driven Architecture MDA, Model Driven Software Development MDSD, Platform Independent Model PIM, Computation Independent Model CIM, Transformations between Models MDSD tool

    A new MDA-SOA based framework for intercloud interoperability

    Get PDF
    Cloud computing has been one of the most important topics in Information Technology which aims to assure scalable and reliable on-demand services over the Internet. The expansion of the application scope of cloud services would require cooperation between clouds from different providers that have heterogeneous functionalities. This collaboration between different cloud vendors can provide better Quality of Services (QoS) at the lower price. However, current cloud systems have been developed without concerns of seamless cloud interconnection, and actually they do not support intercloud interoperability to enable collaboration between cloud service providers. Hence, the PhD work is motivated to address interoperability issue between cloud providers as a challenging research objective. This thesis proposes a new framework which supports inter-cloud interoperability in a heterogeneous computing resource cloud environment with the goal of dispatching the workload to the most effective clouds available at runtime. Analysing different methodologies that have been applied to resolve various problem scenarios related to interoperability lead us to exploit Model Driven Architecture (MDA) and Service Oriented Architecture (SOA) methods as appropriate approaches for our inter-cloud framework. Moreover, since distributing the operations in a cloud-based environment is a nondeterministic polynomial time (NP-complete) problem, a Genetic Algorithm (GA) based job scheduler proposed as a part of interoperability framework, offering workload migration with the best performance at the least cost. A new Agent Based Simulation (ABS) approach is proposed to model the inter-cloud environment with three types of agents: Cloud Subscriber agent, Cloud Provider agent, and Job agent. The ABS model is proposed to evaluate the proposed framework.Fundação para a Ciência e a Tecnologia (FCT) - (Referencia da bolsa: SFRH SFRH / BD / 33965 / 2009) and EC 7th Framework Programme under grant agreement n° FITMAN 604674 (http://www.fitman-fi.eu

    Proceedings of the MoDELS'05 Workshop on Tool Support for OCL and Related Formalisms -- Needs and Trends

    Get PDF
    This Technical Report comprises the final versions of the technical papers presented at the workshop 'Tool Support for OCL and Related Formalisms -- Needs and Trends' held in Montego Bay (Jamaica), October 4, 2005. The workshop was co-located with the ACM/IEEE 8th International Conference on Model Driven Engineering Languages and Systems (MoDELS)

    Using Graph Transformation for Practical Model-Driven Software Engineering

    No full text
    Model transformations are one of the core technologies needed to apply OMG’s model driven engineering concept for the construction of real world systems. Several formalisms are currently proposed for the specification of these model transformations. A suitable formalism is based on graph transformation systems and graph transformation rules. The chapter provides an overview about the needed concepts to apply graph transformations in the context of model driven engineering and we show the technical feasibility based on several tools and applications

    Développement logiciel par transformation de modèles

    Get PDF
    La recherche en génie logiciel a depuis longtemps tenté de mieux comprendre le processus de développement logiciel, minimalement, pour en reproduire les bonnes pratiques, et idéalement, pour pouvoir le mécaniser. On peut identifier deux approches majeures pour caractériser le processus. La première approche, dite transformationnelle, perçoit le processus comme une séquence de transformations préservant certaines propriétés des données à l’entrée. Cette idée a été récemment reprise par l’architecture dirigée par les modèles de l’OMG. La deuxième approche consiste à répertorier et à codifier des solutions éprouvées à des problèmes récurrents. Les recherches sur les styles architecturaux, les patrons de conception, ou les cadres d’applications s’inscrivent dans cette approche. Notre travail de recherche reconnaît la complémentarité des deux approches, notamment pour l’étape de conception: dans le cadre du développement dirigé par les modèles, nous percevons l’étape de conception comme l’application de patrons de solutions aux modèles reçus en entrée. Il est coutume de définir l’étape de conception en termes de conception architecturale, et conception détaillée. La conception architecturale se préoccupe d’organiser un logiciel en composants répondant à un ensemble d’exigences non-fonctionnelles, alors que la conception détaillée se préoccupe, en quelque sorte, du contenu de ces composants. La conception architecturale s’appuie sur des styles architecturaux qui sont des principes d’organisation permettant d’optimiser certaines qualités, alors que la conception détaillée s’appuie sur des patrons de conception pour attribuer les responsabilités aux classes. Les styles architecturaux et les patrons de conception sont des artefacts qui codifient des solutions éprouvées à des problèmes récurrents de conception. Alors que ces artefacts sont bien documentés, la décision de les appliquer reste essentiellement manuelle. De plus, les outils proposés n’offrent pas un support adéquat pour les appliquer à des modèles existants. Dans cette thèse, nous nous attaquons à la conception détaillée, et plus particulièrement, à la transformation de modèles par application de patrons de conception, en partie parce que les patrons de conception sont moins complexes, et en partie parce que l’implémentation des styles architecturaux passe souvent par les patrons de conception. Ainsi, nous proposons une approche pour représenter et appliquer les patrons de conception. Notre approche se base sur la représentation explicite des problèmes résolus par ces patrons. En effet, la représentation explicite du problème résolu par un patron permet : (1) de mieux comprendre le patron, (2) de reconnaître l’opportunité d’appliquer le patron en détectant une instance de la représentation du problème dans les modèles du système considéré, et (3) d’automatiser l’application du patron en la représentant, de façon déclarative, par une transformation d’une instance du problème en une instance de la solution. Pour vérifier et valider notre approche, nous l’avons utilisée pour représenter et appliquer différents patrons de conception et nous avons effectué des tests pratiques sur des modèles générés à partir de logiciels libres.Software engineering researchers have long tried to understand the software process development to mechanize it or at least to codify its good practices. We identify two major approaches to characterize the process. The first approach—known as transformational—sees the process as a sequence of property-preserving transformations. This idea was recently adopted by the OMG’s model-driven architecture (MDA). The second approach consists in identifying and codifying proven solutions to recurring problems. Research on architectural styles, frameworks and design patterns are part of this approach. Our research recognizes the complementarity of these two approaches, in particular in the design step. Indeed within the model-driven development context, we view software design as the process of applying codified solution patterns to input models. Software design is typically defined in terms of architectural design and detailed design. Architectural design aims at organizing the software in modules or components that meet a set of non-functional requirements while detailed design is—in some way—concerned by the contents of the identified components. Architectural design relies on architectural styles which are principles of organization to optimize certain quality requirements, whereas detailed design relies on design patterns to assign responsibilities to classes. Both architectural styles and design patterns are design artifacts that encode proven solutions to recurring design problems. While these design artifacts are documented, the decision to apply them remains essentially manual. Besides, once a decision has been made to use a design artifact, there is no adequate support to apply it to existing models. As design patterns present an ‘‘easier’’ problem to solve, and because architectural styles implementation relies on design patterns, our strategy for addressing these issues was to try to solve the problem for design patterns first, and then tackle architectural styles. Hence, in this thesis, we propose an approach for representing and applying design patterns. Our approach is based on an explicit representation of the problems solved by design patterns. Indeed, and explicit representation of the problem solved by a pattern enables to: 1) better understand the pattern, 2) recognize the opportunity of applying the pattern by matching the representation of the problem against the models of the considered system, and 3) specify declaratively the application of the pattern as a transformation of an instance of the problem into an instance of the solution. To verify and validate the proposed approach, we used it to represent and apply several design patterns. We also conducted practical tests on models generated from open source systems
    corecore