Course Syllabus

Software Architecture
IN4MATX 221 (37330

Meeting Information

Lectures
Room: PCB 1200
Day & time: MW 11:00-12:20pm

Instructor Information

Professor
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 (10%): actively contribute to classroom discussions/exercises based on the reading material assigned for the week. 
  • Course project: phase I (30%) and phase II (15%). The students are encouraged 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)

Date

Topic

Readings

Oct 1

Introduction

Chapters 1 and 2

Oct 3

Basic Concepts

Chapter 3

Oct 8

Designing Architecture

Chapter 4

Oct 10

Architectural Styles

Chapter 4

Oct 15

Architectural Styles Cont. Chapter 4
Oct 17

Software Connectors 

Chapter 5

Oct 22

Oct 24

Architectural Solutions in Practice -- Android

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 29

Modeling

Chapter 6

Oct 31 

Midterm review

Nov 5

Midterm Exam

 

Nov 7 

Analysis

Chapter 8

Nov 12

No class -- Veterans Day

 

Nov 14

Implementation

Chapter 9

Nov 19

Deployment and Mobility

Chapter 10

Nov 21

Architectural Inconsistencies

Negar Ghorbani, Joshua Garcia, and Sam Malek. Detection and Repair of Architecture Inconsistencies in Java. Institute for Software Research Tech Report, UCI-ISR-18-4.  

Nov 26

Architectural Adaptation

Chapter 14

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

Nov 28

Phase II project discussion

Dec 3

Architecture-based Self-Protection

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

Dec 5

Project presentations schedule

9:45am-12pm (DBH 5222)

3pm-5pm (DBH 5222)

 

Dec 14

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 http://honesty.uci.edu/

 Disabilities

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 Due