DesPat

Click for DesPat Tool Extension (user defined pattern definition) DesPat Tool

Design Patterns are solutions developed to solve the problems that are repeatedly encountered in the software in the most optimum way. Gamma et al. known as Gang of Four (GOF) [1] introduced the concept of design patterns in software. A visual software architecture language is developed by using UML [2]'s class diagram notation set to model according to the design patterns. The abstract factory, observer, singleton, visitor, composite, and facade design patterns were used to model in this study.

We used the MetaEdit +[3] editor to model according to the design patterns and to check the accuracy of models against design pattern rules. In addition to these, we have also developed a java code generator for each design pattern. The pattern graph examples can be selected in the main menu of the MetaEdit+ editor as shown in Fig. 1.

Fig. 1 Main menu of the MetaEdit+

After selecting a graph by double-clicking, the graph example is opened as shown in Fig. 2. By pressing the generator icon (Java Generator), a dialog opens, which allows practitioners to select the java generator to run.

Fig. 2 An example of a model used a facade pattern diagram.

The related java generated file of the example of the model used a facade design pattern shown in Fig. 3.

Fig. 3 The java file of the facade pattern example.

[1] Gamma, E., Helm, R., Johnson, R., Vlissides, J. (1994). Design Patterns: Element of reusable of object-oriented software. Addison Wesley. ISBN-13: 9780201633610.

[2] Object Management Group. OMG unified modeling language secification –version 2.5. http://www.omg.org/spec/UML/2.5/; 2015. URL http://www.omg.org/spec/UML/2.5/.

[3] Kelly S, Lyytinen K, Rossi M. “Metaedit+ a fully configurable multi-user and multi-tool CASE and CAME environment”. In: Bubenko J, Krogstie J, Pastor O, Pernici B, Rolland C, Sølvberg A, editors. Seminal contributions to information systems engineering, 25 years of CAiSE. Springer; 2013. p. 109–29. ISBN 978-3-642-36925-4. doi:10.1007/978- 3- 642-36926-1 _9.