IT 821 / CS 795 / SWE 699
Software Architecture Research Issues

Spring Semester, 2010
Location: Innovation Hall 206
Time: Tuesday 4:30-7:10pm

Instructor    Overview    Textbook and Readings    Grading    Schedule    Academic Integrity


Professor                    Sam Malek                Electronic Mail:
                                                                     Office: 4431, Engineering Building
                                                                     Office Phone: +1-703-993-1677
                                                                     Office Hours: Mon 3-4pm or by appointment


Software architecture has become increasingly important in the last 15 years in the software engineering community. At the heart of every well-engineered software system is its software architecture. Software architecture deals with the high level building blocks that represent an underlying software system. These building blocks are the components (units of computation in a system), the connectors (models of the interactions between software components), and the configurations (arrangements of software components and connectors, and the rules that guide their composition). Software architectures that are found particularly useful for families of systems are often codified into architectural styles.


This course will afford the student a complete treatment of software architecture, its foundation, principles, and elements, including those described above. In addition to foundations, and practical experience with software architectures, the class will also introduce the student to the state-of-the-art in software architecture research, future trends and state-of-the-practice. The course is geared towards MS and PhD students that are interested in gaining an in-depth knowledge of software architecture as a field of study. The course will be conducted in seminar fashion. There will be few formal lectures in the course, instead the class will be relatively interactive, and the students are expected to energetically participate in the discussions. The students are also expected to work on a research topic or project of interest and report on their progress throughout the semester.


Textbook and Readings


Tentative Schedule (subject to change; check regularly)

Week Date Lecture topic Readings Presenter
1 1/19 Introduction to Software Architecture
D. Perry, and A. Wolf. "Foundations for the Study of Software Architecture." ACM SIGSOFT Software Engineering Notes, October 1992. Malek
D. Garlan and M. Shaw. "An Introduction to software architecture." In Advances in Software Engineering and Knowledge Engineering, pages 1-39, Singapore, 1993.
Recommended reading: chapters 1 and 3
2 1/26 Software Architecture Research at GMU 1
Prism-MW paper moved to week 3 Malek -- Prism-MW Overview

Malek -- Prism-MW Tutorial

Recommended reading: chapters 9 and 10  
3 2/2 Software Architecture Research at GMU 2 S. Malek, M. Mikic-Rakic, and N. Medvidovic. "A Style-Aware Architectural Middleware for Resource Constrained, Distributed Systems." IEEE Transactions on Software Engineering, vol. 31, no. 3, March 2005. Finish slides from last week
S. Malek, N. Medvidovic, and M. Mikic-Rakic. "Improving a Distributed Software System's Quality of Service via Redeployment." Submitted for publication. Malek
4 2/9 No Class -- Snow Storm    
5 2/16 Software Architecture Research at GMU 3

Project Brainstorming


A. Elkhodary, N. Esfahani, S. Malek, and M. Kim. “FUSION: A Learning-Based Approach for Engineering Self-Adaptive Software Systems.” Submitted for publication. Ahmed
S. Malek, N. Esfahani, D. Menasce, J. Sousa, and H. Gomaa. “Self-Architecting Software Systems (SASSY) from QoS-Annotated Activity Models.ICSE 2009 Workshop on Principles of Engineering Service-Oriented Systems (PESOS 2009), Vancouver, Canada, May 2009. Malek
6 2/23 Software Architecture Research at GMU 4

Project Brainstorming

HW 1 due

D. Cooray, D. Kilgore, R. Roshandel, and S. Malek. “RESISTing Reliability Degradation through Proactive Reconfiguration.” Submitted for publication. Deshan
N. Esfahani, S. Malek. "Social Computing Networks: A New Paradigm for Engineering Pervasive Software Systems." International Conference on Software Software Engineering (ICSE 2010), New Ideas and Emerging Results Track, Cape Town, South Africa, May 2010. Naeem
7 3/2


