VIDE software supports the MDA approach to model-driven development of software. As such, it distinguishes four layers of models and artifacts:
Computation Independent Model (CIM) – to capture the domain knowledge and describe the business logic in a way that abstracts from actual software support.
Platform Independent Model (PIM) – to describe the data structures and behaviour of the software to be produced, without determining the target platform or deployment details.
Platform Specific Model (PSM) – the model refined to specify exact design decisions in terms of the software technology.
Code – the source code of the software being developed, automatically generated from the PSM.
However, since VIDE is aimed at executable PIM level development, the model at this level is very detailed and capable of being executed or transformed into target platform code with only minor amount of platform-specific refinement needed. Hence, we do not distinguish a PSM layer, but instead go directly from PIM to code, resorting only to PIM annotations where needed.
This way, the VIDE software essentially supports the following three development layers (as shown in Figure 1)
Computation-independent modelling, including the CIM editor itself, as well as the CIM-to-PIM transition functionality.
Platform-independent modelling, supporting textual and visual UML models development, modularisation through aspect-oriented modelling, checking against the quality defects and GUI prototyping. Also the process model refinement (to make them executable) is supported here.
Model execution, allowing to check the behaviour by actually running the model, as well as the code generation (model compilers) to the target platforms.
More precisely, the following workflows being supported by VIDE software can be distinguished as depicted below in (note that they are numbered roughly according to their position in the development lifecycle, although the actual sequence of some steps may differ; also – not all of the steps are required in each scenario).
Domain analysis. This step supports a transition from informal domain descriptions and requirements outline, towards a CIM instance, where they can be further refined using the Vide CIM Level Language (VCLL).
Computation-independent modelling, where the views of the VCLL language (process view, data view, organisational view and business rule view) are used to provide a more formal description of the domain.
PIM level process model refinement. This functionality involves the model interchange between the CIM editor and the process designer tool. Next, the process editor, having access to the PIM level application and services model, is provided in order to refine process activities in terms of their implementation by software services and in terms of the precise control flow rules and process variables handling.
PIM prototyping, which, through several steps, guides the developer in the process of deriving incomplete PIM elements from respective CIM constructs. The results of the prototyping are stored in the PIM level model repository and available for editing with textual and visual PIM level editors.
PIM level application specification. At this level, the model is being specified using UML 2.0 modelling tool and being provided with precise behaviour specification using VIDE editors integrated with it. This step is the focal point for the VIDE tooling. The structure is specified using UML class diagrams and the Web services to be consumed and published are specified here. The behaviour can be specified using the VIDE textual or visual language (covering UML Actions and UML Structured Activities and providing a concrete syntax for them). The OCL-based part of the language can be specified with the help of visual expression builder module.
Aspect Oriented Composition. By providing an extension of UML and VIDE constructs to represent aspect-oriented modelling and a corresponding routine for aspect weaving (to automatically achieve a plain UML representation of resulting models to be consumed by other tools that are not aspect-aware), the means of modularisation of crosscutting aspects are extended. This step of development is to be performed in parallel to workflow (5).
Quality assurance by Defect discovery and visualisation. In the course of PIM level specification, the developer will be able to check the model against quality defects. The problems identified will be indicated by adding the model annotations in the PIM repository and will be visualised on demand in the editor.
Model execution. The model execution engine for UML models, together with the workflow tool runtime for process models will provide model execution environment, to assure a straightforward way of running the PIMs. The Web service connectivity will allow to integrate the application model to be executed with the process definition and with the runtime of GUI prototypes.
Code generation. The components that read the PIM repository and that produce Java and ODRA source code will be provided.
Figure 3: Main workflows supported by VIDE software
The above functionality is to be realised by a number of components (including the existing tools of industrial partners – marked with a blue colour). The figure 4 illustrates the areas of responsibility for particular components.