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.) .