Resource materials

From CSSEMediaWiki
(Difference between revisions)
Jump to: navigation, search
(New page: == 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 thes...)
 
(Redirecting to Resources)
 
(9 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
#REDIRECT [[Resources]]
 +
 +
'''''This page is @deprecated, please use [[Resources]] instead!'''''
 +
 
== Resource materials for 427 ==
 
== Resource materials for 427 ==
  
Line 39: Line 43:
 
| [[Rebecca Wirfs-Brock 1990]] || ''Designing object-oriented software'' || Classic introductory OO text, if your OO background has holes in it. || 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
 
|}
 
|}
 
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 ==
 
== 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 ||
+
| '''Paper''' || '''Title''' || '''Synopsis''' || '''Library'''
|| RobertCecilMartin1996a || ''The Open Closed Principle'' || Claims OCP is most important principle || ||
+
|-
|| RobertCecilMartin1996b || ''Granularity'' || Defines several package principles || ||
+
| [[Johnson and Foote 1988]] || ''Designing reusable classes'', || Important early paper on OOD. || PSL
|| RobertCecilMartin1996c || ''The Dependency Inversion Principle'' || Low level classes should depend on high level classes || ||
+
|-
|| RobertCecilMartin1996d || ''The Interface Segregation Principle'' || One perspective on cohesion || ||
+
| [[Ken Auer 1995]] || ''Reusability through self-encapsulation'', || A pattern language for encapsulation. || PSL
|| RobertCecilMartin1996e || ''The Liskov Substitution Principle'' || Better articulation of Liskov's law ||
+
|-
|| RobertCecilMartin1997a || ''Stability'' || Dependencies should follow stability || ||
+
| [[Robert Cecil Martin 1996a]] || ''The Open Closed Principle'' || Claims OCP is most important principle || ||
|| RobertCecilMartin1997b || ''Design Patterns for Dealing with Dual Inheritance Hierarchies in C++'' || || ||
+
|-
 +
| [[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 ==
  
* [[http://c2.com/cgi/wiki?WelcomeVisitors|Ward Cunningham's wiki, a.k.a. The Portland Pattern Repository]].
+
* [[http://c2.com/cgi/wiki?WelcomeVisitors Ward Cunningham's wiki, a.k.a. The Portland Pattern Repository]].
* [[http://www.objectmentor.com/courses/pood|Bob Martin’s OO principles]].
+
* [[http://www.objectmentor.com/courses/pood Bob Martin’s OO principles]]. '''BROKEN LINK'''
* [[http://www.martinfowler.com/bliki/|Martin Fowler’s blicki]].
+
* [[http://www.martinfowler.com/bliki/ Martin Fowler’s blicki]].
* [[http://hillside.net/|The Hillside Group]].
+
* [[http://hillside.net/ The Hillside Group]].
* [[http://www.belllabs.com/user/cope/Patterns/WhitePaper/SoftwarePatterns.pdf|James Coplien’s pattern overview]].
+
* [[http://www.belllabs.com/user/cope/Patterns/WhitePaper/SoftwarePatterns.pdf James Coplien’s pattern overview]]. '''BROKEN LINK'''
* [[http://refactoring.com]]
+
* [[http://refactoring.com Refactoring]]
* [[http://www.antipatterns.com]]
+
* [[http://www.antipatterns.com Antipatterns]]
* [[http://web.mit.edu/6.170/www/|MIT software engineering course]]
+
* [[http://web.mit.edu/6.170/www/ MIT software engineering course]]
* [[http://www.stevemcconnell.com/|Steve McConnell's page]]
+
* [[http://www.stevemcconnell.com/ Steve McConnell's page]]
  
 
Local
 
Local
* BruceEckel2002
+
* [[Bruce Eckel 2002]]
* BruceEckel2003
+
* [[Bruce Eckel 2003]]
* [[http://www.cosc.canterbury.ac.nz/resources/software/java/junit/doc/|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|JUnit javadoc]]
+
* [[http://www.cosc.canterbury.ac.nz/resources/software/java/junit/javadoc/index.html JUnit javadoc]]
* [[http://www.cosc.canterbury.ac.nz/resources/software/java/together/userGuide.pdf|Together 6.1 user guide]]
+
* [[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|Java API]]
+
  
 
== Lecture notes ==
 
== Lecture notes ==
  
* [[attachment:314Lectures.pdf]]
+
* [[media:324Lectures.pdf|This year's 324 lectures]]

Latest revision as of 23:52, 30 July 2009

  1. REDIRECT Resources

This page is @deprecated, please use Resources instead!

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

Local

Lecture notes

Personal tools