Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/646151.679366guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Design Patterns: Abstraction and Reuse of Object-Oriented Design

Published: 26 July 1993 Publication History

Abstract

We propose design patterns as a new mechanism for expressing object-oriented design experience. Design patterns identify, name, and abstract common themes in object-oriented design. They capture the intent behind a design by identifying objects, their collaborations, and the distribution of responsibilities. Design patterns play many roles in the object-oriented development process: they provide a common vocabulary for design, they reduce system complexity by naming and defining abstractions, they constitute a base of experience for building reusable software, and they act as building blocks from which more complex designs can be built. Design patterns can be considered reusable micro-architectures that contribute to an overall system architecture. We describe how to express and organize design patterns and introduce a catalog of design patterns. We also describe our experience in applying design patterns to the design of object-oriented systems.

References

[1]
B. Adelson and Soloway E. The role of domain experience in software design. IEEE Transactions on Software Engineering , 11(11):1351-1360, 1985.
[2]
Christopher Alexander. The Timeless Way of Building . Oxford University Press, New York, 1979.
[3]
Association for Computing Machinery. Addendum to the Proceedings, Object-Oriented Programming Systems, Languages, and Applications Conference , Phoenix, AZ, October 1991.
[4]
Association for Computing Machinery. Addendum to the Proceedings, Object-Oriented Programming Systems, Languages, and Applications Conference , Vancouver, British Columbia, October 1992.
[5]
Kent Beck and Ward Cunningham. A laboratory for teaching object-oriented thinking. In Object-Oriented Programming Systems, Languages, and Applications Conference Proceedings , pages 1-6, New Orleans, LA, October 1989.
[6]
Peter Coad. Object-oriented patterns. Communications of the ACM , 35(9):152- 159, September 1992.
[7]
James O. Coplien. Advanced C++ Programming Styles and Idioms . Addison-Wesley, Reading, Massechusetts, 1992.
[8]
Ward Cunningham and Kent Beck. Constructing abstractions for object-oriented applications. Technical Report CR-87-25, Computer Research Laboratory, Tektronix, Inc., 1987.
[9]
Bill Curtis. Cognitive issues in reusing software artifacts. In Ted J. Biggerstaff and Alan J. Perlis, editors, Software Reusability, Volume II , pages 269-287. Addison-Wesley, 1989.
[10]
Thomas Eggenschwiler and Erich Gamma. The ET++SwapsManager: Using object technology in the financial engineering domain. In Object-Oriented Programming Systems, Languages, and Applications Conference Proceedings , pages 166- 178, Vancouver, British Columbia, October 1992.
[11]
Erich Gamma. Objektorientierte Software-Entwicklung am Beispiel von ET++: Design-Muster, Klassenbibliothek, Werkzeuge . Springer-Verlag, Berlin, 1992.
[12]
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. A catalog of object-oriented design patterns. Technical Report in preparation, IBM Research Division, 1992.
[13]
Mehdi T. Harandi and Frank H. Young. Software design using reusable algorithm abstraction. In In Proc. 2nd IEEE/BCS Conf. on Software Engineering , pages 94-97, 1985.
[14]
Richard Helm, Tien Huynh, Catherine Lassez, and Kim Marriott. A linear constraint technology for user interfaces. In Graphics Interface , pages 301-309, Vancouver, British Columbia, 1992.
[15]
Richard Helm, Tien Huynh, Kim Marriott, and John Vlissides. An object-oriented architecture for constraint-based graphical editing. In Proceedings of the Third Eurographics Workshop on Object-Oriented Graphics , pages 1-22, Champéry, Switzerland, October 1992. Also available as IBM Research Division Technical Report RC 18524 (79392).
[16]
Ralph Johnson. Documenting frameworks using patterns. In Object-Oriented Programming Systems, Languages, and Applications Conference Proceedings , pages 63-76, Vancouver, BC, October 1992.
[17]
Ralph E. Johnson, Carl McConnell, and J. Michael Lake. The RTL system: A framework for code optimization. In Robert Giegerich and Susan L. Graham, editors, Code Generation--Concepts, Tools, Techniques. Proceedings of the International Workshop on Code Generation , pages 255-274, Dagstuhl, Germany, 1992. Springer-Verlag.
[18]
S. Katz, C.A. Richter, and K.-S. The. Paris: A system for reusing partially interpreted schemas. In Proc. of the Ninth International Conference on Software Engineering , 1987.
[19]
Glenn E. Krasner and Stephen T. Pope. A cookbook for using the model-view controller user interface paradigm in Smalltalk-80. Journal of Object-Oriented Programming , 1(3):26-49, August/September 1988.
[20]
Charles W. Krueger. Software reuse. ACM Computing Surveys , 24(2), June 1992.
[21]
Mark A. Linton. Encapsulating a C++ library. In Proceedings of the 1992 USENIX C++ Conference , pages 57-66, Portland, OR, August 1992.
[22]
Mark A. Linton, John M. Vlissides, and Paul R. Calder. Composing user interfaces with Interviews. Computer , 22(2):8-22, February 1989.
[23]
William F. Opdyke and Ralph E. Johnson. Refactoring: An aid in designing application frameworks and evolving object-oriented systems. In SOOPPA Conference Proceedings , pages 145-161, Marist College, Poughkeepsie, NY, September 1990.
[24]
Charles Rich and Richard C. Waters. Formalizing reusable software components in the programmer's apprentice. In Ted J. Biggerstaff and Alan J. Perlis, editors, Software Reusability, Volume II , pages 313-343. Addison-Wesley, 1989.
[25]
James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, and William Lorenson. Object-Oriented Modeling and Design . Prentice Hall, Englewood Cliffs, New Jersey, 1991.
[26]
Elliot Soloway and Kate Ehrlich. Empirical studies of programming knowledge. IEEE Transactions on Software Engineering , 10(5), September 1984.
[27]
James C. Spohrer and Elliot Soloway. Novice mistakes: Are the folk wisdoms correct? Communications of the ACM , 29(7):624-632, July 1992.
[28]
ParcPlace Systems. ParcPlace Systems, Objectworks/Smalltalk Release 4 Users Guide . Mountain View, California, 1990.
[29]
David Ungar and Randall B. Smith. Self: The power of simplicity. In Object-Oriented Programming Systems, Languages, and Applications Conference Proceedings , pages 227-242, Orlando, Florida, October 1987.
[30]
John M. Vlissides and Mark A. Linton. Unidraw: A framework for building domain-specific graphical editors. ACM Transactions on Information Systems , 8(3):237-268, July 1990.
[31]
André Weinand, Erich Gamma, and Rudolf Marty. ET++--An object-oriented application framework in C++. In Object-Oriented Programming Systems, Languages, and Applications Conference Proceedings , pages 46-57, San Diego, CA, September 1988.
[32]
Rebecca Wirfs-Brock and Ralph E. Johnson. A survey of current research in object-oriented design. Communications of the ACM , 33(9):104-124, 1990.

