Course Syllabus

Software Architecture
IN4MATX 221 (37330

Meeting Information

Room: MSTB 110
Day & time: MW 11:00-12:20pm

Instructor Information

Sam Malek

Email: malek at uci dot edu
Office hours: After class or by email appointment @ DBH 5226  

Course Description

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.

Requirements and expectations of students: This course is intended for MS and PhD students. The course covers the foundations and principles of software architecture as well as some of the more recent literature and research issues. The course will be a mix of lectures by the instructor and guest speakers, as well as interactive discussions. The students are expected to possess (1) a basic understanding of the software engineering principles, (2) prior experience with the design and development of large-scale software, (3) a strong programming background and the ability to learn new programming languages and software development technologies.  

Grading Summary

  • Class participation (5%): actively contribute to classroom discussions/exercises based on the reading material assigned for the week. 
  • Course project (1 page project proposal and progress report 10% + 8-10 page final report and presentation 40%): an analysis or implementation project on an approved topic related to the course. The students are allowed to work in groups of up to three. The grade is not affected by the size of group.
  • Two exams (midterm 20% + final 25%): combination of multiple-choice and essay questions covering the concepts presented in lectures and reading materials. 

Textbook and Reading Material

R. N. Taylor, N. Medvidovic, and E. M. Dashofy.
Software Architecture: Foundations, Theory, and Practice,  
John Wiley & Sons, 2009.
ISBN-10: 0470167742
ISBN-13: 978-0470167748
(available on Amazon)

The textbook is complemented with online reading materials, resources, and publications that are assigned throughout the class; see the schedule below.

Class Schedule (subject to change; check regularly)




Oct 2


Chapters 1 and 2

Oct 4

Basic Concepts

Chapter 3

Oct 9

Designing Architecture

Chapter 4

Oct 11

Architectural Styles

Chapter 4

Oct 16

Architectural Styles Cont. Chapter 4
Oct 18

Software Connectors 

Chapter 5

Oct 23

Architectural Concepts in Practice

 Bagheri, et al. Software Architectural Principles in Contemporary Mobile Software: From Conception to Practice. Journal of Systems and Software (JSS), Vol. 119, Pages 31-44, September 2016.

Oct 25

Architectural Issues in Practice

Project Discussion
(Topic 1, Topic 2)

Chin, et al. Analyzing Inter-Application Communication in Android. International Conference on Mobile Systems, Applications, and Services, Washington DC, June 2011.  

Felt et al. Permission Re-Delegation: Attacks and Defenses. USENIX Security Symposium, August 2011. 


Oct 30

Architectural Solutions in Practice

Project Discussion
(Topic 3)

Hammad, et al. DELDroid: Determination and Enforcement of Least-Privilege Architecture in Android. IEEE International Conference on Software Architecture (ICSA 2017),  April 2017. 

Nov 1


Chapter 6

Nov 6

Midterm Exam

Nov 8 

Project discussion 

Nov 13


Chapter 8

Nov 15


 Chapter 9 

Nov 20


 Chapter 10

Nov 22

Architecture Recovery

 Ducasse and Pollet, Software Architecture Reconstruction: A Process-Oriented Taxonomy. IEEE Transactions on Software Engineering, vol. 35, no. 4, pp. 573-591, July-Aug. 2009.

Garcia et al. A comparative analysis of software architecture recovery techniques. IEEE/ACM 28th International Conference on Automated Software Engineering (ASE), Silicon Valley, CA, 2013, pp. 486-496.

Nov 27

Architectural Adaptation

Chapter 14

Kephart and Chess. The Vision of Autonomic Computing. IEEE Software. January 2003. 

Nov 29

Architectural Adaptation for Security

Yuan et al. Architecture-Based Self-Protecting Software Systems. International Conference on Quality of Software Architectures (QoSA 2013), Vancouver, Canada, June 2013.

Dec 4

No Lecture -- Finish Your Project

Dec 6

No Lecture -- Finish Your Project

Dec 8

Final project presentations at DBH 5222

9am -- Group 10
9:30am -- Group 3
12pm -- Group 2
1:30pm -- Group 9
2pm -- Group 6
2:30pm -- Group 4
3pm -- Group 1
3:30pm -- Group 8
4pm -- Group 7
4:30pm -- Group 5

Dec 15

Final Exam -- 8-10am

Academic Honesty

Students are responsible for adhering to the UCI Academic Honesty standards. I encourage students to discuss problems in broad, conceptual terms and to work and study together. However, any work turned in must be your own. Material that is copied from any source needs to be quoted and the source must be cited. If you plagiarize, you run the severe risk of failing the class, in a most disgraceful manner. For further information, see


If you need an accommodation because of a disability, please contact the instructor and the Disability Services Center as soon as possible.

Course Summary:

Date Details