Resource materials
From CSSEMediaWiki
(Difference between revisions)
Line 86: | Line 86: | ||
== Web pages == | == Web pages == | ||
− | * [[http://c2.com/cgi/wiki?WelcomeVisitors | + | * [[http://c2.com/cgi/wiki?WelcomeVisitors Ward Cunningham's wiki, a.k.a. The Portland Pattern Repository]]. |
− | * [[http://www.objectmentor.com/courses/pood | + | * [[http://www.objectmentor.com/courses/pood Bob Martin’s OO principles]]. |
− | * [[http://www.martinfowler.com/bliki/ | + | * [[http://www.martinfowler.com/bliki/ Martin Fowler’s blicki]]. |
− | * [[http://hillside.net/ | + | * [[http://hillside.net/ The Hillside Group]]. |
− | * [[http://www.belllabs.com/user/cope/Patterns/WhitePaper/SoftwarePatterns.pdf | + | * [[http://www.belllabs.com/user/cope/Patterns/WhitePaper/SoftwarePatterns.pdf James Coplien’s pattern overview]]. |
− | * [[http://refactoring.com]] | + | * [[http://refactoring.com Refactoring]] |
− | * [[http://www.antipatterns.com]] | + | * [[http://www.antipatterns.com Antipatterns]] |
− | * [[http://web.mit.edu/6.170/www/ | + | * [[http://web.mit.edu/6.170/www/ MIT software engineering course]] |
− | * [[http://www.stevemcconnell.com/ | + | * [[http://www.stevemcconnell.com/ Steve McConnell's page]] |
Local | Local | ||
* [[Bruce Eckel 2002]] | * [[Bruce Eckel 2002]] | ||
* [[Bruce Eckel 2003]] | * [[Bruce Eckel 2003]] | ||
− | * [[http://www.cosc.canterbury.ac.nz/resources/software/java/junit/doc/ | + | * [[http://www.cosc.canterbury.ac.nz/resources/software/java/junit/doc/ JUnit doc]] |
− | * [[http://www.cosc.canterbury.ac.nz/resources/software/java/junit/javadoc/index.html | + | * [[http://www.cosc.canterbury.ac.nz/resources/software/java/junit/javadoc/index.html JUnit javadoc]] |
− | + | * [[http://www.cosc.canterbury.ac.nz/resources/software/java/j2se/version/docs/index.html Java API]] | |
− | * [[http://www.cosc.canterbury.ac.nz/resources/software/java/j2se/version/docs/index.html | + | |
== Lecture notes == | == Lecture notes == | ||
* [[attachment:314Lectures.pdf]] | * [[attachment:314Lectures.pdf]] |
Revision as of 04:12, 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 | |
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 | On-line | |
RobertCecilMartin1996e | The Liskov Substitution Principle | Better articulation of Liskov's law On-line | ||
RobertCecilMartin1997a | Stability | Dependencies should follow stability | On-line | |
RobertCecilMartin1997b | 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