CS 599
Current Issues in Software Architectures

Fall Semester, 1999
Location: KAP 147
Time: TTh 2 - 3:30 pm
Class number: 33632
Prerequisite: 
CS 612 or instructor's consent


InstructorOverviewReadingsAssignmentsSchedule | News and Announcements


 

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. Architectures shift the focus of software developers 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. 

However, this is still a young and relatively immature discipline that has failed to adequately address certain important issues. Architecture-based development approaches have often made simplifying assumptions in order to convey conceptual simplicity and flexibility; this has typically been done at the expense of realism and practicality. Examples of such assumptions are: 

Full realization of the potential of software architectures and their transition into the development mainstream will require a more realistic approach, in which systems are both modeled and implemented as members of an application family. This, in turn, requires a deeper understanding of the nature of software application families and the role architectures play in them. It also necessitates practical mechanisms for architecture-based development of application families, which leverage advances in areas like software reuse, software interoperability, or middleware, technologies (e.g., CORBA, COM/DCOM, Enterprise Java Beans), object oriented modeling and analysis (e.g., UML), extensible, portable representation (e.g., XML), and commercial software product families (e.g., Adobe Acrobat, Adobe Photoshop, Microsoft Office). 

This course will focus on the current state of software architecture research and its shortcomings, including its treatment of software connectors, application families, analysis, consistent refinement into implementation, and evolution (both at system specification-time and at run-time). Existing mechanisms and technologies, such as the ones identified above, will be discussed and their applicability to architecture-centric technologies assessed. Possible directions of future work will be identified. The course project will give each student an opportunity to pursue one such direction in more depth. 


 

Readings

 


 

Assignments

 

Name

Description 

Weight 

Presentations

Presentation of read research papers. Each student will be required to present multiple short and long papers during the course of the semester. Presentations of short papers should be 15 minutes long; presentations of long papers should be 30 minutes long. Each presentation should try to answer the following questions about the paper:

  • What problem is the paper trying to solve?
  • What open issue(s) identified in the September 7 lecture does the paper address?
  • What approach are the authors taking?
  • What are the results of the described approach?
  • What are the strengths of this paper?
  • How can the paper and the underlying work be improved?

30%

Class Participation 

Paper presentations are intended to generate discussion during the class. This will require students to attend the class and keep up on the readings.

20%

Class project

In-depth treatment (possibly including implementation) of a topic highlighted in class. The project will be conducted by individual students or teams of two.

50%


 

Schedule (to be updated incrementally)

 

NOTE: The first paper listed in each reading-and-presentation set (starting on September 9) is a short paper and the second a full-length paper.

 

Week
Date

Lecture/Reading Topic

Reading

Presenter

Assignment

1

Aug
31

Course introduction

 

Overview of software architectures (PDF)

N. Medvidovic and R. N. Taylor. A Classification and Comparison Framework for Software Architecture Description Languages. IEEE Transactions on Software Engineering, 1999. (to appear) (PDF)

Medvidovic

 

 

Sep
2

Overview of software architectures cont. (PDF)

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

Medvidovic

 

2

Sep
7

Open issues in software architectures (PDF)

 

Initial reading and presentation assignments

N. Medvidovic and R. N. Taylor. Separating Fact from Fiction in Software Architecture. 3rd International Software Architecture Workshop (ISAW3), Orlando, FL, November 1998. (PDF)

Medvidovic

 

Sep
9

Reengineering

View integration

·        Slides unavailable

W. Eixelsberger et al. Software Architecture Recovery of a Program Family. 20th International Conference on Software Engineering (ICSE98), Kyoto, Japan, April 1998.

McCraley

 

Reengineering

Representation

Refinement

View Integration

·        Slides (PDF)

I. T. Bowman et al. Linux as a Case Study: Its Extracted Software Architecture. 21st International Conference on Software Engineering (ICSE99), Los Angeles, CA, May 1999.

Fisher

3

Sep
14

Connectors

Reuse

Representation

·        Slides (PDF)

