Models are the main artifacts in Model Driven Engineering (MDE). Hence, the quality assessment of models is an important issue in MDE. Using pattern languages, while building software in the MDE approach, is of special interest to designers. Two major issues in using a pattern are “what pattern to choose?” and “how to apply the selected pattern to have a consistent model?” These issues have direct impact on the quality of models and should be given due attention.
In this paper, we discuss how the idea of supporting patterns in MDE can be viewed as part of an overall verification process. Then, we present one of the core processes that can be used for verification of the application of a pattern language in a UML design. Our process is based on a UML profile defined for Fowler’s “Patterns of Enterprise Application Architecture.” Finally, we show how the process can be integrated into a modeling tool and help the designer in designing more consistent models.
Many designers use the patterns of a pattern language in creating the design model. In designing with patterns, there are three aspects of the pattern language that must be taken into consideration: structural, syntactic, and semantic. That means, the patterns must be applied correctly, the relationship between patterns must be correct, and the design model must be semantically correct. The syntactic aspect is important for pattern languages due to the fact that the patterns in a pattern language are interconnected via several relationships. To achieve automatic design model checking, the three aspects of a pattern language must be precisely defined. We propose formalisms for representing the structural, syntactic, and semantic aspects of a pattern language. As our case study, we select a pattern language in the domain of enterprise application architecture, and show how the pattern language is described using the proposed formalism.
Smell detection is the idea of improving the quality of software by finding and fixing the problems (bad smells) in the source code. The same idea is applicable at the design level. Early detection of the problems in UML design models helps designers produce high quality software.
In this paper, we present a process called Sign/Criteria/Repair (SCR) for detecting and fixing the smells in the application of a pattern language in a UML design. We investigate how the SCR process can be implemented in three different environments, ArgoUML, Epsilon, and OCLE, and how these tools can help the designer improve a UML model.