Model Driven Engineering (MDE) is a model-centric software development approach aims at improving the quality and productivity of software development processes. MDE involves first constructing a platform independent model (PIM) of a software application, then transforming the PIM to platform specific models (PSM), which are implementations of the application on given platforms. Some progresses in MDE have been made, most noticeably the standards and technologies collectively known as the Model Driven Architecture (MDA) initiative developed by the Object Management Group (OMG). However, there are still many obstacles in realizing the full benefits of model driven engineering. These obstacles include incompleteness in existing modeling notations, inadequate in tools support, and the lack of effective model transformation mechanism. We aim at providing a new model driven engineering framework, which is based on a formal modeling notation -- Z-based Object-Oriented Modeling notation (ZOOM). It includes a set of supporting tools aiming at delivering the benefits in practical applications of model driven engineering.
The followings are related projects:
- ZOOM: ZOOM stands for Z-based Object Oriented Modeling notation. It consist of notations intended for three important activities in object oriented development: the ZOOM specification notation ZOOM-S the ZOOM design notation ZOOM-D the ZOOM implementation language ZOOM-I/Java or ZOOM-I/C++
- Model Transformation: this project focuses on one key aspect of MDE -- model transformation. A template based model transformation framework using Hierarchical Relational Meta-model (HRM) is introduced. This framework aims to provide a simple, effective, and practical way to define model transformations. The potential benefits of the proposed model transformation framework include: 1) readability and rigorousness of meta-model definitions; 2) simplicity of transformation definition; and 3) extensibility of transformation templates.
- Model Integration and Animation for Mobile and Embedded Applications: this project explores a formal approach to support model integration and animation. In the center of it is an event-driven framework, coordinates the activities between the structural, behavioral and UI models. It is aiming at supporting both animation and model transformation
- ZOOM Interpreter: implement interpreter for the ZOOM-I language. The interpreter is going to be GUI application with easy development of zoom programs.
- ZOOM Animator: To facilitated the implementation of ZOOM it is necessary to have a rich suite of tools to support the testing and validation of specifications development in ZOOM-S. This project focuses on the development of an animation tool for the ZOOM-S notation. The animation tool is developed in Java to support use across a range of operating systems. The tool is build based on a animation engine which can then be connected to a range of front ends so that it can be used various users interfaces and IDEs (integrated development environment). This project involves the development of the animation engine and a command line user interface for the ZOOM-S animation tool.
- Static Analyzer for Java: this project is trying to use the automated theorem prover to scan the java source code and find the potential runtime violations in it. We are using a Hypothesis Based approach to develop the logic structure of the program, then doing the analysis.
- Tools for Design By Contract: this is a project to design and develop a tools set for java, in order to integrate the Design By Contract capability to java programs. Based on that, our tools set can generate formal documentation, doing static verification according to the design information, or generate runtime safe guard codes.