G. T. Heineman. Adaptation and Software Architecture. 3rd International Software Architecture Workshop (ISAW3), Orlando, FL, November 1998.

Mehta

 

Analysis

Middleware

Representation

·        Slides (PDF)

A. Borgida and P. Devanbu. Adding More "DL" to "IDL": Toward More Knowledgeable Component Inter-Operability. 21st International Conference on Software Engineering (ICSE99), Los Angeles, CA, May 1999.

Phadke

Sep
16

Middleware

Reuse

View Integration

·        Slides (PDF)

R. Natarajan and D. S. Rosenblum. Merging Component Models and Architectural Styles. 3rd International Software Architecture Workshop (ISAW3), Orlando, FL, November 1998.

McCraley

 

Configuration Management

Evolution

Analysis and Testing

Connectors

·        Slides (PDF)

J. E. Cook and J. A. Dage. Highly Reliable Upgrading of Components. 21st International Conference on Software Engineering (ICSE99), Los Angeles, CA, May 1999.

Rakic

4

Sep
21

Application Families

Representation

Refinement

·        Slides (PDF)

D. E. Perry. Generic Architecture Descriptions for Product Lines. 2ndInternational Workshop on Development and Evolution of Software Architectures for Product Families (ARES II), Las Palmas de Gran Canaria, Spain, February 1998.

Mehta

 

 

 

 

 

 

Application Families

Interoperability

Reengineering

Configuration Management

·        Slides (PDF)

D. J. Kasik et al. A Flexible Approach to Alliances of Complex Applications. 21st International Conference on Software Engineering (ICSE99), Los Angeles, CA, May 1999.

McCraley

Sep
23

Refinement

Representation

Analysis

·        Slides (PDF)

V. Stavridou and R. A. Riemenschneider. Provably Dependable Software Architectures. 3rd International Software Architecture Workshop (ISAW3), Orlando, FL, November 1998.

Hsiao

 

Representation

Analysis

Styles

·        Slides (PDF)

M. H. Klein et al. Attribute-Based Architecture Styles. 1st Working International Conference on Software Architectures (WICSA1), San Antonio, TX, February 1999.

Mehta

5

Sep
28

Project Proposal Preparation - no class

Sep
30

Project proposal draft presentation and discussion

 

 

5-7 minute presentation of a draft of your proposed project

6

Oct
5

Representation

View Integration

·        Slides (PDF)

R. Hilliard and T. Rice. Expressiveness in Architecture Description Languages. 3rd International Software Architecture Workshop (ISAW3), Orlando, FL, November 1998.

Jeoung

Project Proposals Due (2 pages)

  • What problem will you try to solve?
  • What is the current state-of-the-art in your problem area?
  • What approach will you take?
  • What is your schedule?
  • How will you know when you are done?

Connectors

Interoperability

·        Slides (PDF)

R. DeLine. Avoiding Packaging Mismatch with Flexible Packaging. 21st International Conference on Software Engineering (ICSE99), Los Angeles, CA, May 1999.

Mehta

Oct
7

Configuration Management

·        Slides (PDF)

A. van der Hoek et al. Versioned Software Architecture. 3rd International Software Architecture Workshop (ISAW3), Orlando, FL, November 1998.

Jeoung

 

Representation

View Integration

Refinement

Analysis

·        Slides forthcoming

A. Egyed and C. Gacek.  Automatically Detecting Mismatches during Component-Based and Model-Based Development.  14th International Conference on Automated Software Engineering (ASE’99), Cocoa Beach, FL, October 1999.

Egyed

7

Oct
12

Representation

View Integration

·        Slides (PDF)

V. Issarny et al. Multi-View Description of Software Architectures. 3rd International Software Architecture Workshop (ISAW3), Orlando, FL, November 1998.

Yan

 

Psychology

Organizations

·        Slides (PDF)

P. Kruchten. The Software Architect – and the Software Architecture Team. 1st Working International Conference on Software Architectures (WICSA1), San Antonio, TX, February 1999.

McCraley

Oct
14

Extra-Functional Properties

Heterogeneity

