Usage
  • 5 views
  • 8 downloads

End-to-end Fine-grained Traceability Analysis in Model Transformations and Transformation Chains

  • Author / Creator
    Guana Garces, Victor
  • Over the last few decades, model-driven code generation has been the flagship paradigm used to promote adoption of model-driven engineering among the general software-engineering community. Model-driven code generators integrate model-to-model and model-to-text transformations to build applications that systematically differ from each other. Typically, generators use multi-step transformation chains to translate high-level application specifications, captured using domain-specific languages, into executable artifacts such as code and deployment scripts. A key challenge in the construction of development environments for model transformations involves the analysis and visualization of traceability information. Access to fine-grained traceability links enables developers to assess evolutionary scenarios in transformation ecosystems, to effectively debug complex binding expressions, and to accurately determine the metamodel coverage of transformation chains. Unfortunately, current traceability-analysis techniques do not consider implicit bindings when collecting traceability information from complex transformation expressions. Implicit bindings manipulate, constrain, or navigate the structure of a metamodel in order to realize the final intent of a transformation expression. Furthermore, they do not conceive model-to-model and model-to-text transformations as equal constituent elements of a unified model-driven engineering toolbox. This effectively limits their usability in the context of non-trivial model-driven code generators. To the best of our knowledge, the effectiveness of current traceability analysis, and the development environments built on top of them, has not been validated in empirical studies with real developers. In this work, we address these shortcomings. We propose an end-to-end fine-grained traceability-analysis technique for individual model-to-model and model-to-text transformations, as well as model-transformation chains combining the two. Our analysis technique is based on a traceability framework that considers traceability links as symbolic dependencies between metamodels, transformation expressions, and generated artifacts. Furthermore, we introduce ChainTracker, a traceability-analysis environment. We evaluated the completeness of our traceability-analysis technique using 25 model-to-model and 18 model-to-text transformations from the ATLZoo and the Acceleo Example Repository. Our analysis technique achieved an overall fine-grained traceability coverage of 91\% and 85\%, respectively. Furthermore, we evaluated the usability of ChainTracker in an empirical study in which 25 developers completed traceability-driven tasks in two model-driven code generators of different complexity. We found statistically significant evidence that ChainTracker improves the accuracy and efficiency of developers by between 22\% and 900\%.

  • Subjects / Keywords
  • Graduation date
    2017-11:Fall 2017
  • Type of Item
    Thesis
  • Degree
    Doctor of Philosophy
  • DOI
    https://doi.org/10.7939/R30000D64
  • License
    This thesis is made available by the University of Alberta Libraries with permission of the copyright owner solely for non-commercial purposes. This thesis, or any portion thereof, may not otherwise be copied or reproduced without the written consent of the copyright owner, except to the extent permitted by Canadian copyright law.
  • Language
    English
  • Institution
    University of Alberta
  • Degree level
    Doctoral
  • Department
    • Department of Computing Science
  • Supervisor / co-supervisor and their department(s)
    • Eleni Stroulia (Computing Science)
  • Examining committee members and their departments
    • Kenny Wong (Computing Science)
    • Jeff Gray (Computing Science - University of Alabama)
    • Eleni Stroulia (Computing Science)
    • Abram Hindle (Computing Science)
    • James Miller (Electrical & Computer Engineering)