492 research outputs found

    Test-driven Language Derivation with Graph Transformation-Based Dynamic Meta Modeling

    Get PDF
    Deriving a new language L_B from an already existing one L_A is a typical task in domain-specific language engineering. Here, besides adjusting L_A's syntax, the language engineer has to modify the semantics of L_A to derive L_B's semantics. Particularly, in case of behavioral modeling languages, this is a difficult and error-prone task, as changing the behavior of language elements or adding behavior for new elements might have undesired side effects. Therefore, we propose a test-driven language derivation process. In a first step, the language engineer creates example models containing the changed or newly added elements in different contexts. For each of these models, the language engineer also precisely describes the expected behavior. In a second step, each example model and its description of behavior is transformed into an executable test case. Finally, these test cases are used when deriving the actual semantics of L_B - at any time, the language engineer can run the tests to verify whether the changes he performed on L_A's semantics indeed produce the desired behavior. In this paper, we illustrate the approach using our graph transformation-based semantics specification technique Dynamic Meta Modeling. This is once more an example where the graph transformation approach shows its strengths and appropriateness to support software engineering tasks as, e.g., model transformations, software specifications, or tool development

    Improving modularity in GLL

    Get PDF

    Quality assurance with dynamic meta modeling

    Get PDF
    Dynamic Meta Modeling (DMM) ist eine Semantikbeschreibungstechnik, die sich auf MOF-basierte Sprachen fokussiert und deren Verhalten durch graphische, operationale Regeln beschreibt. Der DMM-Ansatz wurde im Jahr 2000 von Engels et al. erstmals beschrieben und von Hausmann in 2006 in seiner Dissertation ausgearbeitet. Der nächste Schritt war nun, an verschiedenen Modellierungssprachen zu erproben, um die gemachten Erfahrungen in die Verbesserung von DMM und seinen Werkzeugen einfließen zu lassen. Das Ergebnis ist die DMM++-Methode, die in dieser Arbeit vorgestellt wird. Wir haben vorwiegend an drei Stellen Verbesserungen vorgenommen: Erstens haben wir basierend auf unseren Erfahrungen mit DMM neue Sprachkonzepte wie die Verfeinerung von Regeln entwickelt, und wir haben bestehende Konzepte wie die Behandlung von universell quantifizierten Strukturen oder Attributen verbessert. Zweitens haben wir einen testgetriebenen Semantikspezifizierungsprozess entwickelt: Zunächst wird eine Menge von Beispielmodellen erzeugt und deren erwartetes Verhalten formalisiert. Die DMM-Regeln werden dann inkrementell entwickelt, wobei geprüft wird, ob die Beispielmodelle tatsächlich das erwartete Verhalten erzeugen. Zudem haben wir Abdeckungskriterien für Tests von DMM-Spezifikationen entwickelt, die die Beurteilung der Qualität der Tests erlauben. Drittens haben wir gezeigt, wie funktionale und nichtfunktionale Anforderungen an Modelle und ihre DMM-Spezifikation formuliert und geprüft werden können. Für ersteres haben wir eine graphische Sprache zur Formulierung temporallogischer Eigenschaften zur Verfügung gestellt, die dann mit Model Checking geprüft werden. Für zweiteres ermöglichen wir dem Modellierer das Hinzufügen von Performanceinformationen zu den Modellen, aufgrund dessen dann z.B. der average throughput eines Modells berechnet werden kann.Dynamic Meta Modeling (DMM) is a semantics specification technique targeted at MOF-based modeling languages, where a language's behavior is defined by means of graphical operational rules which change runtime models. The DMM approach has first been suggested by Engels et al. in 2000; Hausmann has then defined the DMM language on a conceptual level within his PhD thesis in 2006. Consequently, the next step was to bring the existing DMM concepts alive, and then to apply them to different modeling languages, making use of the lessons learned to improve the DMM concepts as well as the DMM tooling. The result of this process is the DMM++ method, which is presented within this thesis. Our contributions are three-fold: First, and according to our experiences with the DMM language, we have introduced new concepts such as refinement by means of rule overriding, and we have strengthened existing concepts such as the dealing with universal quantified structures or attributes. Second, we have developed a test-driven process for semantics specification: A set of test models is created, and their expected behavior is fixed. Then, the DMM rules are created incrementally, finally resulting in a DMM ruleset realizing at least the expected behavior of the test models. Additionally, we have defined a set of coverage criteria for DMM rulesets which allow to measure the quality of a set of test models. Third, we have shown how functional as well as non-functional requirements can be formulated against models and their DMM specifications. The former is achieved by providing a visual language for formulating temporal logic properties, which are then verified with model checking techniques, and by allowing for visual debugging of models failing a requirement. For the latter, the modeler can add performance information to models and analyze their performance properties, e.g. average throughput.Tag der Verteidigung: 04.07.2013Paderborn, Univ., Diss., 201

    Closing the Gap Between Designers and Developers in a Low-Code Ecosystem

    Get PDF
    Digital systems play an important role in the strategy of companies nowadays as they are crucial to achieve their business goals as well as gain a competitive advantage. This is particularly true for systems designed for the end-users market. Not only has the number of such systems been growing steadily but the requirements and expectations of users regarding usability and performance have also increased. Developing software systems is a complex process that comprises several stages and involves multiple professionals responsible for different tasks. Two stages of the process are the design and implementation of User Interfaces. UX and UI designers produce artifacts such as mockups and prototypes using design tools describing what should be the systems behavior, interactivity and look and feel. Next, Front-end and Back-end developers implement the system according to the specifications defined by designers. Designers and developers use different methodologies, languages, and tools. This introduces a communication gap between both groups, and hence collaboration between them is not always smooth. This ends up causing less efficient processes, rework and loss of information. Developers sometimes overlook the importance of User Experience and Front-end De velopment. The corresponding project stages suffer when collaboration between groups is not optimal. Problems are particularly striking during the transition from design arti facts to front-end code. The procedures for doing this are often manual, very error-prone, and time-consuming for developers that end-up completely re-doing the designers’ work in the target web technology. The aim of this dissertation is to improve the efficiency of collaboration between de signers and front-end developers in the OutSystems ecosystem. This was carried out by developing a tool that transforms UX/UI design artefacts into low-code web-technology using model transformation and meta-modelling techniques. The approach has been evaluated in practice by a team of professional designers and front-end developers. Re sults show savings between 20 and 75% according to the project complexity in the effort invested by development teams in the above mentioned process.Os sistemas digitais têm um papel muito importante hoje em dia na estratégia das empresas, uma vez que as ajudam a atingir os seus objetivos de negócios assim como a ganhar vantagem competitiva face às demais. Isto é particularmente verdade para os sistemas destinados ao mercado dos utilizadores finais. Não só aumentou significativamente o número de tais sistemas como aumentaram também os requisitos e expectativas dos seus utilizadores. O desenvolvimento de sistemas de software é um processo complexo que envolve um número alargado de profissionais com diferentes perfis. Duas das fases são o design de interfaces e a sua implementação. Os UI e UX designers produzem um conjunto de ficheiros utilizando ferramentas de design descrevendo o comportamento, interação e aparência do sistema. Os Front-end e Back-end developers implementam as funcionalidades do sistema com base nas especificações dos designers. Designers e developers trabalham utilizando diferentes metodologias, linguagens e ferramentas. Isto introduz uma lacuna entre os grupos e dificulta a sua colaboração, originando processos menos eficientes, trabalho refeito e perda de informação. Os engenheiros de software por vezes negligenciam disciplinas tais como a Experi ência do Utilizador e o Front-end. Estas fases dos projetos são prejudicadas quando a colaboração entre os grupos não é ótima. Os problemas são particularmente evidentes durante a transição entre design e Front-end. Os procedimentos são manuais, altamente propensos a erros e demorados para os developers, que acabam por refazer o trabalho dos designers na tecnologia web desejada. O objetivo desta dissertação é melhorar a eficiência da colaboração entre designers e front-end developers no ecossistema OutSystems. Isto foi levado a cabo desenvolvendo uma ferramenta capaz de transformar artefactos de UX/UI em low-code utilizando transformações de modelos e técnicas de meta-modeling. A abordagem foi avaliada em prática por uma equipa profissional de designers e front-end developers. Os resultados obtidos mostram poupanças entre os 20 e os 75% de acordo com a complexidade do projeto no esforço investido pelas equipas de desenvolvimento no processo mencionado acima

    Working Notes from the 1992 AAAI Workshop on Automating Software Design. Theme: Domain Specific Software Design

    Get PDF
    The goal of this workshop is to identify different architectural approaches to building domain-specific software design systems and to explore issues unique to domain-specific (vs. general-purpose) software design. Some general issues that cut across the particular software design domain include: (1) knowledge representation, acquisition, and maintenance; (2) specialized software design techniques; and (3) user interaction and user interface

    Making object-oriented databases more knowledgeable (From ADAM to ABEL)

    Get PDF
    Tesis leida en la Universidad de Aberdeen. 178 p.The salient points of this thesis are as follows: • Object-Oriented Databases can help in solving the impedance mismatch problem by introducing methods. However, methods have sometimes been overused in the sense th at the code encapsulated refers not only to how the operation is implemented but also to other kinds of knowledge that are implicit in the code. The disadvantages of this approach for modelling integrity constraints, user-defined relationships and active behaviour are pointed out. • The ADAM Object-Oriented Database has been extended to allow the designer to specify integrity constraints declaratively. A constraint equation approach is implemented th at supports the inheritance of constraints. • A need for semantic-rich user-defined relationships has been identified. In this thesis, relationships are represented as objects. An approach to enhance the semantics of relationships in both its structural and behavioural aspects is presented. The most novel idea of the approach presented is the support of the inferred properties and the operational semantics of relationships. • Active Databases have recently become an im portant area of research. This thesis shows how to extend an Object-Oriented Database with active capabilities. The principal contribution lies in representing as ‘first-class’ objects not only the active rules but also the rule manager itself. Hence, besides handling active rules as any other object in the system, future requirements can be supported just by specialising the current rule manager. • Active rules have been proposed for several purposes. Several examples, are given of the direct use of rules. However, higher level tools can be provided of which rule

    Subjectivity and ownership:a perspective on software reuse

    Get PDF
    EThOS - Electronic Theses Online ServiceGBUnited Kingdo
    • …
    corecore