Resources
From CSSEMediaWiki
Revision as of 11:14, 30 July 2009 by Matthew Harward (Talk | contribs)
This section contains a compiled list of object orientated design texts, papers and other resources. It also contains references to library pages, so students of COSC427 can access the texts with ease. All resources on this page should be listed in chronological order from oldest to newest in terms of their production/publication date.
Contents |
Texts
This sections contains a comprehensive list of books about OO, including a very brief description of each.
- Christopher Alexander 1977 - A Pattern Language: Towns, Buildings, Construction
- Christopher Alexander 1979 - The Timeless Way of Building
- Gang of Four 1995 - Design Patterns: Elements of Reusable Object-Oriented Software - This book forms the core work on design patterns.
- Alan Davis 1995 - 201 Principles of Software Development
- Arthur Riel 1996 - Object-Oriented Design Heuristics - In this text, Riel introduces a set of OO heuristics which are good starting place for developing an understanding of OO design patterns and maxims.
- Party of Five 1996 - Pattern-Oriented Software Architecture Volume 1: A System of Patterns
- Richard Gabriel 1996
- Martin Fowler 1997 - Analysis Patterns: Reusable Object Models
- Martin Fowler 1999 - Refactoring : improving the design of existing code
- Andrew Hunt 1999 - The Pragmatic Programmer: From Journeyman to Master
- Fowler and Scott 2000
- Kent Beck 2000
- Cay Horstmann 2002
- Robert Cecil Martin 2002: Agile Software Development: Principles, Patterns and Practices
- Mitchell and Kim 2002
- Shalloway and Trott 2002
- Martin Fowler 2003 - Patterns of Enterprise Application Architecture
- Martin Fowler 2003b - UML Distilled
- Robert Cecil Martin 2003 - UML for Java programmers
- Martin Fowler 2004
- Steve McConnell 2004
- Freeman and Freeman 2004
- Robert Cecil Martin 2008: Clean Code: A Handbook of Agile Software Craftsmanship
Papers
Important papers in OO design are collated below.
Paper | Title | Synopsis | Library |
Johnson and Foote 1988 | Designing reusable classes, | Important early paper on OOD. | CSSE |
Ken Auer 1995 | Reusability through self-encapsulation, | A pattern language for encapsulation. | CSSE |
Robert Cecil Martin 1996a | The Open Closed Principle | Claims OCP is most important principle | On-line |
Robert Cecil Martin 1996b | Granularity | Defines several package principles | On-line |
Robert Cecil Martin 1996c | The Dependency Inversion Principle | Low level classes should depend on high level classes | On-line |
Robert Cecil Martin 1996d | The Interface Segregation Principle | One perspective on cohesion | On-line |
Robert Cecil Martin 1996e | The Liskov Substitution Principle | Better articulation of Liskov's law | On-line |
Robert Cecil Martin 1997a | Stability | Dependencies should follow stability | On-line |
Robert Cecil Martin 1997b | Design Patterns for Dealing with Dual Inheritance Hierarchies in C++ | The parallel hierarchies problem | On-line |
Other Resources
Any further OO resources are listed in this section.
Websites
- Ward's wiki - The first wiki and an inspiration for this course.
- Martin Fowler's Website - Provides information on a variety of different types of patterns and other domain knowledge.
- Martin Fowler’s Bliki.
- Bob Martin’s OO principles. BROKEN LINK
- The Hillside Group.
- James Coplien’s pattern overview. BROKEN LINK
- Refactoring
- Antipatterns
- MIT software engineering course
- Steve McConnell's page
Local
Lecture Notes
Libraries
This section contains a list of people (or entities), and a reference to the texts they have accessible.
- Wals library - Wals library contains a substantive collection of texts and also lists who they are currently on loan to.
- PS Library - Texts available in the Physical Science Library at the University of Canterbury - library.
- AlexsLibrary - Alex has a growing collection of texts that you may obtain from him.