Com S 362 - Object-Oriented Analysis and Design (Fall 2007 Edition)

Required Reading

This list is subject to modification. New articles will be added here as the semester progresses. No new books will be added. If an article is added to this page, the instructor will notify the students and either provide an electronic version or a print version of the added article.

Books:

[Arnold05] Ken Arnold and James Gosling and David Holmes. The Java Programming Language Fourth Edition. Addison-Wesley, Reading, Mass., 2005, ISBN 032134980.

[Gamma95] Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Boston, MA, 1995. ISBN 0201633612.

[Baldwin and Clark] Baldwin, C. Y. and Clark, K. B. 1999 Design Rules: the Power of Modularity Volume 1. MIT Press. We will only use chapters 2 and 3 from this book, which is available at the library as reserve in an electronic form. [CH2,CH3]

[Fowler99] Martin Fowler, Kent Beck, John Brant, William Opdyke and Don Roberts "Refactoring: Improving the Design of Existing Code", Addison Wesley Professional, 1999. We will only use chapter 1, which is available at the library as reserve in an electronic form. [link]

[Brown98] William J. Brown, Raphael C. Malveau, Thomas J. Mowbray. AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis, Wiley, First Edition 1998. We will only use chapter 5, which is available at the library as reserve in an electronic form. [link]

Articles:

[Beck-Gamma98] Kent Beck and Erich Gamma. Test Infected: Programmers Love Writing Tests. Java Report, 3(7):37-50, 1998. Online at: http://junit.sourceforge.net/doc/testinfected/testing.htm

[RZF 94] Sridhar Raghavan, Gregory Zelesnik, and Gary Ford, Introduction to Requirements Elicitation, Software Engineering Institute, CMU, 1994. (PDF)

[Dijkstra 82] Dijkstra, E. W. (1982), On the role of scientific thought, in `Selected Writings on Computing: A Personal Perspective', Springer-Verlag, pp. 60--66.(PDF)

[Parnas 72] Parnas, D. L. 1972. On the criteria to be used in decomposing systems into modules. Commun. ACM 15, 12 (Dec. 1972), 1053-1058. (PDF)

[Leavens-Cheon06] Gary T. Leavens, and Yoonsik Cheon Design by Contract with JML. (Draft), September 2006. (PDF)

[Liskov and Zilles] Liskov, B. and Zilles, S. 1974. Programming with abstract data types. In Proceedings of the ACM SIGPLAN Symposium on Very High Level Languages (Santa Monica, California, United States, March 28 - 29, 1974). ACM Press, New York, NY, 50-59. (PDF)

[Beck and Cunningham] Beck, K. and Cunningham, W. 1989. A laboratory for teaching object oriented thinking. In Conference Proceedings on Object-Oriented Programming Systems, Languages and Applications (New Orleans, Louisiana, United States, October 02 - 06, 1989). OOPSLA '89. ACM Press, New York, NY, 1-6.(PDF)

[Garlan and Shaw] Garlan, D. and Shaw, M. 1994 An Introduction to Software Architecture. Technical Report. UMI Order Number: CS-94-166., Carnegie Mellon University. (PDF)

[Meyer 92] Meyer, B. 1992. Applying "Design by Contract". Computer 25, 10 (Oct. 1992), 40-51. (PDF)

[Wirfs-Brock-Wilkerson89] Rebecca Wirfs-Brock and Brian Wilkerson. Object-Oriented Design: A Responsibility-Driven Approach. OOPSLA '89 Conference Proceedings, Norman Meyerowitz (editor), ACM SIGPLAN Notices, 24(10):71-75, Oct. 1989. (PDF)

Optional Reading

[UML 2.0] Unified Modeling Language (UML) specification, version 2.1.1, Object Management Group (OMG), July 2006. It is available for free from OMG's UML web pages.

[Gosling, Joy, Steele and Bracha] The Java Language Specification, Third Edition, May 2005. It is available for free from Sun's JLS page.

[Larman 05] Craig Larman. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process, Third Edition. Prentice Hall PTR, Upper Saddle River, NJ, 2005.

[Hoare69] C. A. R. Hoare. An Axiomatic Basis for Computer Programming. Communications of the ACM, Volume 12, Number 10, October 1969 (PDF)

Martin Fowler. UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition., Addison-Wesley, Boston, MA, 2003, ISBN 0321193687