|
Up CSE291 Spring 2005 CSE218 Winter 2005 CSE291 Spring 2004 CSE218 Winter 2004 CSE218 Winter 2003 CSE 290
| |
CSE 218: Advanced Topics in Software
Engineering
Software Architectures for Distributed and
Reactive Systems
Winter
2005
Overview
The selection of a robust, sustainable software-architecture is a key factor
for success in the development of large, long-lived, or safety-critical
software-systems. While this is generally acknowledged, there is much less
agreement in the literature on what the important quality attributes of
architectures are, how to represent them, and how to systematically construct
and modify architectures.
In this course we will take a closer look at description techniques, formal
foundations and methodologies for analyzing and constructing software
architectures. We will also consider current infrastructures and middleware
technologies for implementing software architectures, such as .NET, JINI, and
CORBA.
Student teams will turn theory into practice by actively creating software
architectures for exciting applications based on wireless, distributed, or
ad-hoc networking systems.
After taking this course, students will be able to specify, design, deploy,
and evaluate software architectures, and will thus be able to make informed
decisions in building complex distributed software systems in their future
careers.
General Information
| Section Id: |
518444 |
| Time: |
12:30pm - 1:50pm |
| Date: |
Tuesday and Thursday |
| Location: |
SEQUO 147 |
| Instructor: |
Ingolf Krueger |
| Office Hours: |
Tuesday 2pm-3pm (after class) in APM 5101 |
Tentative Schedule
of Topics
|
date |
item due
|
Topic |
Materials |
|
Readings |
| January |
4 |
|
Software Architecture, Design Patterns and Refactoring
– An Overview (Part I)
Project discussion. |
Handout #1,
Slide Set #1 |
|
|
| 6 |
|
Software Architecture, Design Patterns and Refactoring
– An Overview (Part II)
Project discussion (continued); Team formation. |
Slide
Set #2 |
|
B1: Ch. 1 |
| 11 |
|
Software Architecture, Design Patterns and Refactoring
– An Overview (Part III) |
HW #1,
Slide Set #3
|
|
B1: Ch. 2, Texts:
#1, #2,
#4 |
| 13 |
|
Distributed and Reactive Systems:
Challenges for Software Architecture Development Architectural Description Techniques: Formal and Semi-Formal Approaches
|
Slide Set #4
Slide Set #5 |
|
B1: Ch. 4, 5, 9,
Texts:
#6,
#8 |
| 18 |
|
| 20 |
HW #1 |
Specifying Objects
and Components using the Unified Modeling Language (UML) Domain Modeling
Components and Services |
Slide Set #6
Slide Set #7
Slide Set #8
HW #2
Slide Set #9
Slide Set
#10
HW #3 |
|
B1: Ch. 7, 9
B2: Ch. 1, 2, 3
B2: Ch. 4, 5
B2: Ch. 6, 12 |
| 25 |
|
| 27 |
|
| February |
1 |
|
| 3 |
Project Progress Report |
| 8 |
|
| 10 |
|
| 15 |
|
| 17 |
HW #2 |
| 22 |
|
Specifying Component-
and Service-Oriented Software Architectures using UML-RT/UML 2.0 |
Slide Set
#11 |
|
|
| 24 |
|
Patterns for
Composition and Decoupling:
Adapter, Decorator, Proxy, Observer, MVCPattern Languages and
Software Architectures:
An Example |
Slide Set #12 |
 |
|
| March |
1 |
|
|
| 3 |
HW #3 |
Implementation Infrastructures
for Software Architectures
(CORBA, .NET/Web Services, Messaging) |
Slide Set
#13 |
 |
