Skip to main content
Log in

Where to begin: on pattern language entry points

  • Special Issue Paper
  • Published:
SICS Software-Intensive Cyber-Physical Systems

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8

Similar content being viewed by others

Notes

  1. https://www.hillside.net/conferences.

  2. http://www.internetofthingspatterns.com.

References

  1. Alexander C (1964) Notes on the synthesis of form. Harvard University Press, Cambridge

    Google Scholar 

  2. Alexander C, Ishikawa S, Silverstein M (1977) A pattern language: towns, buildings, construction. Oxford University Press, New York

    Google Scholar 

  3. Buschmann F, Henney K, Schmidt DC (2007) On patterns and pattern languages. Pattern-oriented software architecture, vol 5. Wiley, Chichester

    Google Scholar 

  4. 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

    Google Scholar 

  5. 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

  6. 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

  7. 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

  8. Falkenthal M, Breitenbücher U, Leymann F (2018) The nature of pattern languages. In: Pursuit of pattern languages for societal change, pp 130–150

  9. 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

  10. Hohpe G, Woolf B (2004) Enterprise integration patterns: designing, building, and deploying messaging solutions. Addison-Wesley, Boston

    Google Scholar 

  11. 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

  12. 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

  13. 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

    Article  Google Scholar 

  14. Noble J (1998) Towards a pattern language for object oriented design. In: Proceedings, Technology of object-oriented languages, 1998. TOOLS 28, pp 2–13

  15. 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

  16. 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

  17. Schmidt DC, Stal M, Rohnert H, Buschmann F (2000) Pattern-oriented software architecture: patterns for concurrent and networked objects, vol 2. Wiley, Hoboken

    MATH  Google Scholar 

  18. 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

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Lukas Reinfurt.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00450-019-00417-6

Keywords

Navigation