This article focuses on the current prototype for the 3D software modelling. It builds on the previous article about the basics and related work on 3D techniques for the software engineering and can be found here.
The basis for the here presented 3D software modelling tool is the “Visual Studio Visualization and Modelling SDK” (VSVMSDK) from Microsoft. This is a common framework for the DSL development integrated in Visual Studio and it provides mechanisms for the DSL definition, modelling, and code generation. It enables one to easily and quickly define graphical modelling languages. The compiled language definition integrates into Visual Studio through a Plug-In. This Plug-In not just provides functionality for the graphical modelling but also for managing model elements and code generation.
The VSVMSDK is due to his integration in Visual Studio provided in .NET libraries. These can be combined with Unity 3D and the Modelling SDK can be accessed from the 3D engine. We have taken advantage of this feature to combine the modelling functionalities of the VSVMSDK with a 3D visualization created with the Unity 3D engine.
The following figure shows a simplified, schematic representation of an exemplary DSL definition to model relationships between Artists and Albums.
The root element is the MusicModel and Album and Artist are child elements of it (represented by a solid line). Album and Artist are also related to each other through a referencing relationship (represented by a dashed line). The ArtistAlbumConnector is mapped to this relationship and provides the functionality to connect an Artist and Album element in the later model. This connection has the context of the contribution of an artist on an album and has the additional information of the role the artist has on the album (not illustrated on the figure above). An Album can also have Songs as child elements. In the graphical editor of the later model, this embedding relationship is realized by a compartment in the AlbumShape which lists all the child Songs of an Album.
The following figure shows the 2D model of the music language.
The functionalities of the VSVMSDK were now integrated in a Unity 3D project to create a tool for the interactive presentation of DSL models in a 3D environment. These models can be viewed and edited in this environment. The mechanisms for the model persistence and managing have been retained from the Modelling SDK to guarantee that a saved 3D model can be opened in the Visual Studio 2D editor and the other way around.
For each 2D graphical element and 3D pendant have been defined. For example, rectangular elements (like the Artist shapes) are presented by cubes and compartment shapes are presented by stacked 3D disks. The 3D pendent to the above presented 2D model can be seen in the figure below.
Additional to the 3D model elements, a menu for the model editing can be seen in the figure. There is the “Tools” menu which provides tools for the element creation. The properties of selected model elements can also be edited in the “Properties” view.
The current prototype has been designed to dynamically support any modelling language defined with the VSVMSDK. Models in these languages can be viewed, edited and saved.
In future different display technologies will be supported. It will then be possible to view the 3D models on stereoscopic displays or even immerse into the models with virtual reality glasses and individually or together with team mates walk through a model. This is supposed to support the perceiving of model structures.