Interoperability

·        Slides (PDF)

S. A. Butler. Security Issues with the Global Command and Control System (GCCS). 1st Working International Conference on Software Architectures (WICSA1), San Antonio, TX, February 1999.

Phadke

 

Project Discussion

 

 

8

Oct
19

Application Families

Process

·        Slides (PDF)

J. DeBaud et al. PuLSE-DSSA – A Method for the Development of Software Reference Architectures. 3rd International Software Architecture Workshop (ISAW3), Orlando, FL, November 1998.

Fisher

 

Representation

View Integration

Refinement

Analysis

·        Slides forthcoming

A. Egyed and N. Medvidovic. Extending Architectural Representation in UML with View Integration. Second International Conference on the Unified Modeling Language (UML'99), Fort Collins, CO, October 1999.

Egyed

Oct
21

Refinement

Traceability

Evolution

·        Slides (PDF)

Z. Wang. Architectures Abstraction Tower. 3rd International Software Architecture Workshop (ISAW3), Orlando, FL, November 1998.

Rakic

 

Middleware

Traceability

Heterogeneity

·        Slides (PDF)

S. Stuurman. Software Architecture and Java Beans. 1st Working International Conference on Software Architectures (WICSA1), San Antonio, TX, February 1999.

Jeoung

9

Oct
26

Middleware

Architectural Style

·        Slides (PDF)

A. Carzaniga et al. Issues in Supporting Event-Based Architectural Styles. 3rd International Software Architecture Workshop (ISAW3), Orlando, FL, November 1998.

Egyed

 

Representation

Architectural Style

Reengineering

·        Slides forthcoming

N. Roodyn and W. Emmerich. An Architectural Style for Multiple Real-Time Data Feeds. 21st International Conference on Software Engineering (ICSE99), Los Angeles, CA, May 1999.

Yan

Oct
28

UML'99 - no class

10

Nov
2

Representation

Application Family

·        Slides (PDF)

M. Tanuan. Software Architecture in the Business Software Domain: The Descartes Experience. 3rd International Software Architecture Workshop (ISAW3), Orlando, FL, November 1998.

Phadke

 

Refinement

Reuse

Evolution

Application Family

·        Slides (PDF)

L. F. Andrade et al. Architectural Concerns in Automating Code Generation. 1st Working International Conference on Software Architectures (WICSA1), San Antonio, TX, February 1999.

Egyed

Nov
4

Discussion and Review

 

Medvidovic

 

11

Nov
9

Process

Economics

·        Slides (PDF)

K. J. Sullivan.  Software Design: The Options Approach. 2nd International Software Architecture Workshop (ISAW2), San Francisco, CA, October 1996.

Hsiao

 

Analysis and Testing

Reuse

Heterogeneity

Evolution

·        Slides (PDF)

A. Michail and D. Notkin. Assessing Software Libraries by Browsing Similar Classes, Functions and Relationships. 21st International Conference on Software Engineering (ICSE99), Los Angeles, CA, May 1999.

Rakic

Nov
11

Application Family

Reuse

Heterogeneity

Organizations

·        Slides forthcoming

J. Bosch. Product-Line Architectures in Industry: A Case Study. 21st International Conference on Software Engineering (ICSE99), Los Angeles, CA, May 1999.

Hsiao

 

12

Nov
16

Application Family

Representation

Traceability

·        Slides (PDF)

J. DeBaud.  Viewing a DSSA in Context: Problems versus Solutions. 2nd International Software Architecture Workshop (ISAW2), San Francisco, CA, October 1996.

Yan

 

Representation

Analysis

·        Slides forthcoming

J. Vera et al. Event-Based Execution Architectures for Dynamic Software Systems. 1st Working International Conference on Software Architectures (WICSA1), San Antonio, TX, February 1999.

Phadke

Nov
18

·        Slides unavailable

H. Gomaa and G. A. Farrukh. Composition of Software Architectures from Reusable Patterns. 3rd International Software Architecture Workshop (ISAW3), Orlando, FL, November 1998.

Fisher

 

Reengineering

Traceability

·        Slides (PDF)

N. C. Mendoça and J. Kramer.  Requirements for an Effective Architecture Recovery Framework. 2nd International Software Architecture Workshop (ISAW2), San Francisco, CA, October 1996.

Rakic

13

Nov
23

Refinement

Analysis

Representation

·        Slides (PDF)

R. A. Riemenschneider. Checking the Correctness of Architectural Transformation Steps via Proof-Carrying Architectures. 1st Working International Conference on Software Architectures (WICSA1), San Antonio, TX, February 1999.

Egyed

 

Course Evaluations

 

Rakic

Nov
25

Thanksgiving - no class

14

Nov
30

Case Study: 2K System

·        presentation of features and issues (PDF)

F. Kon et al. 2K: A Reflective, Component-Based Operating System for Rapidly Changing Environments.

 

F. J. Ballesteros et al. Object-Orientation in Off++ - A Distributed Adaptable Microkernel.

 

M. Roman et al. Design and Implementation of Runtime Reflection in Communication Middleware: the dynamicTAO Case.

Phadke

 

Dec
2

Case Study: 2K System

·        elicitation of the architecture

 

Phadke

 

15

Dec
7

 

A. Ran.  Architectural Structures and Views.  3rd International Software Architecture Workshop (ISAW3), Orlando, FL, November 1998.

Yan

 

 

M. C. Paulk. The Rational Planning of (Software) Projects. First World Congress for Software Quality, San Francisco, CA, June 1995.

Jeoung

Dec
9

 

S. Butler et al. The Potential of Portfolio Analysis in  Guiding Software Decisions. 1st Workshop on Economics-Driven Software Engineering Research (ESER-1), Los Angeles, CA, May 1999.

Hsiao

 

 

D. Wile. AML: An Architecture Meta-Language. 14th International Conference on Automated Software Engineering (ASE’99), Cocoa Beach, FL, October 1999.

Fisher

Course review, summary, and conclusions

J. Gray. What Next? A Dozen Information Technology Research Goals.  Turing Award Acceptance Lecture. Technical Report MS-TR-99-50, June 1999.

Medvidovic

Finals

Dec
13,15

 

 

 

Project write-ups and presentations/demonstrations due


 

News and Announcements

 

NOTE: The announcements are listed from most to least recent.

 

Date

Announcement

11/16

10/14

  • The presentation of the Gomaa and Farrukh paper has been moved to November 16.

10/5

9/22

  • The second set of papers is available for pickup from my office (SAL 338).  I will also bring them to class tomorrow (9/23).

9/20

  • The second set of papers (October 12 through November 11) has been added to the page.  They will be available for pick up from Amy Yung’s office (SAL 300) by the end of the week.  Please check this page for an announcement before checking with Amy.

9/16

  • The order of two papers has flip-flopped: the Klein et al. paper will now be presented on September 23, while the Kasik et al. paper is moved up to September 21.

9/13

9/7

  • Please make sure to send me a postscript or PDF copy of your presentation by noon of the day you are presenting so that I can put it on this page and make it available to the rest of the class.
  • If you need help with making overhead transparencies from your charts, I can arrange to do that for you provided you make the charts available to me by 10 a.m. of the day of your presentation.

9/5

9/3

  • Similarly to my lectures, you should use slides printed on overhead transparencies for your presentations. If you wish to give an on-line presentation, let me know at least a week in advance so I can try to secure a projector.
  • A good rule of thumb is to plan on spending about three minutes per slide.  Thus, you should try to have no more than 5-6 slides for a 15-minute presentation and 10-12 slides for a 30-minute presentation.

9/1

  • Per our discussion in class, a class period has been set aside on September 30 for students to present and exchange ideas about projects.

8/31

  • Please email me your name, USC student ID number, and email address.
  • You can volunteer to present a paper either in class or by sending me email. If nobody volunteers to present a given paper, I will assign it to a student.
  • Remember to purchase course readings from Amy Yung in SAL 300.

 

Last updated:  12/2/99