Cited By

View all
  • (2023)SLR: From Saltzer and Schroeder to 2021…47 Years of Research on the Development and Validation of Security API RecommendationsACM Transactions on Software Engineering and Methodology10.1145/356138332:3(1-31)Online publication date: 27-Apr-2023
  • (2022)Maintenance and evolutionProceedings of the 19th International Conference on Mining Software Repositories10.1145/3524842.3528521(732-734)Online publication date: 23-May-2022
  • (2021)Guided ExplorationProceedings of the ACM on Human-Computer Interaction10.1145/34617315:EICS(1-34)Online publication date: 29-May-2021
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide Proceedings
ECOOP '93: Proceedings of the 7th European Conference on Object-Oriented Programming
July 1993
530 pages
ISBN:3540571205

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 26 July 1993

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 04 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2023)SLR: From Saltzer and Schroeder to 2021…47 Years of Research on the Development and Validation of Security API RecommendationsACM Transactions on Software Engineering and Methodology10.1145/356138332:3(1-31)Online publication date: 27-Apr-2023
  • (2022)Maintenance and evolutionProceedings of the 19th International Conference on Mining Software Repositories10.1145/3524842.3528521(732-734)Online publication date: 23-May-2022
  • (2021)Guided ExplorationProceedings of the ACM on Human-Computer Interaction10.1145/34617315:EICS(1-34)Online publication date: 29-May-2021
  • (2021)Pattern Census: A Characterization of Pattern Usage in Early Programming CoursesProceedings of the 52nd ACM Technical Symposium on Computer Science Education10.1145/3408877.3432442(45-51)Online publication date: 3-Mar-2021
  • (2021)Composable Finite State Machine-based Modeling for Quality-of-Information-aware Cyber-physical SystemsACM Transactions on Cyber-Physical Systems10.1145/33862445:2(1-27)Online publication date: 20-Jan-2021
  • (2020)Just-In-Time Test Smell Detection and RefactoringProceedings of the 28th International Conference on Program Comprehension10.1145/3387904.3389296(441-445)Online publication date: 13-Jul-2020
  • (2020)Painting FlowersProceedings of the 17th International Conference on Mining Software Repositories10.1145/3379597.3387452(362-373)Online publication date: 29-Jun-2020
  • (2020)An interactive learning method to engage students in modelingProceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Software Engineering Education and Training10.1145/3377814.3381701(12-22)Online publication date: 27-Jun-2020
  • (2019)A pattern sequence for designing blockchain-based healthcare information technology systemsProceedings of the 26th Conference on Pattern Languages of Programs10.5555/3492252.3492269(1-22)Online publication date: 7-Oct-2019
  • (2019)Security patterns for automotive systemsProceedings of the 22nd International Conference on Model Driven Engineering Languages and Systems10.1109/MODELS-C.2019.00014(54-63)Online publication date: 15-Sep-2019
  • Show More Cited By

View Options

View options

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media