CS6310 SAD Text Resources
Text Resources (resources prepended with "[*]" are downloadable.)
Contents
- 1 Optional Textbooks
- 2 Required Readings
- 3 Additional Texts
- 3.1 Books
- 3.2 Papers
- 3.3 Web Resources
Optional Textbooks
There is no required text for this course. However, these three books cover much of the material.
-
Baldwin, Carliss Y. and Kim B. Clark. Design Rules, Vol. 1: The Power of Modularity. (Links to an external site.) The MIT Press, March 15, 2000.
-
Taylor, R. N., N. Medvidovic, and E. M. Dashofy. Software Architecture: Foundations, Theory, and Practice. (Links to an external site.) Wiley, January 9, 2009.
-
Qian, Kai, Ziang Fu, Lixin Tao, Chong-Wei Xu, and Jorge L. Di'az-Herrera. Software Architecture and Design Illuminated. (Links to an external site.) Jones and Bartlett, 2010.
-
Craig Larman. Applying UML and Patterns, An Introduction to OO Analysis and Design, 3d Edition (Links to an external site.). Prentice-Hall, 2004. Available electronically from the GT Library: Select ebooks, then Safari. Search for Larman.
-
Amy Brown and Greg Wilson (Eds.). The Architecture of Open Source Applications (Links to an external site.). Published under the Creative Commons Attribution 3.0 Unported license, 2012.
Also, if you don't already own one, access to a Software Engineering introductory text such as Pressman (Links to an external site.) or Sommerville (Links to an external site.) may be helpful.
Required Readings
-
Emmerich, Wolfgang. [*] "Software Engineering and Middleware: A Roadmap". International Conference on Software Engineering - Future of Software Engineering Track, 117-129, 2000.
-
Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. [*] Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, pp. 6-9, pp. 275-343, 1995.
-
Garlan, David, and Mary Shaw. [*] "An Introduction to Software Architecture." Carnegie Mellon University Technical Report, CMU-CS-94-166, January 1994.
-
Harel, David. [*] "On Visual Formalisms." Communications of the ACM, 32(5):514-530, May 1988.
-
Kruchten, Philippe. [*] "The 4+1 View Model of Architecture." IEEE Software, 12(6):42-50, November-December 1995.
-
Martin, Robert. [*] "Granularity." (Links to an external site.) Excerpt from The C++ Report, Vol. 8, No. 10, November 1996.
-
Martin, Robert. [*] "Heuristics and Coffee." Chapter 11 in UML for Java Programmers, Prentice Hall, 2003.
-
Medvidovic, N., and R. N. Taylor. [*] "A Classification and Comparison Framework for Software Architecture Description Languages." IEEE Transactions on Software Engineering, 26(1):70-93, January 2000.
-
Mehta, Nikunj R., Nenad Medvidovic, and Sandeep Phadke. [*] "Towards a Taxonomy of Software Connectors." Proceedings of the 22nd International Conference on Software Engineering, Limerick, Ireland, pp. 178-187, 2000.
-
Object Management Group. [**] OCL Specification V2.3.1.* January, 2012.
-
Object Management Group. [**] UML Superstructure Specification V2.4.1.* August, 2011.
Additional Texts
Books
-
Baldwin, Carliss Y. and Kim B. Clark. Design Rules, Vol. 1: The Power of Modularity Hardcover. (Links to an external site.) The MIT Press,March 15, 2000.
-
Booch, Grady, James Rumbaugh, and Ivar Jacobson. The Unified Modeling Language User Guide, 2nd Edition. (Links to an external site.) Addison-Wesley, 2005.
-
Jan Bosch. Design and Use of Software Architectures (Links to an external site.). Addison-Wesley, May 19, 2000.
-
Clements, Paul, Felix Bachmann, Len Bass, David Garlan, James Ivers, Reed Little, Robert Nord, and Judith Stafford. Documenting Software Architectures: Views and Beyond. (Links to an external site.) Addison-Wesley, 2003.
-
Czarnecki, Krzysztof, and Ulrich Eisenecker. Generative Programming: Methods, Tools, and Applications. (Links to an external site.) Addison-Wesley, 2000.
-
Fowler, Martin. Patterns of Enterprise Application Architecture. (Links to an external site.) Addison-Wesley, 2003.
-
Fowler, Martin. UML Distilled: Applying the Standard Object Modeling Language, 3rd Edition. (Links to an external site.) Addison-Wesley, 2003.
-
Fowler, Martin, Kent Beck, John Brant, William Opdyke, and Don Roberts. Refactoring: Improving the Design of Existing Code. (Links to an external site.) Addison-Wesley, 1999.
-
Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. (Links to an external site.) Addison-Wesley, 1995.
-
Martin, Robert. Clean Code / A Handbook of Agile Software Craftsmanship (Links to an external site.). Prentice Hall, 2008.
-
Norman, Don. The Design of Everyday Things, Revised and Extended Edition. (Links to an external site.) Newprint, 2013.
-
Petroski, Henry. The Evolution of Useful Things: How Everyday Artifacts-From Forks and Pins to Paper Clips and Zippers-Came to be as They are. (Links to an external site.) Vintage, February 1, 1994.
-
Prieto-Diaz, Ruben, and Guillermo Arango. Domain Analysis and Software Systems Modeling. (Links to an external site.) IEEE Computer Society Press, 1991.
-
Riel, Arthur. Object-Oriented Design Heuristics. (Links to an external site.) Addison-Wesley, 1996.
-
Rumbaugh, James, Ivar Jacobson, and Grady Booch. The Unified Modeling Language Reference Manual, 2nd Edition. (Links to an external site.) Addison-Wesley, 2004.
-
Shaw, Mary, and David Garlan. Software Architecture: Perspectives on an Emerging Discipline. (Links to an external site.) Prentice Hall, 1995.
-
Simon, Herbert. The Sciences of the Artificial, 3rd Edition. (Links to an external site.) MIT Press, 1996.
-
Szyperski, Clemens. Component Software, 2nd Edition. (Links to an external site.) Addison-Wesley, 2002.
-
Warmer, Jos, and Anneke Kleppe. The Object Constraint Language. (Links to an external site.) Addison-Wesley, 1999.
-
Woodcock, Jim, and Martin Loomes. Software Engineering Mathematics (Links to an external site.). Addison-Wesley, 1989.
Papers
-
Aksit, M., K. Wakita, J. Bosch, L. Bergmans, and A. Yonezawa. "Abstracting Object-Interactions using Composition-Filters." Object-based Distributed Processing, R. Guerraoui, O. Nierstrasz, and M. Riveill (eds.), Springer-Verlag, 1993.
-
Batory, Don. [*] "Feature-Oriented Programming and the AHEAD Tool Suite." (Links to an external site.) Proceedings of the 26th International Conference on on Software Engineering, ICSE 2004, pp. 702-703.
-
Batory, Don and Sean O'Malley. [*] "The Design and Implementation of Hierarchical Software Systems with Reusable Components." (Links to an external site.) ACM Transactions on Software Engineering and Methodology (TOSEM), 1(4):355-398, October, 1992.
-
Beugnard, Antoine, Jean-Marc Jezequel, Noel Plouzeau, and Damien Watkins. [*] "Making Components Contract Aware." (Links to an external site.) IEEE Computer, 32(7):38-45, July 1999.
-
DeLine, Robert. [*] "Avoiding Packaging Mismatch with Flexible Packaging." (Links to an external site.) International Conference on Software Engineering '99, Los Angeles, California, 1999, pp. 97-106.
-
Ehn, Pelle. [*] "Scandinavian Design: On Participation and Skill." (Links to an external site.) Chapter 4, Lawrence Erlbaum Associates, Hillsdale, New Jersey, 1993, pp. 41-77.
-
Eichberg, Michael, Sven Kloppenburg, Karl Klose, and Mira Mezini. [*] "Defining and Continuous Checking of Structural Program Dependencies." (Links to an external site.) ICSE '08: Proceedings of the 30th International Conference on Software Engineering, Leipzig, Germany, May 2008, pp. 391-400.
-
Fagan, M. E. "Design and Code Inspections to Reduce Errors in Program Development." (Links to an external site.) IBM Systems Journal, 15(3):182-211, 1976.
-
Fielding, Roy Thomas. "Architectural Styles and the Design of Network-based Software Architectures." (Links to an external site.) Department of Information and Computer Science, University of California, Irvine, 2000.
-
Lau, Kung-Kiu, and Zheng Wang. [*] "Software Component Models." (Links to an external site.) IEEE Transactions on Software Engineering, 33(10):709-724, October, 2007.
-
Medvidovic, N., D. S. Rosenblum, D. F. Redmiles, and J. E. Robbins. [*] "Modeling Software Architectures in the Unified Modeling Language." (Links to an external site.) ACM Transactions on Software Engineering and Methodology, 11(1):2-57, January, 2002.
-
Meyer, Bertrand. "On Formalism in Specifications." IEEE Software,, 2(1):6-26, January, 1985. Available [*] here (Links to an external site.), if you enter through the Georgia Tech Library.
-
Parnas, David L. [*] "On the Criteria to be Used in Decomposing Systems into Modules" (Links to an external site.) Communications of the ACM, 15(12):1053-1058, September, 1972.
-
Parnas, David L. [*] "Designing Software for Ease of Extension and Contraction." (Links to an external site.) IEEE Transactions on Software Engineering, SE-5(2):128-138, March, 1979.
-
Parnas, David L. [*] "On the Design and Development of Program Families." (Links to an external site.) IEEE Transactions on Software Engineering, SE-2(1):1-9, 1976.
-
Spitznagel, Bridget, and David Garlan. [*] "A Compositional Formalization of Connector Wrappers." (Links to an external site.) 25th International Conference on Software Engineering (ICSE'03), Portland, Oregon, May 3-10, 2003.
-
Smaragdakis, Yannis and Don Batory. [*] "Implementing Layered Designs with Mixin Layers." (Links to an external site.) ECOOP’98—Object-Oriented Programming, pp. 550-570.
-
Stirewalt, Kurt and Spencer Rugaber. “Automated Invariant Maintenance Via OCL Compilation.†(Links to an external site.) Proceedings of Model Driven Engineering Languages and Systems’05, October 2-7, 2005, Montego Bay, Jamaica, Lionel C. Briand and Clay Williams, editors, Springer-Verlag, Lecture Notes in Computer Science, volume 3713, pp. 616-632.
Web Resources
- Acme Website (Links to an external site.)
- Allen Holub, JavaWorld, "Why extends is evil", August 2003 (Links to an external site.)
- Cunningham & Cunningham OO Wiki (Links to an external site.)
- [*] Design Study Template (.doc) (Links to an external site.)
- [*] First Order Logic Paper (Links to an external site.)
- Fowler Enterprise Patterns Page (Links to an external site.)
- JUnit A Cook's Tour (Links to an external site.)
- MSDN Chapter on Architectural Patterns and Styles (Links to an external site.)
- [*] OO Design Review Guidelines (Links to an external site.)
- Patterns Home Page (Links to an external site.)
- [*] Sample Exam Questions (Links to an external site.)
- Wikipedia article on Software Architecture Styles and Patterns (Links to an external site.)
Student Recommendations
- Eric Freeman, Elisabeth Robson, Bert Bates and Kathy Sierra. Head First Design Patterns. O'Reilly Media, October 25, 2004, link (Links to an external site.).