Resource materials
From CSSEMediaWiki
(Difference between revisions)
(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...) |
|||
Line 39: | Line 39: | ||
| [[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 | ||
|} | |} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== 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 | |
− | + | |- | |
− | + | | 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 == | == Web pages == | ||
Line 80: | Line 97: | ||
Local | Local | ||
− | * | + | * [[Bruce Eckel 2002]] |
− | * | + | * [[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]] |
Revision as of 04:08, 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
* [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
* Bruce Eckel 2002 * Bruce Eckel 2003 * [doc] * [javadoc] * [6.1 user guide] * [API]
Lecture notes
* attachment:314Lectures.pdf