A Domain Specific Modeling Language for Enterprise Application Development

A Domain Specific Modeling Language for Enterprise Application Development

Bahman Zamani (MDSE Research Group, Dept. of Software Engineering, University of Isfahan, Isfahan, Iran) and Shiva Rasoulzadeh (MDSE Research Group, Dept. of Software Engineering, University of Isfahan, Isfahan, Iran)
DOI: 10.4018/IJITSA.2018070104
OnDemand PDF Download:
No Current Special Offers


This article describes how experience in domain specific modeling can be captured and abstracted in a domain specific modeling language (DSML). Modeling with a DSML results in quality models. Patterns of enterprise application architecture (PofEAA) is a rich set of patterns that can be used by designers when designing (modeling) web-based enterprise applications. This article aims at defining a DSML based on PofEAA patterns, as well as providing tool support for designing web-based enterprise applications that use these patterns. The authors have built a DSML using the profile extension mechanism of UML, by defining stereotypes. In addition to the proposed profile, this article has implemented the structure and behavior of PofEAA patterns in Rational Software Architecture (RSA) which is resulted in a tool that facilitates the design of software for designers. To show the usefulness of the tool, it is used for modeling two small systems based on the PofEAA patterns. The results show that many of the design is automated and the modeling speed is increased.
Article Preview

1. Introduction

Due to the complexity of modern software systems, it is de rigueur to build a model of the system prior to implementation. The Unified Modeling Language (UML) is a de facto standard for modeling software systems and is well-known for being a general-purpose modeling language (Booch, Jacobson, & Rumbaugh, 1998). Alongside the increasing variety in software projects comes the need for specialization within specific domains. Hence, in spite of numerous advantages of general purpose modeling languages, when the aim is to create a model for a specific domain, restrictions may arise for designers that reduce the speed of modeling (Fuentes-Fernandez & Vallecillo-Moreno, 2004). Software engineers have a special interest in utilizing domain-specific concepts when building their models (Selic, 2007). Models are the primary artifacts in model driven engineering (MDE). As such, the quality assessment of models is an important issue in MDE (Zamani & Butler, 2013). Additionally, the emergence of the MDE paradigm has increased interest in domain specific modeling languages (DSMLs). Since DSMLs are more expressive, solve complexity better, and render modeling simpler, they are becoming more common (Tolvanen, 2006). In this regard, in the general-purpose language of UML, a method is provided for extending this language to different domains, i.e., via the option of defining a “UML profile”. A UML profile consists of stereotypes, tagged values, and constraints. By using this option, one can extend UML to support the concepts of a particular domain (OMG, Unified Modeling Language Specification Version 2.5, 2015).

In a bid to produce quality models, designers apply best practices that are introduced by the experts as patterns. “A pattern is a solution to a problem in a context” (Zamani & Butler, 2013). As a useful set of patterns, Martin Fowler’s Patterns of Enterprise Application Architecture (PofEAA) (Fowler, 2002) is used for modeling enterprise applications. When using patterns for designing a large software system, a developer is required to have significant experience working with patterns. The problem is that, the beginners and novice designers in this area may make mistakes in selecting the right pattern and in applying the pattern correctly, which will lead to low quality software. Therefore, it will be helpful to establish an approach that will make the process of designing a system using the relationships between patterns easier. One way of doing so will be to have a DSML for the patterns that assist the designer through the process of modeling the system, which is a DSML that supports selected patterns and the relationships between these patterns.

In this work, we considered PofEAA patterns as our domain concepts. We organize our defined DSML as a UML 2.0 Profile (OMG, Unified Modeling Language Specification Version 2.5, 2015). A UML 2.0 profile provides language constructs such as stereotypes and tagged values, which allow for attaching domain specific semantic, thus enabling us to customize UML for our domain and apply domain specific modeling (DSM). However, we discovered that simply defining a UML profile was not adequate when using patterns as concepts, e.g., we were unable to create a class, attribute, or relationship with constraints or tagged values, and could not express other behaviors with object constraint language (OCL) or tagged values. Similarly, in the case of using patterns of PofEAA as concepts of our domain, we need to define the behavior of these pattern in order to use them correctly. Due to the fact that Rational Software Architecture (RSA)1 has included GoF design patterns, and designers can use them for their modeling, hence, we try to add PofEAA patterns to this tool as well, to help designers in using them correctly. We have implemented PofEAA patterns in RSA; also we have defined a UML profile in RSA that presents PofEAA patterns concepts. Profile can be used by designers while modeling the system; it is also used for implementing patterns completely. As our case study, we show that how the proposed tool can be used in designing an online shopping and hotel management system.

To summarize, the contribution of this paper is as follows:

  • A UML profile which is a DSML to present concepts of the Patterns of Enterprise Application Architecture (PofEAA).

  • A plugin with pattern templates that demonstrates pattern’s structure and behavior and helps designer to design enterprise systems with PofEAA.

Complete Article List

Search this Journal:
Open Access Articles
Volume 15: 3 Issues (2022)
Volume 14: 2 Issues (2021)
Volume 13: 2 Issues (2020)
Volume 12: 2 Issues (2019)
Volume 11: 2 Issues (2018)
Volume 10: 2 Issues (2017)
Volume 9: 2 Issues (2016)
Volume 8: 2 Issues (2015)
Volume 7: 2 Issues (2014)
Volume 6: 2 Issues (2013)
Volume 5: 2 Issues (2012)
Volume 4: 2 Issues (2011)
Volume 3: 2 Issues (2010)
Volume 2: 2 Issues (2009)
Volume 1: 2 Issues (2008)
View Complete Journal Contents Listing