Architectures for Software Systems

Spring 2003 Schedule

Class Meetings

Monday and Wednesday, 10:30a - 11:50a
Newell-Simon Hall 1305

Instructors

David Garlan
garlan@cs.cmu.edu
WeH 8115 (x8-5056)
Office Hours: Mon 9:30a-10:30a
Secretary: Margaret Weigand, WeH 8120 (x8-2568)

Rick Kazman
kazman@sei.cmu.edu
SEI 5215 (x8-1588)
Office Hours: By appointment
 

Teaching Assistants

Jung Soo Kim
jungsoo@cmu.edu
WeH 5320A (x8-39907)
Office Hours: 12:00p-1:00p

Gil Taran
WeH 4614 (x8-6191)
gill@andrew.cmu.edu
Office Hours: TBD

Objectives

Architectures for Software Systems aims to teach you how to design, understand, and evaluate systems at an architectural level of abstraction. By the end of the course you should be able to:

Organization

Lectures. Class will meet Monday and Wednesday, 10:30a - 11:50a in Newell Simon Hall 1305
Computing. For the assignments, you will need to download and install the Java Software Development Kit (J2SE 1.4.1 SDK). You may use any editor or Java programming environment that you like, although the assignments will not require you to use any tool more advanced than the Java SDK and an editor.

Communication. Course materials are available through CMUs Blackboard System: http://www.cmu.edu/blackboard/ Readings. The required textbooks for this course are Software Architecture: Perspectives on an Emerging Discipline, by Mary Shaw and David Garlan, published by Prentice Hall in 1996, and Software Architecture in Practice, by Len Bass, Paul Clements, and Rick Kazman, published by Addison-Wesley in 1998. We will also use a collection of supplementary readings.

Grading. The course grade will be determined as a combination of four factors. Please note that late submissions will be penalized.  Grading factors are as follows:

Important Assignment and Project Dates


