ABSTRACT
Software design patterns are proven solutions for recurring design problems. Decisions on the use of a pattern in a software design form a specific but important class of design decisions. However, despite their importance, these design decisions are often mistaken and rarely documented. In our survey, about 90% of the participants confirmed to have experienced such problems. Therefore, we propose an approach that supports the appropriate use of design patterns and documentation of such decisions. The main idea is to create a pattern catalogue, where a pattern (as part of its catalogue entry) is annotated with general questions on the appropriateness of the use of the pattern. The envisioned benefits of this approach are a more appropriate use of design patterns, and documented design decisions on the use of patterns with positive effects on evolution. In this paper, we present the enriched pattern catalogue, and results of a survey with 21 software engineers as a validation of some entries of the pattern catalogue.
- H. Albin-Amiot, Y.-G. Gueheneuc, and R. A. Kastler. Meta-modeling design patterns: Application to pattern detection and code synthesis. In Proc. 1st ECOOP W. Automating Object-Or. SW Dev. Methods, pages 01--35, 2001.Google Scholar
- A. Birukou. A survey of existing approaches for pattern search and selection. In Proceedings of the 15th European Conference on Pattern Languages of Programs, EuroPLoP'10, 2010. Google ScholarDigital Library
- F. Buschmann, K. Henney, and D. C. Schmidt. Pattern-Oriented Software Architecture: A Pattern Language for Distributed Computing. John Wiley & Sons, 2007. Google ScholarDigital Library
- F. Buschmann, R. Meunier, H. Rohnert, and P. Sommerlad. A System of Patterns: Pattern-Oriented Software Architecture, volume 1. John Wiley & Sons, 1996. Google ScholarDigital Library
- J. Dong, S. Yang, and K. Zhang. Visualizing design patterns in their applications and compositions. IEEE Trans. Softw. Eng., 33:433--453, 2007. Google ScholarDigital Library
- Z. Durdik, B. Klatt, H. Koziolek, K. Krogmann, J. Stammel, and R. Weiss. Sustainability guidelines for long-living software systems. In Proc. of the 28th IEEE Int. Conf. on Softw. Maintenance (ICSM), 2012. Google ScholarDigital Library
- Z. Durdik and R. Reussner. Pattern survey, Google Docs. https://docs.google.com/spreadsheet/viewform?formkey= dGVlMFdoel9PUnNuVFp4SnlLSUkwSUE6MA.Google Scholar
- Z. Durdik and R. Reussner. Position Paper: Approach for Architectural Design and Modelling with Documented Design Decisions (ADMD3). In Proc. of the 8th ACM SIGSOFT Int. Conf. on the Quality of Softw. Architectures (QoSA'12), 2012. Google ScholarDigital Library
- M. Elaasar, L. C. Briand, and Y. Labiche. A metamodeling approach to pattern specification. In 9th Int. Conf. on Model Driven Eng. Lang. and Syst., MoDELS'06, pages 484--498, 2006. Google ScholarDigital Library
- M. Fowler. Patterns of Enterprise Application Architecture. Addison-Wesley Professional, 2005. Google ScholarDigital Library
- E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns. Elements of Reusable Object-Oriented Software. Number 1. Addison-Wesley Longman, Amsterdam, 1995. Google ScholarDigital Library
- H. Garbe, C. Janssen, C. Moebus, H. Seebold, and H. de Vries. KARaCAs: Knowledge Acquisition with Repertory Grids and Formal Concept Analysis for Dialog System Construction. In Managing Knowledge in a World of Networks. Springer, 2006. Google ScholarDigital Library
- D. Gross and E. Yu. From non-functional requirements to design through patterns. Requirements Engineering, 6:18--36, 2000.Google ScholarCross Ref
- M. Heller. A patterns-based modeling process with traced design rationale. Master's thesis, Karlsruhe Institute of Technology (KIT), 2012. Reviewer: Prof. Dr. R. H. Reussner, Prof. Dr. W. F. Tichy, Advisor: Z. Durdik, M. Küster.Google Scholar
- S. Henninger and P. Ashokkumar. An ontology-based metamodel for software patterns. In 18th Int. Conf. on SW Eng. and Knowl. Eng. (Seke2006), 2006.Google Scholar
- P. Kruchten. An Ontology of Architectural Design Decisions in Software Intensive Systems. In 2nd Groningen W. Software Variability, pages 54--61, 2004.Google Scholar
- L. Lee and P. Kruchten. Customizing the capture of software architectural design decisions. In Canadian Conf. on Electrical and Computer Engineering, 2008.Google ScholarCross Ref
- B. Paech, T. Koenig, L. Borner, and A. Aurum. An analysis of empirical requirements engineering survey data. Engineering and Managing Software Requirements, p3:427--452, 2006.Google Scholar
- L. Pavlic, M. Hericko, and V. Podgorelec. Improving design pattern adoption with ontology-based design pattern repository. In 30th Int. Conf. on Inf. Tech. Interfaces (ITI 2008), 2008.Google ScholarCross Ref
- F. Pena-Mora and S. Vadhavkar. Augmenting design patterns with design rationale. Artificial Intelligence for Engineering Design, Analysis and Manufacturing, 11:93--108, 1997.Google ScholarCross Ref
- K. Punch. Introduction to Social Research: Quantitative and Qualitative Approaches. Sage Publications Ltd, 2005.Google Scholar
- W. Schaefer. Specification of Software Patterns for Pattern-Oriented Software Development: Meta-model. PG POSE student project.Google Scholar
- M. Shahin, P. Liang, and M. Khayyambashi. Architectural design decision: Existing models and tools. In European Conf. on Softw. Architecture. WICSA/ECSA 2009., pages 293 --296, 2009.Google ScholarCross Ref
- T. Taibi. Design Pattern Formalization Techniques. IGI Publishing, 2007. Google ScholarDigital Library
- A. Tang, Y. Jin, and J. Han. A rationale-based architecture model for design traceability and reasoning. J. Syst. Softw., 80(6):918 -- 934, 2007. Google ScholarDigital Library
- S. Thabasum and M. Sundar. A survey on software design pattern tools for pattern selection and implementation. In Int. Journal of Comp. Science and Communication Networks (IJCSCN), volume Volume 2, Issue 4, 2012.Google Scholar
- W. F. Tichy. A catalogue of general-purpose software design patterns. In Tools-23: Techn. of Object-Oriented Lang. and Sys., 1997. Google ScholarDigital Library
- M. Vokac, W. Tichy, D. I. K. Sjoberg, E. Arisholm, and M. Aldrin. A controlled experiment comparing the maintainability of programs designed with and without design patterns - a replication in a real programming environment. Emp. S. Eng., 9(3), 2004. Google ScholarDigital Library
- W. Wang and J. E. Burge. Using rationale to support pattern-based architectural design. In ICSE W. on Sharing and Reusing Arch. Knowledge, 2010. Google ScholarDigital Library
- O. Zimmermann. Architectural decisions as reusable design assets. Software, IEEE, 28 Issue 1:64 -- 69, 2010. Google ScholarDigital Library
Index Terms
- On the appropriate rationale for using design patterns and pattern documentation
Recommendations
A survey of architecture design rationale
Many claims have been made about the consequences of not documenting design rationale. The general perception is that designers and architects usually do not fully understand the critical role of systematic use and capture of design rationale. However, ...
Pattern detection and design rationale traceability: an integrated approach to software design quality
Design rationale is the synthesis of the structure that is consistent with the model of an artefact, decisions, alternative approaches, and the reasoning behind it. Hence, bypassing it will result in poor quality systems engineering. Ambiguous ...
Representing the applications and compositions of design patterns in UML
SAC '03: Proceedings of the 2003 ACM symposium on Applied computingDesign patterns capture the distilled experience of expert designers. The compositions of design patterns may reuse design experience and solve a set of problems. Design patterns and their compositions are usually modeled using UML. When a design ...
Comments