Course Information

18-653: Software Architecture and Design




Software Architecture and Design is a one-semester course, aiming to train our graduate students from software engineers toward becoming a Software Architect, who is the “Technical Lead” of a software project team. The primary objective of the course is to help students develop skills in designing, developing, and justifying reasonable software architecture for enterprise-scale software-intensive systems, considering both functional and non-functional requirements as well as contextual system environments. Core topics include: overview of software architecture, micro architectural patterns (so-called design patterns) and macro architectural patterns (i.e., modern patterns), service oriented architecture, architectural modeling, viewpoints and perspectives, architectural analysis techniques, architectural tactics (QoS), agile architecture, and some advanced topics. Literature survey and study of state-of-the-art technologies, as well as both individual and group project work, are essential ingredients of this class. Research and practical projects build upon one another.

Please note that this course is intended for ECE master students with a concentration in Software Engineering and will satisfy the Software Engineering and Design requirement.

Prerequisites: 18-652
Anti-requisites: 18-655

Last Modified: 2015-10-20 4:31PM

Semesters offered:

  • Spring 2016
  • Spring 2015