Abstract
Pattern languages as tools for solving problems based on interconnected, abstract, and proven solutions can offer valuable help to practitioners. But there is always the question of where to begin when a pattern language should be applied. Their authors often provide entry points, but these are usually only useful if one starts completely from scratch or from a very specific situation. When confronted with problems at hand, practitioners are often left to find a suitable entry point themselves by reading through the whole pattern language to find applicable patterns. To help with this problem, we present a general approach and its formalization that provides entry points for any kind of situation. Our general three step approach guides practitioners through Situation Assessment, Treatment Selection, and Treatment Application in order to find and apply a suitable pattern language for their specific problems. We formalize all the parts involved and show that the facts collected during Situation Assessment can be used to find a suitable entry point for a specific situation. We also present an algorithm for finding these entry points.
Similar content being viewed by others
References
Alexander C (1964) Notes on the synthesis of form. Harvard University Press, Cambridge
Alexander C, Ishikawa S, Silverstein M (1977) A pattern language: towns, buildings, construction. Oxford University Press, New York
Buschmann F, Henney K, Schmidt DC (2007) On patterns and pattern languages. Pattern-oriented software architecture, vol 5. Wiley, Chichester
Buschmann F, Henney K, Schmidt DC (2007) Pattern-oriented software architecture: a pattern language for distributed computing. Wiley series in software design patterns. Wiley, Chichester
Dearden A, Finlay J, Allgar E, McManus B (2002) Using pattern languages in participatory design. In: Proceedings of the participatory design conference (PDC 2002), pp 104–113
Diaz P, Aedo I, Rosson MB, Carroll JM (2010) A visual tool for using design patterns as pattern languages. In: Proceedings of the international conference on advanced visual interfaces, pp 67–74
Falbo RA, Quirino GK, Nardi JC, Barcellos MP, Guizzardi G, Guarino N, Longo A, Livieri B (2016) An ontology pattern language for service modeling. In: Proceedings of the 31st annual ACM symposium on applied computing, ACM, pp 321–326
Falkenthal M, Breitenbücher U, Leymann F (2018) The nature of pattern languages. In: Pursuit of pattern languages for societal change, pp 130–150
Feldhusen J, Bungert F (2009) Pattern languages to create a holistic methodology for product development and to derive enterprise-specific engineering guidelines. In: Industrial engineering and ergonomics, Springer, pp 131–141
Hohpe G, Woolf B (2004) Enterprise integration patterns: designing, building, and deploying messaging solutions. Addison-Wesley, Boston
Iba T, Sakamoto M (2011) Learning patterns III: a pattern language for creative learning. In: Proceedings of the 18th conference on pattern languages of programs, p 29
Kazman R, Klein M, Barbacci M, Longstaff T, Lipson H, Carriere J (1998) The architecture tradeoff analysis method. In: Proceedings, Fourth IEEE international conference on engineering of complex computer systems (Cat. No. 98EX193), pp 68–78
Massingill BL, Mattson TG, Sanders BA (2007) Reengineering for parallelism: an entry point into plpp (pattern language for parallel programming) for legacy applications. Concurr Comput Pract Exp 19(4):503–529
Noble J (1998) Towards a pattern language for object oriented design. In: Proceedings, Technology of object-oriented languages, 1998. TOOLS 28, pp 2–13
Quirino GK, Nardi JC, Barcellos MP, Falbo RA, Guizzardi G, Guarino N, Bochicchio M, Longo A, Zappatore MS, Livieri B (2015) Towards a service ontology pattern language. In: International conference on conceptual modeling, Springer, pp 187–195
Reinfurt L, Breitenbücher U, Falkenthal M, Leymann F, Riegg A (2016) Internet of things patterns. In: Proceedings of the 21st European conference on pattern languages of programs (EuroPLoP), ACM
Schmidt DC, Stal M, Rohnert H, Buschmann F (2000) Pattern-oriented software architecture: patterns for concurrent and networked objects, vol 2. Wiley, Hoboken
van Lamsweerde A (1991) The kaos project: knowledge acquisition in automated specification of software. In: AAAI Spring symposium series, design of composite systems, pp 59–62
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Reinfurt, L., Falkenthal, M. & Leymann, F. Where to begin: on pattern language entry points. SICS Softw.-Inensiv. Cyber-Phys. Syst. 35, 127–139 (2020). https://doi.org/10.1007/s00450-019-00417-6
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00450-019-00417-6