Resource materials
From CSSEMediaWiki
Revision as of 00:00, 16 July 2008 by Warwick Irwin (Talk | contribs)
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 |
Work in progress...
|| CayHorstmann2002. || 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 || || PlopOne1995 || Pattern languages of program design || First patterns conference || PSL || || RobertCecilMartin2003 || 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 || || MitchellAndMcKim2002 || Design by contract, by example || This is a good intro to DBC, if you don't mind reading Eiffel code examples. || Wal || || ShallowayAndTrott2002 || Design patterns explained || A gentler variant of the GoF book. || Wal || || RichardGabriel1996 || Patterns of software || Deep thoughts about the patterns movement. || Wal || || SteveMcConnell2004 || Code complete, 2nd ed || Distilled wisdom about software engineering, with an OO programming emphasis. || Wal || || ChristopherAlexander2002 || The nature of order || A new religion. || Central || || JamesCopelien2004 || Organizational patterns of agile software development || The organizational patterns book || On-line || || RobertPirsig1974 || Zen and the Art of Motorcycle Maintenance || . || On-line ||
Papers
|| Paper || Title || Synopsis || Library || || JohnsonAndFoote1988 || Designing reusable classes, || Important early paper on OOD. || PSL || || KenAuer1995 || Reusability through self-encapsulation, || A pattern language for encapsulation. || PSL || || RobertCecilMartin1996a || The Open Closed Principle || Claims OCP is most important principle || || || RobertCecilMartin1996b || Granularity || Defines several package principles || || || RobertCecilMartin1996c || The Dependency Inversion Principle || Low level classes should depend on high level classes || || || RobertCecilMartin1996d || The Interface Segregation Principle || One perspective on cohesion || || || RobertCecilMartin1996e || The Liskov Substitution Principle || Better articulation of Liskov's law || || RobertCecilMartin1997a || Stability || Dependencies should follow stability || || || RobertCecilMartin1997b || Design Patterns for Dealing with Dual Inheritance Hierarchies in C++ || || ||
Web pages
* [Cunningham's wiki, a.k.a. The Portland Pattern Repository]. * [Martin’s OO principles]. * [Fowler’s blicki]. * [Hillside Group]. * [Coplien’s pattern overview]. * [[2]] * [[3]] * [software engineering course] * [McConnell's page]
Local
* BruceEckel2002 * BruceEckel2003 * [doc] * [javadoc] * [6.1 user guide] * [API]
Lecture notes
* attachment:314Lectures.pdf