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 |
Chapters 1 and 2 |
|
Oct 3 |
Chapter 3 |
|
Oct 8 |
Chapter 4 |
|
Oct 10 |
Chapter 4 |
|
Oct 15 |
Architectural Styles Cont. | Chapter 4 |
Oct 17 | 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 |
Chapter 6 |
|
Oct 31 |
Midterm review |
|
Nov 5 |
Midterm Exam |
|
Nov 7 |
Chapter 8 |
|
Nov 12 |
No class -- Veterans Day |
|
Nov 14 |
Chapter 9 |
|
Nov 19 |
Chapter 10 |
|
Nov 21 |
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 |
Chapter 14 Kephart and Chess. The Vision of Autonomic Computing. IEEE Software. January 2003. |
|
Nov 28 |
Phase II project discussion |
|
Dec 3 |
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 |
---|---|---|