Modeling R. T. Fielding. "Software Architectural Styles for Network-based Applications." UCI Technical Report, June 1999. Riyadh
E. M. Dashofy, A. van der Hoek, R. N. Taylor. "An infrastructure for the rapid development of XML-based architecture description languages." International Conference on Software Engineering, 2002. Nan
Recommended reading: chapters 4 and 6  
8 3/9 No Class -- Spring Break    
9 3/16 Quality of Service Analysis G. Edwards, S. Malek, and N. Medvidovic. "Scenario-Driven Dynamic Analysis of Distributed Architectures." International Conference on Fundamental Approaches to Software Engineering (FASE 2007), Braga, Portugal, March 2007. Thabet
D. A. Menasce, J. M. Ewing, H. Gomaa, S. Malek, and J. P. Sousa. "A Framework for Utility-Based Service Oriented Design in SASSY."  Joint WOSP/SIPEW International Conference on Performance Engineering, San Jose, California, January 2010. John
C. Seo, S. Malek, and N. Medvidovic. "Component-Level Energy Consumption Estimation for Distributed Java-Based Software Systems." 11th International Symposium on Component Based Software Engineering (CBSE 2008), Karlsruhe, Germany, October 2008. Malek
Recommended reading: chapters 8 & 12  
10 3/23 Adaptation P. Oreizy, N. Medvidovic, and R. N. Taylor. "Architecture-Based Runtime Software Evolution." International Conference on Software Engineering, 1998. Rowland
J. O. Kephart, D. M. Chess. "The Vision of Autonomic Computing." IEEE Computer 36(1): 41-50 (2003) Ehsan
J. Kramer, and J. Magee. "Self-Managed Systems: an Architectural Challenge." International Conference on Software Engineering, Future of Software Engineering Track, Minneapolis, MN, May 2007. Rabeea
Recommended reading: chapter 14  
11 3/30 Midterm Project Report  
12 4/6 Midterm Project Report  
13 4/13 Adaptation Cont. V. Poladian, J. P. Sousa, D. Garlan, M. Shaw. "Dynamic Configuration of Resource-Aware Services." International Conference on Software Engineering, Edinburgh, Scotland, May 2004 Ehab
B.H. C. Cheng, et al. "Software Engineering for Self-Adaptive Systems: A Research Roadmap." In Software Engineering for Self-Adaptive Systems, Editors B. H. C. Cheng, R. de Lemos, H. Giese, P. Inverardi, and J. Magee, Lecture Notes in Computer Science, Springer, 2009. Malek
14 4/20 Pervasive and Embedded Architectures


Future of Software Architecture

J. P. Sousa and D. Garlan. "Aura: an Architectural Framework for User Mobility in Ubicomp Environments." Working IEEE/IFIP Conference on Software Architecture, Kluwer Academic Publishers, Montreal, Canada, 2002. Ashirvad
S. Malek, C. Seo, S. Ravula, B. Petrus, and N. Medvidovic. "Reconceptualizing a Family of Heterogeneous Embedded Systems via Explicit Architectural Support." 29th International Conference on Software Engineering (ICSE 2007), Minneapolis, Minnesota, May 2007. Malek
R. N. Taylor, A. van der Hoek. "Software Design and Architecture: The once and Future Focus of Software Engineering." International Conference on Software Engineering, Future of Software Engineering, May 2007. Xan
15 4/27 Final Project Report
(will be held during regular class hour)
16 5/4 No Class    
17 5/11 No Class

Final Project Report
(schedule the project presentation time with the instructor)




Academic Integrity

George Mason's policy concerning student conduct applies.  Although students are encouraged to discuss the topics covered in class, all homework assignments, exams, and projects are to be completed individually, unless joint work is explicitly authorized by the instructor. If joint work is authorized, all contributing students must be listed on the submission. Any deviation from this is considered an Honor Code violation, and, as a minimum, will result in failure of the submission and, as a maximum, failure of the class.