Forschungsthemen
[MA] Updating the Role-based Design Pattern Catalog
Motivation
Since the first Design Pattern catalog was published, design patterns were described by terms like role and context (Gamma et al. 1994). This important, because design patterns describe recurring and reusable collaborations or architectures of software systems (Riehle and Gross 1998). However, design patterns are typically documented with UML class diagrams, where the roles are represented as classes. This notation however hides crucial constraints and intends for their implementation. This, in turn, may lead to incorrect reuse of design patterns.
In order to increase their reusability Trygve Reenskaug et al. (Reenskaug, Wold, and Lehne 1996) proposed to model design patterns with role models. Following his proposal, Dirk Riehle developed a Design Pattern Catalog (Riehle 1997) based on role models and Miguel Monteiro et al. (Monteiro and Gomes 2013) implemented them with the role-based programming language Object Teams/Java (Herrmann 2005). In sum this could increase the reusability of design patterns. However, the inherent constraints limiting their application remained hidden.
Thus, the research training group RoSI is focused on improving role-based modeling. Especially, the extension of current role models with graphical representations of constraints, like Role Constraints, Role Groups, Relationship Constraints, which improves the correct specification of application domains. Hence, these notations enable the detailed graphical description of the design pattern’s constraints and intentions in a desing pattern catalog.
Problem Definition
Current role-based design pattern catalogs hide the essential constraints and intentions of the documented design patterns in their implementation. Consequently, this work updates these catalogs by using the advanced graphical notions provided by the CROM-Model, in order to make the constraints and intentions of a design pattern explicit.
Goals of this Thesis
To achieve this goal, the following subtasks must be completed:
- Survey the literature on the representation of design patterns and their constraints (contracts),
- Identification of the necessary CROM-Model elements to describe design patterns,
- Structured update of the role-based design pattern catalog (Riehle 1997)
- Evaluation of the designed models by generating the Object Teams/Java source code with GenRE, and
- Optionally, extend the catalog by including more design patterns from the literature.
Literature
Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. 1994. Design Patterns: elements of Reusable Object-Oriented Software. Pearson Education.
Herrmann, Stephan. 2005. “Programming with Roles in ObjectTeams/Java.” FS-05-08. Arlington, Virginia: AAAI Fall Symposium.
Monteiro, Miguel P, and João Gomes. 2013. “Implementing Design Patterns in Object Teams.” Software: Practice and Experience 43 (12). Wiley Online Library: 1519–51.
Reenskaug, Trygve, Per Wold, and Odd Arild Lehne. 1996. Working with Objects: the OOram Software Engineering Method. Manning Greenwich.
Riehle, Dirk. 1997. “A Role-Based Design Pattern Catalog of Atomic and Composite Patterns Structured by Pattern Purpose.” Ubilab Technical Report 97.1. 1. Zürich, Switzerland: Union Bank of Switzerland.
Riehle, Dirk, and Thomas Gross. 1998. “Role Model Based Framework Design and Integration.” In ACM SIGPLAN Notices, 33:117–33. 10. ACM.
Betreuer: Thomas Kühn