Abstract
The solution to recurring problems in software has been solved with design patterns, which are considered modular units that are feasible to be encapsulated and reused both in code and in implementation. In the context of reuse and considering the intention of the pattern, the replacement of design patterns is feasible, although the modular properties behind the design pattern depend on the designer's experience. To facilitate the replacement of software patterns systematically, the authors propose a framework based on Function-Oriented Search (FOS). FOS is a TRIZ-based tool that facilitates the transfer of knowledge between areas. The framework uses a simplification of the FOS algorithm for its use in the context of software and for supporting expert designers in solving recurring problems with other patterns as alternatives. The goal of this work is to demonstrate the feasibility of replacement between patterns using functions identified from the Gamma templates (Gamma et al. 1995) and the classification proposed by Metsker (2002). To complement this new design perspective and to specify the basis of replacement, this work considers the structural similarities of the patterns. Based on the common functions between patterns, it is possible to obtain the versatility and adaptability of each design pattern to determine the replacement potential.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Arnout K (2004) From patterns to components. Zurich, Swiss
Bača P, Vranić V (2011) Replacing object-oriented design patterns with intrinsic aspect-oriented design patterns. In: Proceedings—2011 2nd Eastern European regional conference on the engineering of computer based systems, ECBS-EERC 2011, pp 19–26
Bachmann F, Bass L, Klein M (2003) Deriving architectural tactics: a step toward methodical architectural design, vol 66
Beltrán E, Juárez U, Cortés G (2011) TRIZ en el desarrollo de arquitecturas de software. In: 6° Congreso Iberoamericano de Innovación Tecnológica. Querétaro, Querétaro
Beltrán E, Juarez U, Cortes G (2012) Design patterns with inventive principles. In: 7th Iberoamerican congress of technological innovation
Bouhours C, Leblanc H, Percebois C (2009) Bad smells in design and design patterns. J Object Technol 8(3):43. https://doi.org/10.5381/jot.2009.8.3.c5
Brad S (2021) Domain analysis with TRIZ to define an effective “Design for Excellence” framework. In: Borgianni Y, Brad S, Cavallucci D, Livotov P (eds) Creative solutions for a sustainable development. TFC 2021. IFIP advances in information and communication technology, vol 635. Springer, Cham. https://doi.org/10.1007/978-3-030-86614-3_34
Buschmann F, Henney K, Schmidt D (2007) Pattern oriented software architecture: on patterns and pattern languages. Wiley, Chichester
Buschmann F, Henney K (2007) Pattern-oriented software architecture—A pattern language for distribuited computing. Wiley
Cho S (2020) A study on the effect of improved collective intelligence combined with TRIZ methodology for solving complex technology systems. In: Cavallucci D, Brad S, Livotov P (eds) Systematic complex problem solving in the age of digitalization and open innovation. TFC 2020. IFIP advances in information and communication technology, vol 597. Springer, Cham. https://doi.org/10.1007/978-3-030-61295-5_29
Choi S, Kang D, Lim J, Kim K (2012) A fact-oriented ontological approach to SAO-based function modeling of patents for implementing function-based technology database. Expert Syst Appl. Int J 39(10). https://doi.org/10.1016/j.eswa.2012.02.041
Fulbright R (2004) TRIZ and software Fini. TRIZ J
Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns: elements of reusable object-oriented software. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA
Govindarajan U, Sheu D, Mann D (2019) Review of systematic software innovation using TRIZ 5:72–90
Goyal S, Goyal A, Sharma P, Signhal N (2012) Analyzing object models with theory of innovative solution. In: Second international conference advanced computing & communication technologies, Rohtak, Haryana
Gräbe HG (2021) Technical systems and their purposes. In: Mayer O (ed) TRIZ-Anwendertag 2020. Springer Vieweg, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-63073-0_1
Houston D (2017) Using TRIZ to balance software process commonality and diversity. In: Proceedings of the 2017 international conference on software and system process. https://doi.org/10.1145/3084100.3084114
Jahnke J, Zündorf A (1997) Rewriting poor design patterns by good design patterns. In: ESEC/FSE’97 workshop on object-oriented reengineering
Jianhong M, Zhang Q, Wang Y, Wei Z (2009) Research and application of the TRIZ contradiction matrix in OOD. In: World congress on software engineering, pp 247–251
JUnit 5. Junit.org (2019). https://junit.org/junit5/
Kluender D (2022) TRIZ for software architecture. Procedia Eng 9:708–713
Kneer F, Kamsties E, Schmid K (2021) AdaptationExplore—A process for elicitation, negotiation, and documentation of adaptive requirements. In: Dalpiaz F, Spoletini P (eds) Requirements engineering: foundation for software quality. REFSQ 2021. Lecture notes in computer science, vol 12685. Springer, Cham. https://doi.org/10.1007/978-3-030-73128-1_6
Litvin S (2005) New TRIZ-based tool—function-oriented search (FOS). TRIZ J
Mann D (2004) TRIZ for software? TRIZ J
Mann D (2015). TRIZ and software innovation. http://www.aitriz.org/triz-articles/triz-features/533-triz-and-software-innovation
Mens T, Tourwe T (2004) A survey of software refactoring. IEEE Trans Softw Eng 30(2):126–139. https://doi.org/10.1109/tse.2004.1265817
Metsker M (2002) The design patterns java workbook. Addison-Wesley Longman Publishing Co.
Miller G (1995) WordNet: a lexical database for English. Commun ACM 38(11). https://doi.org/10.1145/219717.219748
Mirakhorli M, Mäder P, Cleland-Huang J (2012) Variability points and design pattern usage in architectural tactics. In: Foundations of software engineering. Cary, North Carolina, USA
Montecchi T, Russo D (2015) FBOS: function/behaviour-oriented search. Procedia Eng 131:140–149. https://doi.org/10.1016/j.proeng.2015.12.363
Pérez C, Torreblanca A, Gómez H, Robles G (2012) TRIZ en la solución de problemas de software. In: 7o Congreso Iberoamericano de Innovación Tecnológica. Orizaba, Veracruz, México
Ram D, Rajasree M (2003) Enabling design evolution in software through pattern oriented approach. Object-oriented information systems. Springer-Verlag, Berlin
Rea K (2001a) TRIZ and software—40 principle analogies, Part I. TRIZ J
Rea K. (2001b) TRIZ and software—40 principle analogies, Part II. TRIZ J
Rea K (2006) TRIZ for software—Using the inventive principles. TRIZ J
Simon Litvin O, Feygenson N (2010) Advanced function approach. In: Proceedings of the TRIZ future conference. Elsevier, Bergamo, Italy, pp 3–5
Stamey J, Domb E (2006) Workshop: communicating design patterns with TRIZ. In: 24th annual ACM international conference on design of communication. New York, NY, USA
Stanbrook T (2002) TRIZ for software process improvement. In: Computer software and applications conference
Szyperski C, Gruntz D, Murer S (2002) Component software: beyond object-oriented programming, 2nd edn. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA
Tokuda L (2001) Evolving object-oriented designs with refactorings, 8th edn., pp 89–120. Automated Software Engineering
Tsantalis N, Chatzigeorgiou A, Stephanides G, Halkidis S (2006) Design pattern detection using similarity scoring. IEEE Trans Softw Eng 32(11). https://doi.org/10.1109/tse.2006.112
Van Den Tillaart R (2006) TRIZ and software—40 principle analogies, a sequel
Wang S, Samadhiya D, Chen D (2001) Software development and quality problems and solutions by TRIZ. In: International symposium on frontiers in ambient and mobile systems
WordNet. Princeton University (2010). http://wordnet.princeton.edu
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this chapter
Cite this chapter
Juárez-Martínez, U., Beverido-Castellanos, JA., García-Cantú, EA., Cortés-Verdín, K. (2023). A FOS-Based Framework for Software Design Pattern Replacement. In: Cortes Robles, G. (eds) TRIZ in Latin America. Springer, Cham. https://doi.org/10.1007/978-3-031-20561-3_1
Download citation
DOI: https://doi.org/10.1007/978-3-031-20561-3_1
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-20560-6
Online ISBN: 978-3-031-20561-3
eBook Packages: EngineeringEngineering (R0)