From Distributed Software Systems Group, University of Massachusetts, Boston
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
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.
- UML 2.0 support for modeling domain-specific concepts. mTurnpike accepts DSLs as metamodels extending the UML 2.0 standard metamodel, and uses UML 2.0 diagrams (class and composite structure diagrams) to model domain-specific concepts (as DSMs). This work is one of the first attempts to exploit UML 2.0 to define and use DSLs.
- Higher abstraction for programming domain-specific concepts. mTurnpike offers a new approach to represent domain-specific concepts at the programming layer, through the notion of attribute-oriented programming. This approach provides a higher abstraction for developers to program domain-specific concepts, thereby improving their programming productivity. Attribute-oriented programming makes programs simpler and more readable than traditional programming paradigms.
- Seamless mapping of domain-specific concepts between the modeling and programming layers. mTurnpike maps domain-specific concepts between the modeling and programming layers in a seamless and bi-directional manner. This mapping allows modelers (or domain analysts) and programmers to deal with the same set of domain-specific concepts in different representations (i.e. UML models and attribute-oriented programs), yet at the same level of abstraction. This means that modelers do not have to involve programming details, and programmers do not have to possess detailed domain knowledge and UML modeling expertise. This separation of concerns can reduce the complexity in application development, and increase the productivity for developers to model and program domain-specific concepts.
- Modeling layer support for attribute-oriented programs. Through the bi-directional mapping between UML models and attribute-oriented programs, mTurnpike provides a means to visualize attribute-oriented programs as UML models. This work is the first attempt to bridge the gap between UML modeling and attribute-oriented programming.
- Declarative model transformation. mTurnpike allows developers to define arbitrary transformation rules, in a declarative manner, to specialize DSMs and DSCs. Declarative transformation rules are more maintainable than procedural/imperative ones. Since DSMs and DSCs do not depend on transformation rules, mTurnpike allows DSMs/DSCs and transformation rules to evolve independently. mTurnpike can specialize a single set of DSM and DSC to different implementation and deployment technologies by using different transformation rules. mTurnpike can make domain-specific concepts (i.e. DSMs and DSCs) more reusable and extend their longevity, thereby improving productivity and maintainability in application development
Publications:
- Hiroshi Wada, Junichi Suzuki, Katsuya Oba, Shingo Takada and Norihisa Doi, "mTurnpike: a Model-driven Framework for Domain Specific Software Development," In JSSST Journal of Computer Software, in press.
- Hiroshi Wada and Junichi Suzuki,“"Modeling Turnpike: A Model-Driven Framework for Domain-Specific Software Development,” In Doctoral Symposium of the ACM/IEEE 8th International Conference on Model Driven Engineering Languages and Systems (MoDELS) (formerly the UML series of conferences), Montego Bay, Jamaica, October 2005.
- Hiroshi Wada and Junichi Suzuki,“"Modeling Turnpike Frontend System: a Model-Driven Development Framework Leveraging UML Metamodeling and Attribute-Oriented Programming," In Proc. of the ACM/IEEE 8th International Conference on Model Driven Engineering Languages and Systems (MoDELS) (formerly the UML series of conferences), Montego Bay, Jamaica, October 2005. (27% acceptance rate)
- Hiroshi Wada, Junichi Suzuki, Shingo Takada and Norihisa Doi, "A Model Transformation Framework for Domain Specific Languages: An Approach Using UML and Attribute-Oriented Programming," In Proc. of the 9th World Multi-Conference on Systemics, Cybernetics and Informatics, Florida, USA, July 2005. (selected as a best paper)
- Hiroshi Wada, Junichi Suzuki, Shingo Takada and Norihisa Doi, "A Model Transformation Framework for Domain Specific Languages: An Approach Using UML and Attribute-Oriented Programming,” In Proc. of JSSST Conference on Systems for Programming and Applications 2005, Gunma, Japan, March 2005. (selected as a best paper)
- Hiroshi Wada and Junichi Suzuki, "Modeling Turnpike: a Model-Driven Framework for Domain-Specific Software Development," poster paper, In Proc. of the 20th ACM International Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), San Diego, CA, October, 2005.