8 research outputs found

    A personal retrospective on language workbenches

    Get PDF
    Model-driven software engineering and specifically domain-specific languages have contributed to improve the quality of software and the efficiency in the development of software. However, the design and implementation of domain-specific languages requires still an enormous investment. Language workbenches are the most important tools in the field of software language engineering. The introduction of language workbenches has alleviated partly the development effort, but there are still a few major challenges that need to be tackled. This paper presents a personal perspective on the development of tools for language engineering and language workbenches in particular and future challenges to be tackled.</p

    Ohjelmiston tuotteistaminen tuoterunkoarkkitehtuuria hyödyntäen

    Get PDF
    Tässä työssä tutkitaan tuoterunkojen ja tuoterunkoarkkitehtuurin käyttöä ohjelmiston tuotteistamisessa. Tuotteistamisen tavoitteena on tuottaa markkinoille korkealaatuisia tuotteita kannattavasti. Tuoterunkoa käyttämällä pyritään mahdollistamaan uusien tuotteiden luominen pienemmillä kustannuksilla ja korkeammalla laadulla verrattuna yksittäisten, asiakaskohtaisten tuotteiden luomiseen. Työssä selvitetään, onko ohjelmiston tuotteistamiseen olemassa valmiita prosesseja tai menetelmiä, joita seuraamalla syntyy tuoterunkoarkkitehtuuria hyödyntävä ohjelmistotuote. Työssä käydään läpi alan kirjallisuuden pohjalta tuotteistamisen ja tuoterunkojen käsitteitä ja pohditaan ohjelmisto- ja tuoterunkoarkkitehtuurien välisiä yhteyksiä. Työssä tarkastellaan, miten tuotteistaminen ja tuoterungot voidaan sovittaa yhteen. Työssä myös esitetään tapoja tuoterunkoarkkitehtuurin huomioimiseen ohjelmistoarkkitehtuurissa. Ohjelmistoarkkitehtuurin tulee tukea muunneltavuutta, jonka avulla ohjelmistosta voidaan luoda uusia variaatioita erilaisiin tarpeisiin. Työssä ilmenee miten tuoterunkoa kehittämällä voidaan samalla tukea ohjelmiston tuotteistamista. Lisäksi työssä esitellään joitakin tapoja tuoterunkoarkkitehtuurin huomioimiseen ohjelmiston kehityksessä

    Reusable textual styles for domain-specific modeling languages

    Get PDF
    Domain-specific languages enable concise and precise formalization of domain concepts and promote direct employment by domain experts. Therefore, syntactic constructs are introduced to empower users to associate concepts and relationships with visual textual symbols. Model-based language engineering facilitates the description of concepts and relationships in an abstract manner. However, concrete representations are commonly attached to abstract domain representations, such as annotations in metamodels, or directly encoded into language grammar and thus introduce redundancy between metamodel elements and grammar elements. In this work we propose an approach that enables autonomous development and maintenance of domain concepts and textual language notations in a distinctive and metamodel-agnostic manner by employing style models containing grammar rule templates and injection-based property selection. We provide an implementation and showcase the proposed notationspecification language in a comparison with state of the art practices during the creation of notations for an executable domain-specific modeling language based on the Eclipse Modeling Framework and Xtext

    Flexible Graphical Editors for Extensible Modular Meta Models

    Get PDF
    In model-driven software development, graphical editors can be used to create model instances more effciently and intuitively than with pure XML code. These graphical editors rely on models created on the basis of a meta-model. If such a meta-model is extended invasively not only its code has to be re-generated but also the graphical editor needs to be adapted. When developing multiple extensions, the meta-model as well as the corresponding graphical editor tend to get complex and error-prone. One way of coping with this complexity is to use modular meta-models and extending them noninvasively. However, having multiple meta-model fragments providing extended features is only half the job as equivalent graphical editors are needed as well. This master’s thesis therefore analyzes different types of extensions for meta-models as well as on graphical editor level. Next, a short analysis of extension mechanisms follows. These mechanisms are used for different realizations of extension types. Like the extension types, the mechanisms are also analyzed for both meta-models and for graphical editors. While the classiffcation of extensions resembles one part of this thesis’ concept, their mapping from meta-model level to graphical editor level marks the second part. This mapping is done in order to show possible impacts of a meta-model extension to its corresponding graphical editor. To validate this concept, the analyzed mappings are implemented exemplarily in two different frameworks. Furthermore, the two prototypes show the different possibilities each framework has to offer when it comes to their capabilities of extension. Therefore, this thesis can also be seen as guideline for extending a given graphical editor

    Verifiable Computation in Practice: Tools and Protocols

    Get PDF
    Verifiable computation (VC) protocols enable clients to outsource computations to untrusted servers in the cloud without compromising the integrity of the computation. Although cryptographic approaches for verifiable computation were mostly of theoretical interest in the past, there has been great progress in the area during the past few years. In particular, efficient constructions for Zero-Knowledge Succinct Non-interactive ARguments of Knowledge (zk-SNARKs) were proposed and adopted in practice. These techniques enable an untrusted server to prove the correctness of computations in zero-knowledge using a succinct proof that can be verified efficiently by the client. This thesis aims at addressing some challenges in such VC protocols, and developing practical protocols for cryptocurrency applications. The challenges we address include the proof computation overhead at the prover's side, and the level of expertise expected from the programmers to write secure and efficient programs for VC. More specifically, current protocols require the programmer to carefully express the computation as an arithmetic circuit, in a way that minimizes the proof computation overhead and prevents malicious behavior by the prover, which is a non-trivial task. To address the above challenges, we present a framework that aims to reduce the proof computation overhead, and offer more programmability to non-specialist developers, while automating the task of circuit minimization through a combination of techniques. The framework includes new circuit-friendly algorithms for frequent operations, which achieve constant to asymptotic savings over algorithms used in previous compilers. In addition, we explore and optimize cryptographic primitives that have efficient arithmetic circuit representations. Furthermore, we explore different settings where VC can be used in practice. We present the design of Hawk, a system for privacy-preserving smart contracts. Hawk enables custom decentralized applications in the smart contract setting to run verifiably on top of a public blockchain system, while not revealing the participants' inputs to the network. To achieve practical performance, Hawk relies on a special party per contract (a manager) that is only trusted for posterior privacy, but not for correctness. Finally, we explore how VC techniques and smart contracts could enable practical crimes in the future, which highlights the importance of working on countermeasures

    Model Transformation Languages with Modular Information Hiding

    Get PDF
    Model transformations, together with models, form the principal artifacts in model-driven software development. Industrial practitioners report that transformations on larger models quickly get sufficiently large and complex themselves. To alleviate entailed maintenance efforts, this thesis presents a modularity concept with explicit interfaces, complemented by software visualization and clustering techniques. All three approaches are tailored to the specific needs of the transformation domain
    corecore