CS 612
Software Architectures

Spring Semester, 1999
Location: OHE 136 (Studio A)
Time: TTh 9 - 10:15 am
Class number: 034-33591D (off-campus) and 048-33592D
Prerequisite: CS 577a

Instructor | Overview | Textbook and Readings | Assignments and Exams | Schedule | Current Grades | Additional Resources


Instructor

Associate Instructor

Overview

Software architecture has become an area of intense research in the software engineering community. A number of architecture modeling notations and support tools, as well as new architectural styles, have emerged. The focus of architecture-based software development is shifted from lines-of-code to coarser-grained building blocks and their overall interconnection structure. Explicit focus on architecture has shown tremendous potential to improve the current state-of-the-art in software development and alleviate many of its problems.

This course will expose you to the concepts, principles, and state-of- the-art methods in software architectures, including domain-specific software architectures (DSSA), architectural styles, architecture description languages (ADL), software connectors, dynamism in architectures, and architecture-based testing and analysis. In the process of studying these concepts, we will make explicit the boundaries of the field and discuss its relationship to other areas of software engineering, specifically requirements, design (including object-oriented design and related notations, such as UML), and implementation. The course will also examine the practical applicability of architecture research, specifically its relationship to the work in software reuse and component interoperability platforms (such as CORBA, JavaBeans, and COM/DCOM). Homework assignments and an exam will be given to assess your understanding of important concepts, methods, languages, and tools. A project will give you an opportunity to study an aspect of architectures in more depth and "push the envelope" of architecture research.


Textbook and Readings

Textbook:

Suplemental Readings:


Assignments and Examinations

