The Role of Domain Expenence in Software Design
IEEE Transactions on Software Engineering - Special issue on artificial intelligence and software engineering
Novice mistakes: are the folk wisdoms correct?
Communications of the ACM
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
PARIS: a system for reusing partially interpreted schemas
ICSE '87 Proceedings of the 9th international conference on Software Engineering
A cookbook for using the model-view controller user interface paradigm in Smalltalk-80
Journal of Object-Oriented Programming
ET++—an object oriented application framework in C++
OOPSLA '88 Conference proceedings on Object-oriented programming systems, languages and applications
A laboratory for teaching object oriented thinking
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Cognitive issues in reusing software artifacts
Software reusability
Formalizing reusable software components in the programmer's apprentice
Software reusability
Surveying current research in object-oriented design
Communications of the ACM
Unidraw: a framework for building domain-specific graphical editors
ACM Transactions on Information Systems (TOIS)
Advanced C++ programming styles and idioms
Advanced C++ programming styles and idioms
Object-oriented modeling and design
Object-oriented modeling and design
ACM Computing Surveys (CSUR)
Communications of the ACM - Special issue on analysis and modeling in software development
Documenting frameworks using patterns
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
ET++SwapsManager: using object technology in the financial engineering domain
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
A linear constraint technology for interactive graphic systems
Proceedings of the conference on Graphics interface '92
Exploring game architecture best-practices with classic space invaders
Proceedings of the 1st International Workshop on Games and Software Engineering
Enterprise architecture patterns for business process support analysis
Journal of Systems and Software
Hi-index | 0.00 |
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.