Modeling Turnpike Project

University of Massachusetts, Boston
Department of Computer Science
Distributed Software Systems Group

Led by Hiroshi Wada and Jun Suzuki.

Turnpike. n. A course affording passage from one place to another.
Turnpike effect. The availability and unforeseen utility of a resource leads to
greater use than was predicted. Availability shapes demand.

Executive Summary

This project investigates and empirically evaluates a new model-driven development framework that allows developers to model and program domain-specific concepts (ideas and mechanisms specific to a particular business or technology domain) and to transform them to the final (compilable) source code.

Objective

Software modeling is becoming a critical process in software development. Modeling technologies have matured to the point where it can offer significant leverage in all aspects of software development. For example, the Unified Modeling Language (UML) provides a rich set of modeling notations and semantics, and allows developers to understand, specify and communicate their application designs at a higher level of abstraction. The notion of model-driven development aims to build application design models and transform them into running applications. Given modern modeling technologies, the focus of software development has been shifting away from implementation technology domains toward the concepts and semantics in problem domains. The more directly application models can represent domain-specific concepts, the easier it becomes to specify applications. One of the goals of modeling technologies is to map modeling concepts directly to domain-specific concepts.

Domain Specific Language (DSL) is a promising solution to directly capture, represent and implement domain-specific concepts. DSLs are the languages targeted to particular problem domains, rather than general-purpose languages that are aimed at any software problems. Several experience reports have demonstrated that DSLs can improve the productivity to implement domain-specific concepts. In academic, industrial and government communities, various DSLs have been proposed and used for describing, for example, 3D animations, business rules, business processes, insurance business logic, software testing, software product lines, operating system's schedulers and device drivers, real-time systems, embedded systems, military command and control, and census taking.

This research project proposes a new model-driven development framework, called Modeling Turnpike (or mTurnpike), which aids modeling and programming domain-specific concepts with DSLs. mTurnpike allows developers to model and program domain-specific concepts in DSLs and to transform them to the final (compilable) source code in a seamless and piecemeal manner.

Approach

Leveraging the notions of UML metamodeling and attribute-oriented programming, mTurnpike provides an abstraction to represent domain-specific concepts at the modeling and programming layers simultaneously. At the modeling layer, domain-specific concepts are represented as a Domain Specific Model (DSM), which is a set of UML 2.0 diagrams described in a DSL. Each DSL is defined as a UML metamodel extending the UML 2.0 standard metamodel. At the programming layer, domain-specific concepts are represented as a Domain Specific Code (DSC), which consists of attribute-oriented programs. Attributes are declarative marks, associated with program elements (e.g. classes and interfaces), to indicate that the program elements maintain application-specific or domain-specific semantics.

The frontend system of mTurnpike transforms domain-specific concepts from the modeling layer to programming layer, and vise versa, by providing a seamless mapping between DSMs and DSCs without any semantics loss. The backend system of mTurnpike transforms a DSM and DSC into a more detailed model and program by applying a given transformation rule. mTurnpike allows developers to define arbitrary transformation rules, each of which specifies how to specialize a DSM and DSC to particular implementation and deployment technologies. For example, a transformation rule may specialize them to a database, while another rule may specialize them to a remoting system. mTurnpike combines the specialized DSM and DSC to generate the final (compilable) source code.

Novelty

This project makes the following five contributions to the design and implementation of model-driven development frameworks.

Publications:


Distributed Software Systems Group
Department of Computer Science
University of Massachusetts, Boston