Abstract
Pattern languages are a pervasive means in many domains to capture proven solutions for recurring problems in an abstract manner. To improve reusability, they abstract from implementation details such as specific technologies or environments. However, while this abstraction provides a significant benefit as patterns can be applied to solve different manifestations of the general problem, this also leads to time-consuming efforts when patterns have to be applied as concrete solutions have to be elaborated and implemented over and over again. Moreover, as patterns are intended to be applied in combination with other patterns, the individual concrete solutions have to be aggregated into an overall solution, too. However, this immensely increases necessary expertise, required effort, and complexity. Therefore, we present a systematic approach that allows to (i) reuse and (ii) combine already developed concrete solutions on the basis of selected sequences of patterns. We establish the theory of solution algebras, which perceive concrete solutions and aggregation operators as mathematical objects. Thereby, domain-specific operators allow to combine and aggregate concrete solutions of patterns, which we validate in several different domains.
Similar content being viewed by others
References
Alexander C, Ishikawa S, Silverstein M (1977) A pattern language: towns, buildings, construction. Oxford University Press, Oxford
Bayley I, Zhu H (2008) Specifying behavioural features of design patterns in first order logic. In: Proceedings of the international computer software and applications conference, pp 203–210
Breitenbücher U, Binz T, Kopp O, Leymann F (2013) Pattern-based runtime management of composite cloud applications. In: Proceedings of the 3\({{\rm rd}}\) international conference on cloud computing and services science, SciTePress, pp 475–482
Buschmann F, Meunier R, Rohnert H, Sommerlad P, Stal M (1996) Pattern-oriented software architecture, volume 1: a system of patterns. Wiley, Hoboken
Di Martino B, Esposito A (2013) Towards a common semantic representation of design and cloud patterns. In: Proceedings of the 15\({{\rm th}}\) international conference on information integration and web-based applications and services, ACM, pp 385–389
Di Martino B, Esposito A (2016) A rule based procedure for automatic recognition of design patterns in UML diagrams. Softw: Pract Exp 46(7):983–1007
Endres C, Breitenbücher U, Falkenthal M, Kopp O, Leymann F, Wettinger J (2017) Declarative vs. imperative: two modeling patterns for the automated deployment of applications. In: Proceedings of the 9\({{\rm th}}\) international conferences on pervasive patterns and applications, XPS, pp 22–27
Falkenthal M, Leymann F (2017) Easing pattern application by means of solution languages. In: Proceedings of the 9\({{\rm th}}\) international conferences on pervasive patterns and applications, XPS, pp 58–64
Falkenthal M, Jugel D, Zimmermann A, Reiners R, Reimann W, Pretz M (2012) Maturity assessments of service-oriented enterprise architectures with iterative pattern refinement. In: Lecture notes in informatics-informatik, pp 1095–1101
Falkenthal M, Barzen J, Breitenbücher U, Fehling C, Leymann F (2014a) Efficient pattern application: validating the concept of solution implementations in different domains. Int J Adv Softw 7(3&4):710–726
Falkenthal M, Barzen J, Breitenbücher U, Fehling C, Leymann F (2014b) From pattern languages to solution implementations. In: Proceedings of the 6\({{\rm th}}\) international conferences on pervasive patterns and applications, XPS, pp 12–21
Falkenthal M, Barzen J, Breitenbücher U, Fehling C, Leymann F, Hadjakos A, Hentschel F, Schulze H (2015) Leveraging pattern application via pattern refinement. In: Proceedings of the international conference on pursuit of pattern languages for societal change, epubli, Berlin
Falkenthal M, Barzen J, Breitenbücher U, Leymann F (2017) Solution languages: easing pattern composition in different domains. Int J Adv Softw 10(3&4):263–274
Fehling C, Leymann F, Retter R, Schupeck W, Arbitter P (2014) Cloud computing patterns: fundamentals to design, build, and manage cloud applications. Springer, Berlin
Fehling C, Barzen J, Falkenthal M, Leymann F (2015) PatternPedia collaborative pattern identification and authoring. In: Proceedings of pursuit of pattern languages for societal change. The workshop 2014, pp 252–284
Furukawazono T, Studies I, Seshimo S, Studies I, Muramatsu D, Iba T (2013) Survival language: a pattern language for surviving earthquakes. In: Proceedings of the 20\({{\rm th}}\) conference on pattern languages of programs, ACM, p 30
Gamma E, Helm R, Johnson R, Vlissides J (1994) Design patterns: elements of reusable object-oriented software. Addison-Wesley, Boston
Hohpe G, Woolf B (2004) Enterprise integration patterns: designing, building, and deploying messaging solutions. Addison-Wesley, Boston
Iba T, Miyake T (2010) Learning patterns: a pattern language for creative learners II. In: Proceedings of the 1\({{\rm st}}\) Asian conference on pattern languages of programs, ACM, pp I-41–I-58
Meszaros G, Doble J (1997) Pattern languages of program design 3. In: Chap A pattern language for pattern writing, Addison-Wesley, Boston, pp 529–574
Mikkonen T (1998) Formalizing design patterns. In: International conference on software engineering, pp 115–124
OASIS (2015) TOSCA Simple profile in YAML version 1.0. Organization for the Advancement of Structured Information Standards (OASIS)
Reinfurt L, Breitenbücher U, Falkenthal M, Leymann F, Riegg A (2016) Internet of things patterns. In: Proceedings of the 21\({{\rm st}}\) European conference on pattern languages of programs, ACM
Reinfurt L, Breitenbücher U, Falkenthal M, Leymann F, Riegg A (2017) Internet of things patterns for devices. In: Proceedings of the 9\({{\rm th}}\) international conferences on pervasive patterns and applications, XPS
Saatkamp K, Breitenbücher U, Képes K, Leymann F, Zimmermann M (2017) OpenTOSCA injector: vertical and horizontal topology model injection. In: Service-oriented computing-ICSOC 2017 workshops, Springer, Berlin
Schumm D, Barzen J, Leymann F, Ellrich L (2012) A pattern language for costumes in films. In: Proceedings of the 17\({{\rm th}}\) European conference on pattern languages of programs, ACM, pp C4-1–C4-30
Zdun U (2007) Systematic pattern selection using pattern language grammars and design space analysis. Softw: Pract Exp 37(9):983–1016
Zdun U, Avgeriou P (2005) Modeling architectural patterns using architectural primitives. In: Proceedings of the 20\({{\rm th}}\) annual ACM SIGPLAN conference on object-oriented programming, systems, languages, and applications, ACM, pp 133–146
Zdun U, Avgeriou P, Hentrich C, Dustdar S (2008) Architecting as decision making with patterns and primitives. In: Proceedings of the 3\({{\rm rd}}\) international workshop on sharing and reusing architectural knowledge, ACM, pp 11–18
Zhu H, Bayley I (2010) Laws of pattern composition. In: Formal methods and software engineering. ICFEM 2010. Lecture notes in computer science, vol 6447. Springer, Berlin, pp 630–645
Zhu H, Bayley I (2013) An algebra of design patterns. Trans Softw Eng Methodol 22(3):23
Acknowledgements
This work was partially funded by the Project SePiA.Pro (01MD16013F) supported by the German Federal Ministry for Economic Affairs and Energy.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Falkenthal, M., Breitenbücher, U., Barzen, J. et al. On the algebraic properties of concrete solution aggregation. SICS Softw.-Inensiv. Cyber-Phys. Syst. 34, 117–128 (2019). https://doi.org/10.1007/s00450-019-00400-1
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00450-019-00400-1