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:
[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:
[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.
[Hoare69] C. A. R. Hoare. An Axiomatic Basis for Computer Programming. Communications of the ACM, Volume 12, Number 10, October 1969 (PDF)
The layout of this website and the some contents on this website is inspired from Com S 342 webpage as taught by Gary T. Leavens in Fall 2006. Other contents are copyright © 2007, Hridesh Rajan. All rights reserved.