Degree: MSc Start: Sep. 2012 Finish: Feb. 2015
Supervisor: Dr. Bahman Zamani
Thesis Title: Presenting a UML Profile for Patterns of Enterprise Application Architecture
Nowadays, due to the complexity of systems, building a model of the system is inevitable. In the past, most models were used for describing and documenting the system. However, with the advancement of technology and emerging methods to automatically create code from the model, which are known as model-driven approaches, generating correct models of the system has become an important issue. Creating a model needs a modeling language. Therefore, several general purpose modeling languages have been introduced. However, general purpose modeling languages, in spite of numerous advantages, when the aim is creating a model for a specific domain, causes restrictions for designers and reduces the speed of modeling. In this regard, in general purpose language of UML a method is provided for extending it for different domains. It is the option of defining a «UML profile». A UML profile consists of stereotypes, tagged values, and constraints. Using such facility, one can extend UML to support the concepts of a particular domain.
In this research, a UML profile is designed for designing enterprise applications architecture, in which the concepts are based on Fowler’s «Patterns of Enterprise Application Architecture». This profile is created in Rational Software Architecture (RSA) tool. Patterns consist of concepts, structure, and behavior, and for full implementation of them in a language, all these three features should be implemented. Since such implementation is not provided completely in profiles, and in order to complete the language, we decided to, in addition to the profile, provide a tool for modeling based on the patterns. Because of the pattern authoring feature in RSA for defining structure and behavior of patterns, a plugin is built in this tool that includes all 51 Patterns of Enterprise Application Architecture. It should be noted that, the two works done in this research are not isolated. The plugin has used the concepts defined in the profile to create the structure and behavior of the patterns.
To evaluate the proposed language (profile) and tool, three examples of various enterprise systems are modeled using them. The results show that using this profile, the required concepts of patterns is easily accessible for designer. On the other hand, using the tool that is created from the plugin, in addition to the increased speed in applying the profile on the existing elements of the model, the structure and behavior of patterns can be automatically generated in the model; while just using the profile, designer has to create such structures manually.