Name Description  Weight 
Midterm examination  Assesses your understanding of fundamental software architecture themes and concepts.  25% 
Quiz  Tests your understanding of issues in transferring architectural decisions to designs and implementations. The focus is on research- and commercial-off-the-shelf tools, techniques, and interoperability platforms covered in the latter part of the course. 10% 
Class project In-depth treatment of a "hot" topic in software architectures. Depending on the scope, the project will be conducted by individual students or teams of two. Depending on the nature of the project, it may involve implementation. Possible project ideas will be discussed in class in Week 5.
  • Sign up information for project presentations and demonstrations
  • 30% 
    Homework 1: Definitions of basic concepts Gauges your perception of the basic software architecture terms and concepts before they are introduced in class.  2% 
    Homework 2: Case study system architecture Requires you to provide an architectural breakdown for the system described in the case study discussed in Week 3. 8% 
    Homework 3: Example system architecture and implementation Requires you to provide for a simple software system. 20% 
    Homework 4: Definitions of basic concepts revisited Tests (the change in) your understanding of the basic software architecture terms and concepts after you have been exposed to them.  5% 

    Schedule (Subject to Change)

    Week / Date
    Lecture Topic
    Readings
    Assignments and Exams
    W1 / Jan 14
    • Course introduction
    • Overview of software engineering principles

    • (gzipped ps or pdf
     
    W2 / Jan 19

    This reading set is available for purchase

    • F. DeRemer and H. H. Kron. Programming-in-the-Large versus Programming-in-the-Small. IEEE Transactions on Software Engineering, June 1976.
    • F. P. Brooks, Jr. No Silver Bullet: Essence and Accidents of Software Engineering. IEEE Computer, April 1987.
    • B. W. Boehm and W. L. Scherlis. Megaprogramming. Software Technology Conference 1992, Los Angeles, April 1992.
     
    W2 / Jan 21

    This reading set is available for purchase

    • Chapter 1
    • D. E. Perry and A. L. Wolf. Foundations for the Study of Software Architectures. ACM SIGSOFT Software Engineering Notes, October 1992.

    • (gzipped ps or pdf
    • Homework 1 due
    W3 / Jan 26 

    This reading set is available for purchase

    • Chapter 3
    • 2nd International Software Architecture Workshop (ISAW-2) Case Study

    • (gzipped ps or pdf
    W3 / Jan 28 
    • Arriving at an architecture

    • (gzipped ps or pdf)
    • Case study analysis

    This reading set is available for purchase

    • Chapter 5
    • T. Korson and J.D. McGregor. Understanding Object-Oriented: A Unifying Paradigm. Communications of the ACM, September 1990
    • P. Kruchten. Mommy, Where Do Software Architectures Come from? 1st International Workshop on Architectures for Software Systems, Seattle, WA, 1995.
     
    W4 / Feb 2 
    • Domain-specific software architectures (DSSA)

    • (gzipped ps or pdf)
    As decided in class, this reading set will not be available for purchase since you can access it on-line
    • R. Hayes-Roth and W. Tracz. DSSA Tool Requirements for Key Process Functions. ADAGE Technical Report, ADAGE-IBM-93-13B, October 1994.

    • (html
    • W. Tracz. DSSA (Domain-Specific Software Architecture) Pedagogical Example. ACM SIGSOFT Software Engineering Notes, July 1995.

    • (html
     
    W4 / Feb 4 

    This reading set is available for purchase

    • Chapter 2
    • Chapter 8: Section 8.2
    • M.Shaw. Comparing Architectural Design Styles. IEEE Software, November 1995.
     
    W5 / Feb 9 
    • Examples of domain- and style-specific architectures

    • (gzipped ps or pdf)

    This reading set is available for purchase

    • D. Batory and S. O'Malley. The Design and Implementation of Hierarchical Software Systems with Reusable Components. ACM Transactions on Software Engineering and Methodology, October 1992.
    • R. N. Taylor et al. A Component- and Message-Based Architectural Style for GUI Software. IEEE Transactions on Software Engineering, June 1996.

    • (gzipped ps or pdf)
    W5 / Feb 11 
     
     
    W6 / Feb 16 

    This reading set is available for purchase

    • Chapter 7: Section 7.2
    • M.Shaw. Procedure Calls are the Assembly Language of Software Interconnections: Connectors Deserve First-Class Status. Workshop on Studies of Software Design, 1993.

    • (gzipped ps or pdf
    • E. M. Dashofy et al. Using Off-the-Shelf Middleware to Implement Connectors in Distributed Software Architectures. 21st International Conference on Software Engineering, Los Angeles, CA, May 1999.

    • (gzipped ps or pdf
     
    W6 / Feb 18 
    • Project discussion

    This reading set is available for purchase

    • Addendum: Specification of the C2SADEL Architecture Description Language

    • (gzipped ps or pdf)
    • Homework 3 (i) due
    • Homework 3 Part (ii) handed out

    • (gzipped ps or pdf)
    W7 / Feb 23 

    This reading set is available for purchase

    • Chapter 6
    • Chapter 7: Section 7.1
    • N. Medvidovic and R. N. Taylor. A Framework for Classifying and Comparing Architecture Description Languages. 6th European Software Engineering Conference with the 5th ACM SIGSOFT Symposium on the Foundations of Software Engineering, Zurich, Switzerland, September 1997.

    • (gzipped ps or pdf
     
    W7 / Feb 25 

    This reading set is available for purchase

    • Chapter 8: Sections 8.1 and 8.3
    • D. C. Luckham and J. Vera. An Event-Based Architecture Definition Language. IEEE Transactions on Software Engineering, September 1995.

    • (gzipped ps or pdf
    • N. Medvidovic et al. A Language and Environment for Architecture-Based Software Development and Evolution. 21st International Conference on Software Engineering, Los Angeles, CA, May 1999.

    • (gzipped ps or pdf
    • Project proposals due
    W8 / Mar 2 

    This reading set is available for purchase

    • J. Magee and J. Kramer. Dynamic Structure in Software Architectures. 4th ACM SIGSOFT Symposium on the Foundations of Software Engineering, San Francisco, CA, October 1996. 
    • P. Oreizy et al. Architecture-Based Runtime Software Evolution. 20th International Conference on Software Engineering, Kyoto, Japan, April 1998.

    • (gzipped ps or pdf
     
    W8 / Mar 4 

    This reading set is available for purchase

    • M. Moriconi et al. Correct Architecture Refinement. IEEE Transactions on Software Engineering, April 1995.

    • (gzipped ps or pdf
    • C. Gacek and B. W. Boehm. Composing Components: How Does One Detect Potential Architectural Mismatches? Workshop on Compositional Software Architectures, Monterey, CA, January 1998. (html
     
    W9 / Mar 9 
    • Midterm Exam Review
     
    • Homework 3 (ii) due
    • Homework 3 Part (iii) handed out

    • (gzipped ps or pdf)
    W9 / Mar 11 
     
     
    • MIDTERM EXAM
    WEEK 10
    SPRING RECESS
    W11 / Mar 23 
    • Midterm Exam Discussion
    • From architecture to design: overview of UML

    • (gzipped ps or pdf)

    This reading set will not be available for purchase since you can access it on-line

    • UML  Documentation. (html)
     
    W11 / Mar 25 

    This reading set is available for purchase

    • J. E. Robbins et al. Integrating Architecture Description Languages with a Standard Design Method. 20th International Conference on Software Engineering, Kyoto, Japan, April 1998.

    • (gzipped ps or pdf
    • Rose/Architect: A Tool to Visualize Architecture. Hawaii Interntaional Conference on System Sciences, January 1999.

    • (gzipped ps or pdf
     
    W12 / Mar 30 

    This reading set is available for purchase

    • D. Krieger and R.M. Adler. The Emergence of Distributed Component Platforms. IEEE Computer, March 1998.
    • E. Di Nitto and D. S. Rosenblum. Exploiting ADLs to Specify Architectural Styles Induced by Middleware Infrastructures. 21st International Conference on Software Engineering, Los Angeles, CA, May 1999.

    • (pdf)
    • Homework 3 (iii) due
    W12 / Apr 1 
    • Project discussion
       
     
    W13 / Apr 6 

    This reading set is available for purchase

    • S. P. Reiss. Connecting Tools Using Message Passing in the Field Environment. IEEE Software, July 1990.
    • M. J. Maybee et al. Multilanguage Interoperability in Distributed Systems: Experience Report. 18th International Conference on Software Engineering, Berlin, Germany, March 1996.

    • (gzipped ps or pdf)
     
    W13 / Apr 8 

    This reading set is available for purchase

    • S. Vinoski. CORBA: Integrating Diverse Applications Within Distributed Heterogeneous Environments. IEEE Communications Magazine, February 1997.

    • (gzipped ps or pdf)
     
    W14 / Apr 13 

    This reading set will not be available for purchase since you can access it on-line

    • Microsoft Corporation.  The Component Object Model: Technical Overview.

    • (html)
    • Microsoft Corporation.  DCOM Technical Overview.

    • (MS Word or pdf)
     
    W14 / Apr 15 

    This reading set will not be available for purchase since you can access it on-line

    • R. Natarajan and D. S. Rosenblum. Merging Component Models and Architectural Styles. Third International Software Architecture Workshop, Nov. 1998.

    • (gzipped ps or pdf)
    • Sun Microsystems, Inc.  Java Beans 1.01 Specification.

    • (ps or pdf)
    W15 / Apr 20 
    • Project discussion
     
     
    W15 / Apr 22 

    This reading set is available for purchase

    • D. Garlan et al. ACME: An Architecture Description Interchange Language. CASCON'97, November 1997.

    • (gzipped ps or pdf
     
    W16 / Apr 27
    • No class (project time)
     
     
    W16 / Apr 29
    • Summary and review
    • Final project discussion and clarification

    This reading set will not be available for purchase since you can access it on-line

    • N. Medvidovic and D. S. Rosenblum. Domains of Concern in Software Architectures and Architecture Description Languages. USENIX Conference on Domain-Specific Languages, Santa Barbara, CA, October 1997.

    • (html or gzipped ps or pdf
    • QUIZ (30 min.)
    • Homework 4 due
    May 6-10 
     
     
    • Project writeups and presentations/ demonstrations due

    • (sign-up sheet)


    Current Grades

    The grades to date are listed by the last four digits of your student ID number (gzipped ps or pdf).


    Additional Resources

    This is a (growing) list of resources you may find useful for your projects.  New resources will be added as they come up in your proposed projects and/or become relevant.  If you have a resource you think may be of use to the class, send it to me and I will add it here.

    Last updated:  5/3/99