Fall Semester, 1999
Location: KAP 147
Time: TTh 2 - 3:30 pm
Class number: 33632
Prerequisite: CS 612 or instructor's consent
Instructor | Overview | Readings | Assignments | Schedule | News and Announcements
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.
|
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:
|
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% |
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 |
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) |
|
|
|
Sep |
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) |
|
|
|
|
2 |
Sep |
|
N.
Medvidovic and R. N. Taylor. Separating Fact from Fiction in Software
Architecture. 3rd International Software Architecture
Workshop (ISAW3), Orlando, FL, November 1998. (PDF) |
|
|
|
Sep |
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. |
|
|
|
|
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 |
|
Connectors Reuse Representation ·
Slides (PDF) |
G. T.
Heineman. Adaptation and Software Architecture. 3rd
International Software Architecture Workshop (ISAW3), Orlando, FL,
November 1998. |
|
|
|
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 |
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. |
|
|
|
|
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 |
|
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. |
|
|
|
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 |
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. |
|
|
|
|
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 |
|||
|
Sep |
Project Proposal Preparation - no class |
||||
|
Sep |
|
|
|
5-7
minute presentation of a draft of your proposed project |
|
|
6 |
|
Representation View
Integration ·
Slides (PDF) |
|
Jeoung |
Project Proposals Due (2
pages)
|
|
Connectors Interoperability ·
Slides (PDF) |
|
Mehta |
|||
|
Oct |
·
Slides (PDF) |
|
|
|
|
|
Representation View
Integration Refinement Analysis ·
Slides forthcoming |
|
Egyed |
|||
|
7 |
|
View
Integration ·
Slides (PDF) |
|
|
|
|
Psychology Organizations ·
Slides (PDF) |
|
|
|||
|
Oct |
Extra-Functional
Properties Heterogeneity Interoperability ·
Slides (PDF) |
|
|
|
|
|
Project
Discussion |
|
|
|||
|
8 |
|
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 |
Traceability Evolution ·
Slides (PDF) |
|
|
|
|
|
Middleware Traceability Heterogeneity ·
Slides (PDF) |
|
|
|||
|
9 |
|
Architectural
Style ·
Slides (PDF) |
|
|
|
|
Representation Architectural
Style Reengineering ·
Slides forthcoming |
|
|
|||
|
Oct |
UML'99 - no class |
||||
|
10 |
|
Application
Family ·
Slides (PDF) |
|
|
|
|
Refinement Reuse Evolution Application
Family ·
Slides (PDF) |
|
|
|||
|
Nov |
|
|
|
|
|
|
11 |
|
Economics ·
Slides (PDF) |
|
|
|
|
Analysis
and Testing Reuse Heterogeneity Evolution ·
Slides (PDF) |
|
|
|||
|
Nov |
Reuse Heterogeneity Organizations ·
Slides forthcoming |
|
|
|
|
|
12 |
|
Application
Family Representation Traceability ·
Slides (PDF) |
|
|
|
|
Representation Analysis ·
Slides forthcoming |
|
|
|||
|
Nov |
|
|
|
|
|
|
Reengineering Traceability ·
Slides (PDF) |
|
|
|||
|
13 |
|
Analysis Representation ·
Slides (PDF) |
|
|
|
|
Course Evaluations |
|
|
|||
|
Nov |
Thanksgiving - no class |
||||
|
14 |
|
·
presentation of features
and issues (PDF) |
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. |
|
|
|
Dec |
·
elicitation of the
architecture |
|
|
|
|
|
15 |
|
|
|
|
|
|
|
|
|
|||
|
Dec |
|
|
|
|
|
|
|
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 |
|||||