Resource materials
From CSSEMediaWiki
(Difference between revisions)
Line 105: | Line 105: | ||
== Lecture notes == | == Lecture notes == | ||
− | * [[ | + | * [[media:324Lectures.pdf|This year's 324 lectures]] |
Revision as of 23:33, 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