Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/2491845.2491857acmotherconferencesArticle/Chapter ViewAbstractPublication PagespciConference Proceedingsconference-collections
research-article

Design pattern alternatives: what to do when a GoF pattern fails

Published: 19 September 2013 Publication History

Abstract

Design patterns have been introduced in the field of software engineering in the middle of 90s as common solutions to common design problems. Until now, the effect of design patterns on software quality attributes has been studied by many researchers. However, the results are not the expected ones, in the sense that several studies suggest that there are cases when a design pattern is not the optimum way of designing a system. In this paper, we present the findings of a systematic literature review that aims at cataloging published design solutions, referenced as alternative design solutions, which are equivalent to design patterns and can be used when a design pattern instance is not the optimum design solution for a specific design problem.

References

[1]
Adamczyk, P. 2004. Selected Patterns for Implementing Finite State Machines, 11th Conference on Pattern Languages of Programs (PLOP '04), Monticello, Illinois, September 2004.
[2]
Adamczyk, P. 2003. The Anthology of the Finite State Machine Design Patterns, 10th Conference on Pattern Languages of Programs (PLOP '03), Monticello, Illinois, September 2003.
[3]
Ampatzoglou, A., and Chatzigeorgiou, A. 2007. Evaluation of object-oriented design patterns in game development, Information and Software Technology, Elsevier, 49 (5), 445--454.
[4]
Ampatzoglou, A., Frantzeskou, G., and Stamelos, I. 2012. A Methodology to Assess the Impact of Design Patterns on Software Quality, Information and Software Technology, Elsevier, 54 (4), 331--346.
[5]
Ampatzoglou, A., Charalampidou, S., and Stamelos, I. 2013. Research State of the Art on GoF Design Patterns: A Mapping Study, Journal of Systems and Software, Elsevier, 86 (7), 1945--1964.
[6]
Baudry, B., Le Sunye, Y., and Jezequel, J. M. 2001. Towards a Safe Use of Design Patterns to Improve OO Software Testability, Proceedings of the 12th International Symposium on Software Reliability Engineering, IEEE, 324, Hong Kong, China, November 2001, 27--30.
[7]
Cai, K. Y., and Card, D. 2008. An analysis of topics in software engineering - 2006, Journal of Systems and Software, Elsevier, 81 (6), 1051--1058.
[8]
Dupire, B., and Fernandez, E. B. 2001. The Command Dispatcher Pattern, 8th Conference on Pattern Languages of Programs (PLOP '01), Monticello, Illinois, September 2001.
[9]
Ellis, B., Stylos, J., and Myers, B. 2007. The Factory Pattern in API Design: A Usability Evaluation, Proceedings of the 29th international conference on Software Engineering, IEEE, 302--312, Minneapolis, Minnesota, May 2007.
[10]
Ferreira, L. L., and Rubira, C. M. F. 1998. The Reflective State Pattern, 5th Conference on Pattern Languages of Programs (PLOP '98), Monticello, Illinois, August 1998.
[11]
Gamma, E., Helms, R., Johnson, R., and Vlissides, J. 1995. Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley Professional, Reading, MA.
[12]
Gamma E. 1996. The Extension Objects Pattern, 3rd Conference on Pattern Languages of Programs (PLOP '96), Monticello, Illinois, September 1996.
[13]
Hsueh, N. L., Chu, P. H., and Chu, W. 2008. A quantitative approach for evaluating the quality of design patterns, Journal of Systems and Software, Elsevier, 81 (8), 1430--1439.
[14]
Huston B. 2001. The effects of design pattern application on metric scores, Journal of Systems and Software, Elsevier, 58 (3), 261--269.
[15]
Iaría, P., and Chesini, U. 1998. Refining the Observer Pattern: The Middle Observer Pattern, 5th Conference on Pattern Languages of Programs (PLOP '98), Monticello, Illinois, August 1998.
[16]
Johnson, R., and Woolf, B. 1996. The Type Object Pattern, 3rd Conference on Pattern Languages of Programs (PLOP '96), Monticello, Illinois, September 1996.
[17]
Kitchenham, B., and Charters S. 2007. Guidelines for performing systematic literature reviews in software engineering, Technical Report EBSE-2007-001, Keele University & Durham University Joint Report, Staffordshire, UK.
[18]
Lyardet, F. D. 1997. The Dynamic Template Pattern, 4th Conference on Pattern Languages of Programs (PLOP '97), Monticello, Illinois, September 1997.
[19]
Nelson M. L. 1999. A Design Pattern for Autonomous Vehicle Software Control Architectures, 23rd International Computer Software and Applications Conference (COMPSAC'99), IEEE, 172, Phoenix, Arizona, October 1999.
[20]
Mai, Y., and De Champlain, M. 2001. Pattern Language To Visitors, 8th Conference on Pattern Languages of Programs (PLOP '01), Monticello, Illinois, September 2001.
[21]
McCarthy, B. 1998. The Cascading Bridge Design Pattern, 5th Conference on Pattern Languages of Programs (PLOP '98), Monticello, Illinois, August 1998.
[22]
Muraki, T., and Saeki, M. 2001. Metrics for applying GOF design patterns in refactoring processes, Proceedings of the 4th International Workshop on Principles of Software Evolution, IEEE, 27--36, Vienna, Austria, September 2001.
[23]
Nordberg III, M. E. 1996. Variations on the Visitor Pattern, 3rd Conference on Pattern Languages of Programs (PLOP '96), Monticello, Illinois, September 1996.
[24]
Odrowski, J., and Sogaard, P. 1996. Pattern Integration - Variations of State, 3rd Conference on Pattern Languages of Programs (PLOP '96), Monticello, Illinois, September 1996.
[25]
Prechelt, L., Unger-Lamprecht, B., Tichy, W. F., Brossler, P., and Votta, L. G. 2001. A controlled experiment in maintenance comparing design patterns to simpler solutions, IEEE Transactions on Software Engineering, IEEE, 27 (3), 1134--1144.
[26]
Raner, M. 2006. The Mutator Pattern, Proceedings of the 2006 conference on Pattern languages of programs (PLOP '06), ACM, Portland, Oregon, October 2006.
[27]
Saúde, A. V., Victório, R. A. S. S., and Coutinho, G. C. A. 2010. Persistent State Pattern, 17th Conference on Pattern Languages of Programs (PLOP '10), Reno/Tahoe, Nevada, October 2010.
[28]
Silva, R. 1997. Distributed Proxy: A Design Pattern for Distributed Object Communication, 4th Conference on Pattern Languages of Programs (PLOP '97), Monticello, Illinois, September 1997.
[29]
Sobajic, O., Moussavi, M., and Far, B. 2010. Extending the Strategy Pattern for parameterized Algorithms, 17th Conference on Pattern Languages of Programs (PLOP '10), Reno/Tahoe, Nevada, October 2010.
[30]
Switzer, R. 1998. Courier Patterns, 5th Conference on Pattern Languages of Programs (PLOP '98), Monticello, Illinois, August 1998.
[31]
Vokác, M., Tichy, W., Sjøberg, D. I. K., Arisholm, E., and Aldrin, M. 2004. A Controlled Experiment Comparing the Maintainability of Programs Designed with and without Design Patterns---A Replication in a Real Programming Environment, Empirical Software Engineering, Springer, 9(3), 149--195.
[32]
Weibel, P. L. 2008. The decoupled reference pattern, 2nd Conference on European Pattern Languages of Programs (EuroPLoP' 96), Kloster, Irsee, Germany, July 1996.
[33]
Welicki, L., Yoder, J. W., and Wirfs-Brock, R. The Dynamic Factory Pattern, 15th Conference on Pattern Languages of Programs (PLOP '08), Nashville, Tennessee, October 2008.
[34]
Wendorff, P. 2001. Assessment of Design Patterns during Software Reengineering: Lessons Learned from a Large Professional Project, Proceedings of the 5th European Conference on Software Maintenance and Reengineering (CSMR 2001), Lisbon, Portugal, March 2001, 77--84.

Cited By

View all
  • (2024)A survey of energy concerns for software engineeringJournal of Systems and Software10.1016/j.jss.2023.111944210(111944)Online publication date: Apr-2024
  • (2023)A mapping study of language features improving object-oriented design patternsInformation and Software Technology10.1016/j.infsof.2023.107222160:COnline publication date: 1-Aug-2023
  • (2023) SmartCLIDE design pattern assistant: A decision‐tree based approach Software: Practice and Experience10.1002/spe.318953:6(1304-1331)Online publication date: 11-Feb-2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
PCI '13: Proceedings of the 17th Panhellenic Conference on Informatics
September 2013
359 pages
ISBN:9781450319690
DOI:10.1145/2491845
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

  • University of Macedonia
  • Aristotle University of Thessaloniki
  • The University of Sheffield: The University of Sheffield
  • Alexander TEI of Thessaloniki

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 19 September 2013

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. design alternatives
  2. design patterns
  3. literature review

Qualifiers

  • Research-article

Conference

PCI 2013
Sponsor:
  • The University of Sheffield
PCI 2013: 17th Panhellenic Conference on Informatics
September 19 - 21, 2013
Thessaloniki, Greece

Acceptance Rates

Overall Acceptance Rate 190 of 390 submissions, 49%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)17
  • Downloads (Last 6 weeks)0
Reflects downloads up to 18 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)A survey of energy concerns for software engineeringJournal of Systems and Software10.1016/j.jss.2023.111944210(111944)Online publication date: Apr-2024
  • (2023)A mapping study of language features improving object-oriented design patternsInformation and Software Technology10.1016/j.infsof.2023.107222160:COnline publication date: 1-Aug-2023
  • (2023) SmartCLIDE design pattern assistant: A decision‐tree based approach Software: Practice and Experience10.1002/spe.318953:6(1304-1331)Online publication date: 11-Feb-2023
  • (2021)Patterns and Energy Consumption: Design, Implementation, Studies, and StoriesSoftware Sustainability10.1007/978-3-030-69970-3_5(89-121)Online publication date: 6-Oct-2021
  • (2017)A theoretical model for capturing the impact of design patterns on qualityProceedings of the Symposium on Applied Computing10.1145/3019612.3019781(1231-1238)Online publication date: 3-Apr-2017
  • (2017)Investigating the effect of design patterns on energy consumptionJournal of Software: Evolution and Process10.1002/smr.185129:2Online publication date: 31-Jan-2017
  • (2015)The Effect of GoF Design Patterns on Stability: A Case StudyIEEE Transactions on Software Engineering10.1109/TSE.2015.241491741:8(781-802)Online publication date: 1-Aug-2015

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media