In traditional software engineering domains, Model-Driven Development (MDD) using UML or domain-specific languages (DSL) has been successfully established. However, although MDD is a particularly promising approach to avoid implementation errors due to miscommunication between heterogenous developer groups, i.e. 3D modellers and application programmers, only a few MDD approaches for 3D development have been proposed so far.
Moreover, 3D development is usually a highly iterative process. Round-trip engineering is a modern software development technology that aims to synchronize the often concurrently generated models and program source code in order to support the iterative development process. Round-trip engineering combines a forward phase, where code is automatically generated from an abstract model of the application, with a reverse phase, where manual code edits are merged back into the abstract model.
In the Roundtrip3D project, new methods supporting the model-driven, iterative development of 3D applications are investigated. In particular, we aim to extend SSIML, a MDD approach for 3D development to full round-trip engineering. Secondly, to address the interdisciplinary development process, where 3D modellers and programmers use their own tools, the manually developed code bases have to be synchronized in a non-simultaneous way. A third focus is on the (semi-) automatic adaptation of 3D software to multiple hardware and software platforms (e.g. handhelds, desktop PCs and even CAVE-like systems) via model-driven methods.
Figure 1: Model-driven and iterative development process
for 3D applications.
A small example
To model so called 3D scene graphs at a high level of abstraction and interrelationships between application code and 3D code, we use a graphical Domain Specific Language called SSIML (Scene Structure and Integration Modeling Language).
Round-Trip Engineering (RTE) for 3D Applications
A persistent IM further allows for a non-simultaneous synchronization of the various models and code artifacts which is mandated by the concurrent development process of 3D applications.
Figure 4 depicts our overall round-trip process. SSIML models are first converted into their intermediate representation with Java and EMF. Combining a rule-based transformation language (ETL) with an additional mapping model (for SSIML elements and target language constructs) allows for managable transformations between IMs and the respective Abstract Syntax Trees (ASTs). Code serializers and parsers are generated using Xtext.
After programmers implemented the application logic and 3D designers composed the scene concurrently, the code bases are parsed and the ASTs are transformed into their intermediate representation. After an interactive merge process with conflict handling, a SSIML model is derived from the persistent IM. Software engineers can use the SSIML model to comprehend modifications and to re-design the application.
We created interactive examples (for the web) using the described round-trip development process with several iterations:
- Robot Example
- Car configurator
- Karman Vortex Street (large data set, ~20 MB)
- Kohlenstaubflamme (large data set, ~9 MB)
The car configurator application has firstly been developed for the web. Afterwards, it has been ported to other platforms, i.e. a CAVE and a prototypical version for tablet PCs with Augmented Reality.
Detailed information about the round-trip development process can be found in the publications section.
- Prof. B. Jung
- M. Lenk
- Dr. A. Vitzthum, University of Cooperative Education (BA), Dresden, Saxony
- C. Schlegel
- D. Arnold
- H. Müller
B. Jung, M. Lenk, A. Vitzthum. Structured Development of 3D Applications: Round-Trip Engineering in Interdisciplinary Teams. Computer Science - Research and Development (CSRD), Online First, Springer, 2014. DOI 10.1007/s00450-014-0258-8
B. Jung, M. Lenk, A. Vitzthum. Model-Driven Multi-Platform Development of 3D Applications with Round-Trip Engineering. Software Engineering 2013. (37% acceptance rate)
M. Lenk, C. Schlegel, A. Vitzthum & B. Jung. Round-trip Engineering for 3D Applications: Models and Transformations. Fakultät für Mathematik und Informatik, Preprint 2012-06 (PDF)
M. Lenk, A. Vitzthum & B. Jung. Non-Simultaneous Round-Trip Engineering for 3D Applications. SERP'12 - 11th International Conference on Software Engineering Research and Practice. (PDF)
A. Vitzthum & B. Jung. Model Driven Iterative VR and AR Development. IEEE VR 2010 Workshop on Software Engineering and Architectures for Realtime Interactive Systems (SEARIS). 2010.
T. Strobl, M. Minas, A. Pleuss, A. Vitzthum. From the Behavior Model of an Animated Visual Language to its Editing Environment Based on Graph Transformation. Electronic Communications of the EASST. Vol 32: Graph-based Tools. 2010.