Model-Driven Development (MDD) represents a positive step toward a general model-based approach to software engineering. The Object Management Group (OMG) offers a conceptual framework, called MDA that defines a set of standards in support of MDD. However, MDA lacks a formal foundation. We present a formal foundation supporting MDD based on ZOOM. We examine the benefits that such a formal foundation can provide. We look at the core components of ZOOM and how they differ from comparable approaches by including formal elements relating not just to application functionality, but also to application architecture and user interface requirements as well.
ZOOM stands for Z-based Object Oriented Modeling notation. It consist of notations intended for three important activities in object oriented development:
- the ZOOM Structure Model ZOOM-M
- the ZOOM Behavioral Model ZOOM-FSM
- the UI Model UIDL
ZOOM takes the advantages of industry standard MDA, but provides more powerful features than MDA. ZOOM provides a formal framework for software development, which is reliable and effective. Also in ZOOM project, we plan to design and develop many supporting tools to make our approach more practical.
The following diagram shows the overview of the ZOOM notations.
Although widely used to specify software systems, one of the deficiencies of Z is that it does not provide useful mechanisms to support object-oriented modeling such as classes or inheritance. ZOOM brings formal foundations to object-oriented notations by providing textual and graphical representations of models that are consistent with UML-2 and that can be checked formally for consistency. It allows constraints such as preconditions, postconditions and invariants to be specified formally. To make it easy for practitioners to use, ZOOM adopts a syntax that is similar to commonly used programming languages such as Java and C++.
Unlike UML-2, which separates the system into several loosely related views, ZOOM provides a mechanism to integrate those views together along with their formal semantics. This approach overcomes some of the problems with intra- and inter-model consistency within UML-2. ZOOM separates an application into three parts: structure, behavior and user interface. ZOOM provides three separate but related notations to describe each of these three key aspects: ZOOM-M for structural models, ZOOM-FSM for behavioral models, and a User Interface Description Language (ZOOM-UIDL) for user interface models. An event-based framework integrates the different parts of each ZOOM model. The main reasons for adopting three different notations are a) these three aspects have distinct characteristics; and b) they are often changeable independent from the others. Therefore it is beneficial to separate these three aspects, make them loosely coupled, and model each aspect using a notation that is most suitable for that aspect.
We propose an event-based integration framework to integrate and coordinate the activities among the structural, behavioral and UI models. Figure 3 shows the structure of event-based framework. The shaded part indicates the run-time components of the framework and the unshaded elements indicate the design-time components.
At run-time, each UI component is automatically bound to an instance in the structural model. When a user triggers a UI event, this event is transmitted to the appropriate behavioral model instance, which may trigger some state transitions. The behavioral model instances can then manipulate the structural model instances and changes to instances bound to UI components will cause UI components being updated automatically. Each component only directly interact with one other component, as indicated in Figure 3. This event-based framework integrates the three models while maintaining simplicity and loose coupling and without limiting the capabilities of the applications.
Knowledge-Based Model Compilation
We realize that a key to successful code generation and model compilation is that it requires a tremendous amount of knowledge in software architecture and design. A critical component of this proposal is to investigate and develop tools for knowledge-based model compilation. The amount of knowledge that goes into even the most basic architectural decision is staggering and encompasses many different areas including: available tools or frameworks, time and other resource constraints, target platform, perceived risks such as future enhancements, familiarity with trade-offs such as time-space and awareness of technical pitfalls. These issues can affect every decision during a software development effort from its inception to its delivery.
In ZOOM project, individual components and tools are under design and development, click the following hyperlinks to visit sub-project's website for more information.
Automated Theorem Prover
Use Case Animator
Unit Test Generator