Co-Existence of Modeling Language Versions and Co-Evolution
Co-Existence of Modeling Language Versions and Co-Evolution
Disciplines
Computer Sciences (100%)
Keywords
-
Model-Driven Engineering,
Co-Evolution,
Meta Modeling,
Domain-Specific Languages,
Consistency Checking
Modern software projects rely on a wide variety of engineering artifactssuch as design models, source code, and requirementseach written in different languages (e.g., UML, Java, EARS). These languages and artifacts evolve over time, but current tools like version control systems only track changes at the text level. They lack awareness of the structure and meaning behind those changes, and they do not account for the evolution of the languages themselves. Without understanding how both languages and their associated artifacts evolve together, we risk losing consistency, traceability, and insight into the engineering process over time. Engineering projects often involve multiple languages used concurrentlyeach evolving on its own timeline. For example, a single system might include client code in Java 1.8, server code in Java 20, UML 2.1 models, and EARS 2009 requirements. Supporting this kind of coexistence introduces challenges in maintaining consistency across versions and languages. Goal 1: Develop a framework that allows different versions of languages and their related artifacts to coexist within the same project. Goal 2: Enable the management of complex, multi-way (n-ary) relationships between different versions of different languages and their artifacts, ensuring consistency and traceability. Goal 2 naturally follows from Goal 1: once we allow artifacts of different language versions to coexist, we must address how these interact. For instance, consistency between UML 2.1 and Java 1.8 is not the same as consistency between UML 1.4 and Java 20. As such, the evolution of languages and artifacts cannot be treated in isolation; their interplay creates a rapidly growing web of relationships that must be understood and maintained. Understand language and artifact evolution: Build a foundational understanding of how engineering languages and their artifacts change over time. Develop a general tracking mechanism: Create a system that can record, manage, and interpret these changes across languages and versions. Prototype and evaluate: Build experimental tools to automate and support coexistence, consistency, and traceability across diverse and evolving artifacts.
- Universität Linz - 100%