Resource materials
From CSSEMediaWiki
(Difference between revisions)
Line 66: | Line 66: | ||
| '''Paper''' || '''Title''' || '''Synopsis''' || '''Library''' | | '''Paper''' || '''Title''' || '''Synopsis''' || '''Library''' | ||
|- | |- | ||
− | | | + | | [[Johnson and Foote 1988]] || ''Designing reusable classes'', || Important early paper on OOD. || PSL |
|- | |- | ||
− | | | + | | [[Ken Auer 1995]] || ''Reusability through self-encapsulation'', || A pattern language for encapsulation. || PSL |
|- | |- | ||
− | | | + | | [[Robert Cecil Martin 1996a]] || ''The Open Closed Principle'' || Claims OCP is most important principle || || |
|- | |- | ||
− | | | + | | [[Robert Cecil Martin 1996b]] || ''Granularity'' || Defines several package principles || || |
|- | |- | ||
− | | | + | | [[Robert Cecil Martin 1996c]] || ''The Dependency Inversion Principle'' || Low level classes should depend on high level classes || || |
|- | |- | ||
− | | | + | | [[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 |
|} | |} | ||
== Web pages == | == Web pages == |
Revision as of 04:14, 17 July 2008
Contents |
Resource materials for 427
This is a list of some of the books relevant to this course. It may evolve as the course progresses.
Books
Unfortunately, not all of these are available in the physical sciences [[1]]. Wals library contains some of the missing ones.
Currently, few of these books are on reserve. If contention becomes a problem, we will change them to 3 day loan.
Book page | Title | Synopsis | Library |
Alan Davis 1995 | 201 principles of software development, | A long list of principles, more about software engineering than design, but overlapping Cosc427. | PSL |
Arthur Riel 1996 | Object-oriented design heuristics | A list of rules to guide OO design. | PSL, Wal |
Bruce Eckel 2002 | Thinking in Java, 3rd Ed | Excellent general Java book, with some idioms | on-line |
Gang Of Four 1995 | Design patterns : elements of reusable object-oriented software | The original design patterns book. | PSL, Wal |
Kent Beck 2003 | Test-driven Development: By Example | Guide how to use unit tests to elicit requirements and improve designs | PSL |
Martin Fowler 1997 | Analysis patterns : reusable object models | This book applies the patterns approach to analysis. | PSL, Wal |
Martin Fowler 1999 | Refactoring : improving the design of existing code | Guidance for improving the design of working systems. | PSL, Wal |
Martin Fowler 2003 | Patterns of enterprise application architecture | Architectural patterns emphasising relational DBs & web interfaces | PSL |
Party Of Five1996 | Pattern-oriented software architecture : a system of patterns, | This book broadens the scope of patterns to architectural patterns. | PSL, Wal |
William Brown 1998 | Antipatterns : refactoring software, architectures, and projects in crisis | Common pitfalls, and their solutions. | PSL |
Martin Fowler 2004 | UML distilled : a brief guide to the standard object modeling language, 3rd ed. | Easy to read intro to UML, if you're rusty. | PSL, Wal |
Peter Coad 1995 | Object models : strategies, patterns, and applications | Notable for the strategies that offer guidance on how to approach OO development. | PSL |
Rebecca Wirfs-Brock 1990 | Designing object-oriented software | Classic introductory OO text, if your OO background has holes in it. | PSL |
Cay Horstmann 2002 | Object-oriented design & patterns | Introductory OO and patterns book, with some insights on low-level design issues, such as the use of equals() in the presence of inheritance. | Wal |
PLOP One 1995 | Pattern languages of program design | First patterns conference | PSL |
Robert Cecil Martin 2003 | UML for Java programmers | Good, readable, opinionated introductory UML book. Notable for discussion of OOD principles. (See Bob Martin's web site too.) | PSL, Wal |
Mitchell and McKim 2002 | Design by contract, by example | This is a good intro to DBC, if you don't mind reading Eiffel code examples. | Wal |
Shalloway and Trott 2002 | Design patterns explained | A gentler variant of the GoF book. | Wal |
Richard Gabriel 1996 | Patterns of software | Deep thoughts about the patterns movement. | Wal |
Steve McConnell 2004 | Code complete, 2nd ed | Distilled wisdom about software engineering, with an OO programming emphasis. | Wal |
Christopher Alexander 2002 | The nature of order | A new religion. | Central |
James Copelien 2004 | Organizational patterns of agile software development | The organizational patterns book | On-line |
Robert Pirsig 1974 | Zen and the Art of Motorcycle Maintenance | Attain enlightenment | On-line |
Papers
Paper | Title | Synopsis | Library | |
Johnson and Foote 1988 | Designing reusable classes, | Important early paper on OOD. | PSL | |
Ken Auer 1995 | Reusability through self-encapsulation, | A pattern language for encapsulation. | PSL | |
Robert Cecil Martin 1996a | The Open Closed Principle | Claims OCP is most important principle | ||
Robert Cecil Martin 1996b | Granularity | Defines several package principles | ||
Robert Cecil Martin 1996c | The Dependency Inversion Principle | Low level classes should depend on high level classes | ||
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 |
Web pages
- [Ward Cunningham's wiki, a.k.a. The Portland Pattern Repository].
- [Bob Martin’s OO principles].
- [Martin Fowler’s blicki].
- [The Hillside Group].
- [James Coplien’s pattern overview].
- [Refactoring]
- [Antipatterns]
- [MIT software engineering course]
- [Steve McConnell's page]
Local