Engr 691-1: Special Topics in Engineering Science
Software Architecture
Spring Semester 2004
Lecture Notes


  1. Lecture Notes on Data Abstraction [slides]

    Supplementary notes: Queue ADT

  2. ADT Case Study: Ranked Sequence

  3. Code for Natural number type example.

  4. Understanding Inheritance (Budd's UOOPJ, Chapter 8)

  5. Solitaire Case Study (Budd's UOOPJ, Chapter 9)

  6. Mechanisms for Software Reuse (Budd's UOOPJ, Chapter 10)

  7. Replacement and Refinement

  8. Implications of Inheritance

  9. Multiple Inheritance

  10. Polymorphism

  11. Second Look at Classes

  12. Introduction to Patterns

  13. Mark Grand. "Factory Method," "Strategy" ,and "Template Method" patterns sections in Patterns in Java, Volume 1, Wiley, 1998.

  14. Pipes and Filters Architectural Pattern

  15. Student presentations of patterns.

  16. John Vlissides. "Designing with Patterns", In Pattern Hatching: Design Patterns Applied, Addison-Wesley, 1998.

    Planned but not covered Spring 2003

  17. Mary Shaw. "Some Patterns for Software Architecture," In John M Vlissides, James O. Coplien, and Norman L. Kerth, editors, Pattern Languages of Program Design 2, Addison Wesley, 1996, pages 255-270. (Used Spring 2002.)

    Mary Shaw and David Garlan. "Process Control," Section 2.8 in Software Architecture: Perspectives on an Emerging Discipline, Prentice Hall, 1996. (Used Spring 2002.)

    Documents from Previous Semesters

  18. Introduction to Software Architecture (HTML)

  19. Introduction to Object Orientation Used material on Requirements Analysis and Object-Oriented Design.

  20. Architectural Mismatch (HTML) (Used in Fall 2002 ENGR 662 Software Engineering II class.)

  21. Sudharshan Vazhkudai and H. Conrad Cunningham. "A Reusable Software Framework for Distributed Decision-Making Protocols".

  22. H. C. Cunningham and J. Wang. Building a Layered Framework for the Table Abstraction , In Proceedings of the ACM Symposium on Applied Computing, March 2001. [Presentation] (Used Fall 2003 in ENGR 660 Software Engineering II--Software Product LInes.)

    Variant paper: H. C. Cunningham and J. Wang. Applying Software Patterns in the Design of a Table Framework, In Proceedings of the Conference on Applied Research in Data Engineering, Acxiom Data Engineering Laboratory, University of Arkansas at Little Rock, November 2001. ADEL-WP-01-01.

  23. Reto Kramer, Examples of Design by Contract: Using iContract, the Design-by-Contract Tool for Java , Object World, Berlin, 1999.

    Supplemental materials: Reto Kramer, iContract: The Java Design by Contract Tool, TOOLS USA, 1998.

  24. Mary Shaw and David Garlan. "Case Studies: Keyword in Context," Section 3.1 in cite>Software Architecture: Perspectives on an Emerging Discipline, Prentice Hall, 1996. (Used Spring 2002.)

    Mary Shaw and David Garlan. "Linguistic Issues: Adding Implicit Invocation to Traditional Programming Languages," Section 7.3 in Software Architecture: Perspectives on an Emerging Discipline, Prentice Hall, 1996.

  25. Hans Albrecht Schmid. "Creating Applications From Components: A Manufacturing Framework Design," IEEE Software, Vol. 13, No. 6, November 1997.
    Note: Used the introductory sections on frameworks. (Used Spring 2002.)

  26. Hans Albrecht Schmid. "Framework Design by Systematic Generalization", In Mohamed E. Fayad and Ralph E. Johnson, Editors, Domain-Specific Application Frameworks, Wiley, 2000. (Also used in Fall 2002 ENGR 662 Software Engineering II class.)

  27. Hans Albrecht Schmid. "OSEFA: Framework for Manufacturing", n Mohamed E. Fayad, Douglas C. Schmidt, and Ralph E. Johnson, Editors, Building Application Frameworks: Object-Oriented Foundations of Framework Design, Wiley, 1999.


UP to ENGR 691 root document?


Copyright © 2004, H. Conrad Cunningham
Last modified: Sun 8 August 2004