Assignment Date Assigned Discuss Due Topic
Acme Lab 01/20 -- 01/27 Architectural Documentation
A1 01/22 01/29 02/05 Pipes and Filters
A2 02/10 02/19 02/26 Objects
A3 03/03 03/10 03/19 Events
A4 03/31 -- 04/16 Architectural Standards
Project 01/22 04/07
04/09
04/14
02/12 (proposal
03/31 (prelim)
04/30 (final)
Architectural Design and Evaluation

Spring 2003 Schedule


Lecture Date Major Topic Subtopic Readings Assignment
Mon, Jan 13 Introduction Overview and Organization 
(pdf)
None Reading Questions 1
Wed, Jan 15   Software Architecture in Perspective Architectural Concepts 
(pdf)
SG96 Ch1; scan Ch2; BCK98 1.1, 1.2, Ch2; PN86; GMW00  
Mon, Jan 20 Dataflow Systems Dataflow Systems 
Part A, Part B 
(3a.pdf) (3b.pdf) 
Mor93; Rec92; SG96 Ch 2.1, 2.2, 2.8, 4.2.1, 4.3.1 Reading Questions 2 
Distribute Acme Lab (pdf)
Wed, Jan 22   4A:  Dataflow Case Studies and Implementation Techniques (4a.pdf)
4B:  Pipe-Filter Implementation (4b.pdf)
SG96 Ch 3.2, Lat01 Distribute A1 
Distribute Project
Mon, Jan 27 Techniques Quality Attributes and Tradeoff Analysis 
(pdf)
BCK98 Ch4; KK99 (1-27) Reading Questions 3 
Acme Lab
Wed, Jan 29   Documenting Software Architectures 
(pdf)
Jac95 pp. 39-51; C+03;Kru95
NASA01
Discuss A1
Mon, Feb 3 Call-Return Systems Call-Return Styles (including Protocols, Implementation techniques) 
(pdf)
SG96 Ch 2.3, 3.1; Par 72, PCW85 Reading Questions 4
Wed, Feb 5   Middleware 
(pdf)
Vin02 A1 Due
Mon, Feb 10   Layered Architectures 
Part A  (pdf)
Part B  (pdf) 
BB00, DD94 Distribute A2 
Reading Questions 5
10  Wed, Feb 12 Event-Based Systems Event Styles 
(pdf)
SG96 2.4; GKN92 Project Proposals Due
11  Mon, Feb 17   Implementation/Case Studies 
(pdf)
Rei90; SG96 Ch. 7.3, skim 6.4-6.6; HLA-RTI; HLA P1516 Rules Reading Questions 6
12  Wed, Feb 19 Techniques How to present an architecture 
Part A  (pdf)
Part B:  ADS 
(pdf) 
Mar91 Discuss A2
13  Mon, Feb 24   Arch Evaluation 1 (Overview + SAAM) 
(pdf)
BCK98 Ch. 9, 10 Reading Questions 7
14  Wed, Feb 26   Arch Evaluation 2 (ATAM) 
(pdf)
KKC00 A2 Due
15  Mon, Mar 3   Formal Specification and Analysis (incl UML) (pdf) SG96 6.1-6.3, 8.3; AGI98;Gar00; RJB99; GK00 Reading Questions 8 
Distribute A3
16  Wed, Mar 5 Shared Info Systems Shared Information Systems Styles 
(pdf)
SG96 Ch. 2.6-2.7, 3.5.3; Nii86  
17  Mon, Mar 10   Data Management Architectures/Web/E-Commerce 
(pdf)
BCK98 Ch7 Reading Questions 9 
Discuss A3
18  Wed, Mar 12 Techniques Cost-Benefit Analysis Method (CBAM) 
(pdf)
AKK01  
19  Mon, Mar 17   Reverse Engineering 
(pdf)
KOV02, O01 Reading Questions 10
20  Wed, Mar 19   Predictable Assembly of Components 
Part I  (pdf)
Part II (pdf) 
 HM02, KS01 A3 Due
  Mon, Mar 24   Spring Break -- No Class    
  Wed, Mar 26   Spring Break -- No Class    
21  Mon, Mar 31   Product Lines + Architecture in Context 
(pdf)
BCK98 Ch15, Ch16 Reading Questions 11 
Distribute A4
22  Wed, Apr 2 Architecting for X Usability 
(pdf)
 LB+01 Prelim Project Report
23  Mon, Apr 7   APTAS Case Study 
(pdf)
BCK98 Ch 16 Reading Questions 12 
Discuss Project
24  Wed, Apr 9   Performance
(pdf)
FB+03; SG90 Discuss Project
25  Mon, Apr 14   Security
(pdf)
 CMK+01 Reading Questions 13
Discuss Project
26  Wed, Apr 16 Architecture in Practice Enterprise Architecture  & J2EE
(pdf)
Sin+02; Bod+02; End+02 A4 Due
27  Mon, Apr 21   E-Commerce Architectures
(pdf)
STR00; DNA00; Paw01 Reading Questions 14
28  Wed, Apr 23   Architectural Mismatch and Future Directions
(pdf)
GA095; G+02; SG02; GCS03  
29  Mon, Apr 28   Final Project Presentations    
30  Wed, Apr 30   Final Project Presentations   Final Projects Due

References


[ADS] ADS Architecture: Executive Summary.
[AGI98]  Robert Allen. David Garlan. And James Ivers. Formal Modeling and Analysis of the HLA Component Integration Standard. Proc. of the 6th  International Symposium on the Foundations of Software Engineering (FSE-6), November 1998.
[AKK01]  J. Asundi, R. Kazman, M. Klein, “Using Economic Considerations to Choose Amongst Architecture Design Alternatives”, CMU/SEI-2001-TR-035, Software Engineering Institute, Carnegie Mellon University, 2001.
[Bod+02] Bodoff et.al., "The J2EE Tutorial", Addison-Wesley, 2002.  PDF available at http://java.sun.com/j2ee/download.html#tutorial (pages 1-8).  This book illustrates in a very didactic way how to build J2EE applications using Sun's J2EE SDK, also known as the "Reference Implementation". The selected pages are an introduction to the different types of application components available in the J2EE platform.
[BB00] Felix Bachmann, Len Bass, Jeromy Carriere, Paul Clements, David Garlan, James Ivers, Robert Nord, Reed Little, "Software Architecture Documentation in Practice:  Documenting Architectural Layers, CMU/SEI-2000-SR-004, Software Engineering Institute, Carnegie Mellon Univeristy, 2000.
[BCK98] Len Bass, Paul Clements, and Rick Kazman.  Software Architecture in Practice.  Addison-Wesley, 1998.
[C+03] Paul Clements, Felix Bachmann, Len Bass, David Garlan, James Ivers, Reed Little, Robert Nord, Judith Stafford.  A Practical Method for Documenting Software Architectures.  Submitted for publication.
[CMK+01] Christopher M. King, Ertem Osmanoglu (Editor), Curtis Dalton, "Security Architecture:  Design, Deployment and Operations. 
McGraw-Hill Osborne Media; 1st Edition (July 30, 2001).
[DD94] Darwen, Hugh and Date, C.J., "The Third Manifesto".
[DNA00] A Blueprint for Building Web Sites Using the Microsoft Windows Platform. Draft, Version .9.  Microsoft Corporation, January 2000. 
[End+02] Endrei et.al., "IBM WebSphere V4.0 Advanced Edition Handbook", IBM, 2002. PDF available at http://publib-b.boulder.ibm.com/Redbooks.nsf/RedbookAbstracts/sg246176.html?Open (Chapter 5) IBM WebSphere is one of the two leaders in the J2EE application server market. Chapter 5 of this document discusses different alternatives for the topology of the production environment, and how they affect performance, availability, maintainability, etc. (The entire document has over 1100 pages, so you may not want to print it all.)
[FB+03] F. Bachmann,L. Bass,M. Klein, "Moving from quality attribute requirements to architectural decisions", Proceedings of STRAW '03, to appear, May 2003.
[G+02]  David Garlan, Dan Siewiorek, Asim Smailagic, and Peter Steenkiste. Project Aura: Towards Distraction-Free Pervasive Computing., IEEE Pervasive Computing, Vol. 21, No. 2, April-June, 2002. pp. 22-31. 
[GAO95] David Garlan, Robert Allen, and John Ockerbloom. Architectural Mismatch, or Why it’s hard to build systems out existing parts. Proc Seventeenth International Conf on Software Engineering (ICSE-17), April 1995.
[Gar00] David Garlan, Software Architecture and Object Oriented Systems, Proceedings of the IPSJ Object-Oriented Symposium 2000, August 2000, Tokyo Japan.
[GK00] David Garlan and Andrew J. Kompanek, Reconciling the Needs of Architectural Description with Object-Modeling Notations, Proceedings of the Third International Conference on the Unified Modeling Language, October 2000, York UK.
[GCS03]  David Garlan, Shang-Wen Cheng, and Bradley Schmerl. Increasing System Dependability through Architecture-based Self-repair. In Architecting Dependable Systems, Springer-Verlag, 2003. 
[GKN92] David Garlan, Gail Kaiser, and David Notkin. Using Tool Abstraction to Compose Systems. IEEE Computer, 25(6), June 1992.
[GMW00] David Garlan, Robert T. Monroe, David Wile. ACME: An Architecture Description of Component-Based Systems, Foundations of Component-Based Systems, ed. Gary T. Leavens and Murali Sitaraman, Cambridge University Press, 2000, pp. 47-68.
[HLA P1516 Rules] IEEE. IEEE P1516/D1 Draft Standard [for] Modeling and Simulation (M&S), High Level Architecture (HLA) –  Framework and Rules. Prepared by SISO. 1998.
[HLA-RTI] Bachinsky, Mellon, Tarbox, and Fujimoto. RTI 2.0 Architecture.
[HM02] S. Hissam, G. Moreno, J. Stafford, K. Wallnau, “Packaging Predictable Assembly”, Proceedings of the First IFIP/ACM Working Conference on Component Deployment, June 2002, Berlin, Germany, LNCS 2370, Springer-Verlag.
[Jac95] Michael Jackson.  Software Requirements & Specifications, Addison-Wesley, 1995.
[KB02] R. Kazman, L. Bass, “Making Architecture Reviews Work in the Real World”, IEEE Software, 19:1, Jan./Feb. 2002, 67-73.
[KKC00] R. Kazman, M. Klein, P. Clements, “ATAM: A Method for Architecture Evaluation”, CMU/SEI-2000-TR-004, Software Engineering Institute, Carnegie Mellon University, 2000.
[KC99] R. Kazman, S. J. Carriere, “Playing Detective: Reconstructing Software Architecture from Available Evidence”, Automated Software Engineering, 6:2, April 1999, 107-138.
[KK99] M. Klein, R. Kazman, "Attribute-Based Architectural Styles", CMU/SEI-99-TR-022, Software Engineering Institute, Carnege Mellon University, 1999.
[KOV02] Kazman, O’Brien, Verhoef, “Architecture Reconstruction Guidelines, 2nd Edition”,CMU/SEI-2002-TR-034, Software Engineering Institute, Carnegie Mellon University, 2002.
[Kru95] P. Kruchten. The 4+1 View Model of Architecture. IEEE Software, 12(6):42-50, 1995.
[KS01] K. Wallnau, J. Stafford, “Ensembles: Abstractions for A New Class of Design Problem”, Proceedings of the IEEE 27th Euromicro Conference  (Euromicro2001), Warsaw, Poland, September, 2001.
[Lat01] A. Lattanze. Case Study: An Early Exploitation of Product Lines. Software Engineering Institute Technical Note.  To be published 2001.
[LB+01] General Usability Scenarios (excerpt from Bass, L., John, B.E., & Kates, J. (2001).  Achieving usability through software architecture (CMU/SEI-2001-TR-005).  Pittsburgh, PA:  Software Engineering Institute, Carnegie Mellon Univeristy)
[Mar91] Maranzano.  Best Current Practices:  Software Architecture Validation.  AT&T report, 1991.
[Mor93] Charles R. Morris and Charles H. Ferguson.  How Architecture Wins Technology Wars.  Harvard Business Review, 71, 2, March-April 1993, pp. 86-96.
[NASA01] Release 6A Segment/Design Specification for the ECS Project, Section 4.4. NASA Report 305-CD-600-001, pages 4-160-185. March 2001.
[Nii86] H. Penny Nii.  Blackboard Systems. AI Magazine 7(3):38-53 and 7(4):82-107.
[O01] L. O’Brien, “Architecture Reconstruction to Support a Product Line Effort: Case Study”, CMU/SEI-2001-TR-015, Software Engineering Institute, Carnegie Mellon University, 2001.
[OKV00] L. O’Brien, R. Kazman, C. Verhoef, “Architecture Reconstruction Guidelines”, CMU/SEI-2001-TR-026, Software Engineering Institute, Carnegie Mellon University, 2000.
[Par72] David L. Parnas. On the Criteria To Be Used in Decomposing Systems Into Modules. Communications of the ACM, 15(12):1053-1058, December 1972.
[Paw01] Introduction to the J2EE Platform. Monica Pawlan. March 23, 2001. (Optional) 
[PCW85] David Lorge Parnas, Paul C. Clements, and David M. Weiss, "The Modular Structure of Complex Systems", IEEE Transactions on Software Engineering, Vol. SE-11, No. 3, March 1985.
[PN86] R. Prieto-Diaz and J. M. Neighbors.  Module Interconnection Languages. Journal of Systems and Software , 6(4), November 1986, pp. 307-334.
[Rec92] Eberhardt Rechtin. The art of systems architecting.  IEEE Spectrum October 1992, pp. 66-69.
[Rei90] S. P. Reiss. Connecting Tools Using Message Passing in the Field Environment. IEEE Software, 7(4):57-66, July 1990.
[RJB99] J. Rumbaugh, I. Jacobson, G. Booch, The Unified Modeling Language Reference Manual, Addison Wesley, 1999.  pp. 25-39
[SG90] L. Sha, J. Goodenough, "Real-Time Scheduling Theory and Ada", IEEE Computer, April 1990, 53-62.
[SG96] Mary Shaw and David Garlan. Software Architectures Perspectives on an Emerging Discipline,  Prentice Hall, 1996.
[SG02] Joao Pedro Sousa, David Garlan. Aura: an Architectural Framework for User Mobility in Ubiquitous Computing Environments. The 3rd Working IEEE/IFIP Conference on Software Architecture. Kluwer Academic Publishers, August 25-31, 2002. pp. 29-43. 
[Sin+02] Singh et.al., "Designing Enterprise Applications with the J2EE Platform", Second Edition, Addison-Wesley, 2002.  PDF available at http://java.sun.com/j2ee/1.3/download.html#blueprints (pages 6-21).  This book is a core part of the Java BluePrints program created by Sun at the same time the J2EE platform was introduced. The BluePrints program aims at providing better understanding on how to architect J2EE applications and make effective use of the various technologies available. The other core part of the BluePrints program is the (now famous) PetStore application. The selected pages give an overview of J2EE and shows different J2EE application scenarios.
[STR00] Three Tier Software Architectures. Software Technology Review. CMU SEI. Revision of 16 Feb 2000. 
[Vin02] Vinoski, Steve, "Where is Middleware?", IEEE Internet Computing, 1089-7801/02, March/April 2002, pp. 83-85.
[Wie92] Gio Wiederhold, Mediators in the Architecture of Future Information Systems, IEEE Computer Society, March 1992, Vol. 25, No. 3.

Supplementary

 
[And91] G. R. Andrews. Paradigms for Process Interaction in Distributed Programs. ACM Computing Surveys, 23(1):49-90, March 1991.
CD01 Cheesman, J. and Daniels, J., UML Components: A Simple Process for Specifying Component-Based Software", Addison Wesley, 2001, Chapters 1and 2.
[G00] David Garlan, Software Architecture: a Roadmap, To appear in: The Future of Software Engineering, ed. A. Finkelstein, ACM Press, 2000.
[GR93] Jim Gray, Andreas Reuter. Transaction Processing: Concepts and Technologies. Morgan Kaufmann Publishers. 1993. pp. 7-18.
[GS00] David Garlan, Joao Pedro Sousa. Documenting Software Architectures: Recommendations for Industrial Practice. Carnegie Mellon University, School of Computer Science, CMU-CS-00-169. October 2000.
[OHE96] Robert Orfali, Dan Harkey, and Jeri Edwards. The Essential Client/Server Survival Guide. 2nd Edition. Wiley Computer Publishing; 1996. pp. 149-169.
[SG95] Mary Shaw and David Garlan. Formulations and Formalisms in Software Architecture. Computer Science Today: Recent Trends and Developments, Springer-Verlag LNCS Vol 1000, 1995.
[Sha95a] Mary Shaw. Architectural Issues in Software Reuse:  It’s Not Just the Functionality, It’s the Packaging.  Summary for talk at Symposium of Software Reuse, April 1995.
Szy98 pp. 3-39, 331-344 Szyperski, C., "Component Software: Beyond Object-Oriented Programming", Addison-Wesley, 1998.
WS01 Wallnau, K. and Stafford, J., "Uncertainty, Belief, and Contingency: Foundations of Component-Based Software Design", submitted to OOPSLA 2001.