2II45: Software Architecture of Distributed Systems
Course information page
|A N N O U N C E M E N T S|
||Guest lecture was canceled due to miscommunication.|
Tom Verhoeff apologizes to all persons affected.
||There are 29 persons with 1 insufficent/missing HW so far.|
These have now all been graded in peach.
||Homework Assignment 7 is avaible below
||Homework Assignment 6 is avaible below
Part 2: Study Material and Tentative Schedule
To read for Part 2 (collected by week;
optional material is marked as such):
- [11 Nov 2009] Introduction to Software Architecture
- Slides Week 9
[updated 18:56, 11 Nov 2009]
- Chapter 1 of
The Project Manager's Guide to Software Engineering's Best Practices
by Mark J. Christensen and Richard H. Thayer.
- Ariane 5 Failure Report.
- IEEE Recommended Practice for Architectural Description of Software Intensive Systems, Std 1471-2000.
- Mark W. Maler, David Emery, and Rich Hilliard.
"Software Architecture: Introducing IEEE Standard 1471",
IEEE Computer, April 2001.
Criteria To Be Used in Decomposing Systems into Modules by
- [Already read for Part 1; also relevant in Part 2]
"Architectural Blueprints -- The 4+1 View Model of Software Architecture",
IEEE Software, 12(6):42-50 (November 1995).
UML Diagrams for the 4+1 Views
- [Optional] IEEE Recommended Practice for Software Design Descriptions,
- [Optional, browse quotes]
Structured Design: Fundamentals of a Discipline of Computer Program and System Design by Edward Yourdon and Larry L. Constantine.
- [18 Nov 2009]
Architecture & Implementation
- Reinder Bril lectures about Module Architecture Control (Parts in grey will not be part of the exam;
in particular, the Relation Algebra)
- Lecture about
Quality Assessments on Source Code
by Reinier Post from LaQuSo
[N.B. The link to the Tool Demo does not work at the moment.]
R.J. Bril, L.M.G. Feijs, A. Glas, R.L. Krikhaar, an d
``Maintaining a legacy: towards support at the architectural level'',
Journal of Software Maintenance, 12(3):143-170,
- [25 Nov 2009]
Architecture & Requirements
- [02 Dec 2009]
Architecture & Evaluation
- Lecture about Architecture Trade-off Analysis Method
- Slides Week 12
- R. Kazman, M. Klein, M. Barbacci, T. Longstaff, H. Lipson, J. Carriere.
"The Architecture Tradeoff
4th Int'l Conference on Engineering of Complex Computer Systems
(ICECCS98), Aug. 98.
- R. Kazman, M. Klein, P. Clements.
ATAM: Method for Architecture Evaluation.
Technical Report, CMU/SEI-2000-TR-004 (Aug. 2000).
- [Optional] ATAM webpages at SEI: Tools and Methods,
L. Bass, P. Clements, R. Kazman.
Software Architecture in Practice (2nd Ed.) on-line.
Part Three: Chapter 11 "The ATAM"
- [Optional] LaQuSo Software Product Certification Model (LSPCM)
- [Optional] Article about LSPCM (freely accessible from tue.nl domain)
- [09 Dec 2009]
Component-Based Software Engineering
- Egor Bondarev lectures on
Performance analysis of component-based architectures
- F. Bachmann, et al.
Volume II: Technical Concepts of Component-Based Software Engineering (2nd Ed.).
Technical Report, CMU/SEI-2000-TR-008 (May 2000).
- [Optional] Clemens Szyperski.
Component Software: Beyond Object Oriented Programming (2nd Ed.).
- [Optional] Doug McIlroy.
In Software Engineering, Report on
a conference sponsored by the NATO Science Committee, Garmisch,
Germany, 7th to 11th October 1968,
Scientific Affairs Division, NATO,
Brussels, 1969, pp.138-155.
- [16 Dec 2009]
Reverse Engineering and Architecture,
- Lectures by Alexander Serebrenik (SET, LaQuSo):
- [06 Jan 2010]
Model-Driven Engineering/Architecture (MDE/MDA)
- Lectures by Mark van den Brand (SET, LaQuSo):
- [13 Jan 2010]
Guest lecture by Roald Kruit from Mendix
[CANCELED due to a miscommunication on the location]
Part 2: Homework Assignments
Submit your work (in couples) via peach,
where you can also find the submission deadlines.
- Coupling and Distributed Architectures
The notion of coupling between entities and the nature of such
coupling arose in the time that most software ran on a single processor,
and was written in a single programming language.
Tighter coupling was discovered to be a major impediment to ease of
understanding and to ease of change.
Therefore, good design should strive for loosely coupled systems.
Look up more about coupling in software (engineering) and explain how
this concept also applies to distributed, heterogeneous systems,
that is, explain in what way various kinds of coupling in such systems can
affect ease of understanding and ease of change.
Can you think of other reasons for being interested in coupling
in distributed, heterogeneous systems?
Explain, for some techniques from the area of distributed systems,
how these can be viewed as contributing to looser coupling.
Address at least two topics from the areas of Part 1:
architectural styles for distributed systems (week 2),
processes (week 3),
communication (week 4),
naming (week 5),
replication (week 6).
- Quality Attribute Scenarios for Scalability
(last homework assignment)
Express a general and a concrete scalability
requirement in the form of Quality Attribute Scenarios.
Scalability was treated in Lecture 2
(slides, especially slide 8).
Do not confuse scalability with a 'plain' performance requirement.
Essay (final assignment)
For details, see the
Course information page.
When doing a type-2 essay (evaluate proposed architecture documents),
you need to choose two architecture documents:
- One must be choosen from these two:
- FEI Small Dual Beam product family (Concerns software for electron/ion microscopes)
(Generic Automated Integrated Universal System for wind tunnels)
- And one must be choosen from these two:
- Fred (Tablet PCs for patient waiting room)
- Obelisk (Software for camera watches)