Information and Computer Science 223
Software Architecture
Winter 2006
André van der Hoek
http://www.ics.uci.edu/~andre
andre@ics.uci.edu
Office: ICS2 207
Phone: +1 949-824-6326
Location: CS 253
Day and time: Tuesday and Thursday, 12:30-13:50
223 Software Architecture (4). Study of the concepts, representation techniques,
development methods, and tools for architecture-centric software engineering.
Topics include domain-specific software architectures, architectural styles,
architecture description languages, software connectors, and dynamism in
architectures.
The class will be discussion oriented. Papers must have been read beforehand
and discussion will be seeded by critical opinions, questions, and challenges
that each student will write on the whiteboard each week at the beginning of
the discussion. These discussions will primarily take place on Tuesdays.
Each student will perform a practical research project. The research project
must result in a tangible technology, the form of which will be discussed in
class. Discussion regarding progress and issues that may arise will take
place on Thursdays.
All students enrolled in the course will earn a letter grade based upon:
(a) class attendance and participation, (b) the critical opinions, questions,
and challenges shared with the class to seed the discussions, and (c) the class
project.
To send mail: 36720-w06@classes.uci.edu
To view the archive: http://eee.uci.edu/toolbox/mla/message_list.php?ccode=36720&quarter=W06
Any student who feels he or she may need an accommodation based on the
impact of a disability should contact me privately to discuss his or her
specific needs. Also contact the Disability Services Center at
(949) 824-7494 as soon as possible to better ensure that such
accommodations are implemented in a timely fashion.
The documents below are included to ensure timely dissemination of scholarly
and technical work on a non-commercial basis and are for the sole use of
students enrolled in ICS 223. Copyright and all rights therein are
maintained by the authors or by other copyright holders, notwithstanding that
they have offered their works here electronically. It is understood that all
persons copying this information will adhere to the terms and constraints
invoked by each author's copyright. These works may not be resposted without
the explicit permission of the copyright holder.
Week
|
Date
|
Topic
|
Papers
|
1
|
January 10
|
Welcome
|
|
|
January 12
|
Introduction to Software Architecture
|
Perry & Wolf: Foundations for the Study
of Software Architecture
Kruchten: Mommy, Where Do Software
Architectures Come From?
Kruchten: Common Misconceptions about
Software Architecture
|
2
|
January 17
|
Architecture Description Languages
|
Kruchten: The 4+1 View
Model of Architecture
Medvidovic & Taylor: A
Classification and Comparison Framework for Software Architecture Description Languages
Dashofy, van der Hoek & Taylor: An Infrastructure for the Rapid Development of
XML-based Architecture Description Languages
|
|
January 19
|
A Historical Perspective
|
DeRemer & Kron: Programming-in-the-Large
versus Programming in-the-Small
Wiederhold, Wegner & Ceri: Toward Megaprogramming
Prieto-Diaz & Neighbors: Module Interconnection Languages
|
3
|
January 24
|
Requirements and Architecture
|
Nuseibeh: Weaving the Software
Development Process Between Requirements and Architecture
Chung, Nixon & Yu: Using
Non-Functional Requiremets to Systematically Select Among Alternatives in Architectural Design
Grünbacher, Medvidovic & Egyed: Reconciling Software Requirements and
Architectures with Intermediate Models
|
|
January 26
|
Introduction to Projects
|
|
4
|
January 31
|
Product Line Architectures
|
Tracz: DSSA (Domain-Specific Software
Architecture) Pedagogical Example
Garg, Critchlow, Chen, Van der Westhuizen & van der Hoek:
An Environment for Managing Evolving
Product Line Architectures
Sinnema, Deelstra, Nijhuis & Bosch: COVAMOF: A Framework for Modeling Variability
in Software Product Families
|
|
February 2
|
Project Discussion
|
|
5
|
February 7
|
Design Rationale
|
Asundi, Kazman & Klein: Using
Economic Considerations to Choose Among Architecture Design Alternatives
Tang, Ali Babar, Gorton & Han: A Survey of Architecture Design Rationale
Jansen & Bosch: Software Architecture
as a Set of Architectural Design Decisions
|
|
February 9
|
Project Proposal Due
|
|
6
|
February 14
|
Connectors and Implementation
|
Mehta, Medvidovic & Phadke: Towards a Texonomy of Software Connectors
Di Nitto & Rosenblum: Exploiting
ADLs to Specify Architectural Styles Induced by Middleware Infrastructures
Aldrich, Chambers & Notkin: ArchJava: Connecting Software Architecture to
Implementation
|
|
February 16
|
Project Discussion
|
|
7
|
February 21
|
Refinement
|
Moriconi, Qian & Riemenschneider: Correct Architecture Refinement
Garlan, Cheng & Kompanek: Reconciling the Needs of Architectural Description with Object-Modeling Notations
Batory, Sarvela & Rauschmayer: Scaling Step-Wise Refinement
|
|
February 23
|
Project Discussion
|
|
8
|
February 28
|
Mismatch and Analysis
|
Garlan, Allen & Ockerbloom: Architectural Mismatch: Why Reuse is So Hard
Magee, Kramer, Giannakopoulou: Behaviour Analysis of Software Architectures
Allen, Garlan & Ivers: Formal Modeling and Analysis of the HLA Component Integration Standard
|
|
March 2
|
Project Discussion
|
|
9
|
March 7
|
Dynamism
|
Magee & Kramer: Dynamic Structure
in Software Architectures
Oreizy, Medvidovic & Taylor: Architecture-Based Runtime Software Evolution
Georgas, van der Hoek & Taylor: Architectural Runtime Configuration Management
in Support of Dependable Self-Adaptive Software
|
|
March 9
|
Preliminary Project Demonstrations
|
|
10
|
March 14
|
Other Developments
|
Kazman & Carrière: Playing
Detective: Reconstructing Software Architecture from Available Evidence
Garlan, Cheng & Schmerl: Increasing System Dependability through Architecture-based Self-repair
Baniassad & Clarke: Theme:
An Approach for Aspect-Oriented Analysis and Design
|
|
March 16
|
Project Discussion
|
|
Finals week
|
March 24, 10:30 - 12:30
|
Final Project Demonstrations
|
|
|