B2: Ch. 8, 9, 10 |
| 8 |
|
| 10 |
|
Formal Foundations of Software Architectures: Formal Methods and their
Applications
Evaluating Software
Architectures:
Stakeholders, Metrics, Development Processes, Migration Strategies |
|
|
B2: Ch. 13, 14 |
| 16 |
Final Project
Report |
Project Presentations |
|
|
B2: Ch. 15, 16 |
Grading
There will be no final exam. The grade will be determined based on individual
achievements and teamwork.
Individual achievements are participation in
classroom discussion, and three homework assignments. Project teamwork consists
of 3-5 students working together on the specification and design of a software
architecture . This involves writing a project progress report (max. 5 pages),
and a final project report (max. 20 pages) as a team effort. The details
regarding the project will be discussed during the first class meeting.
Individual achievements and teamwork contribute as follows to the overall grade:
35% Homework
15% Classroom participation
50% Project
Literature
required:
| B1 |
Len Bass, Paul Clements, Rick Kazman: Software Architecture in Practice.
Second Edition. SEI Series in Software Engineering, Addison-Wesley, 2003 |
| B2 |
Eric Evans: Domain-Driven Design: Tackling Complexity in the Heart of
Software, Addison-Wesley, 2003 |
recommended:
Bernd Bruegge, Alan Dutoit: Object-Oriented Software Engineering: Using UML,
Patterns and Java, 2nd Edition. Prentice Hall, 2003
Paul Clements, Rick Kazman, Mark Klein: Evaluating Software Architectures.
Methods and Case Studies, SEI Series in Software Engineering, Addison-Wesley,
2002
Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad and Michael
Stal, Pattern-Oriented Software Architecture –
A System of Patterns, John Wiley & Sons, 1996.
Luke Hohmann: Beyond Software Architecture, Addison-Wesley, 2003
Further
Reading
Additional texts, from which topics presented in
class will be drawn, include:
Classics
- Edsger W. Dijkstra:
The Structure
of the "THE"-Multiprogramming System. EWD196, in J. Gosden, B. Randell
(eds.): Proceedings of the ACM Symposium on Operating System Principles, 1967
(appeared also under the title "The
structure of the “THE”-multiprogramming system" in CACM Volume 11,
Issue 5, May 1968)
- D. L. Parnas:
On the Criteria
To Be Used in Decomposing Systems into Modules.
Communications of the ACM, Vol. 15, No. 12, pp. 1053 - 1058, 1972
- D. E. Perry, A. L. Wolf:
Software
Architecture, 1989
- D. E. Perry, A. L. Wolf:
Foundations
for the Study of Software Architecture. ACM SIGSOFT Software Engineering
Notes, Volume 17, Number 4, 1992.
Architectural Description Languages / Connectors
- N. Medvidovic, R. N. Taylor:
A Framework for Classifying and Comparing
Architecture Description Languages. In: Proceedings of the 6th European
conference held jointly with the 5th ACM SIGSOFT, Springer, 1997.
- P. Oreizy, M. M. Gorlick, R. N. Taylor, D. Heimbigner, G. Johnson, N.
Medvidovic, A. Quilici, D. S. Rosenblum, A. L. Wolf:
An Architecture-Based
Approach to Self-Adaptive Software. IEEE Intelligent Systems, vol. 14, no.
3, pages 54-62, 1999
- N. R. Mehta, N. Medvidovic, S. Phadke:
Towards a Taxonomy of Software
Connectors. In: Proc. of 22nd International Conference on Software
Engineering (ICSE), ACM Press, 2000.
- B. Spitznagel, D. Garlan:
A Compositional
Approach for Constructing Connectors. In Proc.
of the Working IEEE/IFIP Conference on Software Architecture (WICSA'01), Royal
Netherlands Academy of Arts and Sciences, 2001
- I. H. Krüger, R. Mathew:
Systematic Development and Exploration of Service-Oriented Software
Architectures. Proceedings of the 4th Working IEEE/IFIP Conference on
Software Architecture (WICSA 2004), 2004.
Development of Component-Oriented Architectures with UML
and UML-RT
- B. Selic, J. Rumbaugh:
Using UML for
Modeling Complex Real-Time Systems, Rational Whitepaper, 1998
- I. Krüger,
W. Prenninger, R. Sandner: From Scenarios to Hierarchical
Broadcasting Software Architectures using UML-RT,
International Journal of Software Engineering and Knowledge Engineering (IJSEKE),
Vol. 12, No. 2, pp. 155-174, 2002.
Middleware Technologies
- OMG:
Corba Basics,
online tutorial, 2001
- R. Orfali, D. Harkey:
Client/Server Programming with JAVA and CORBA,
John Wiley, 1997
- A. Corsaro and D. C. Schmidt:
Evaluating Real-Time
Java Features and Performance for Real-time Embedded Systems.
Submitted to the 8th IEEE Real-Time Technology and Applications
Symposium, San Jose, CA, September 2002.
Foundations
- M. Broy:
Semantic Concepts for Software Architectures. In: M. Broy, E.
Denert, K. Renzel, and M. Schmidt, editors: Software Architectures and Design
Patterns in Business Applications. Technische Universität
München, TUM-I9746, 1997.
- J. Philipps, B. Rumpe:
Stepwise Refinement of Data Flow Architectures.
In: M. Broy, E. Denert, K. Renzel, and M. Schmidt, editors: Software
Architectures and Design Patterns in Business Applications. Technische Universität
München, TUM-I9746, 1997.
- M. Moriconi, X. Qian, R. A. Riemenschneider:
Correct
Architecture Refinement. IEEE Transactions on Software Engineering,
Volume 21, Number 4, 1995.
- J. Magee, J. Kramer, D. Giannakopoulou:
Behaviour
Analysis of Software Architectures. In: Proc. of First Working IFIP
Conference on Software Architecture (WICSA1), 1999.
- J. Goguen:
Parameterized Programming and Software Architecture. In Proceedings, Fourth
International Conference on Software Reuse, IEEE Computer Society, April 1996

Initial version: January 03, 2005, by Ingolf Krueger
|