Carnegie Mellon University

Electrical and Computer Engineering

College of Engineering

Course Information

18-653SV: 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.

In Spring 2019 this course is broadcast from the Silicon Valley campus. ECE Pittsburgh students attend classes synchronously with students in Silicon Valley.

Corequisites: 18-655Antirequisites: 17655, 49787Anti-requisites: 17655, 49787
Anti-requisites: 17655, 49787 17655, 49787

Last Modified: 2020-12-01 11:55AM

Semesters offered:

  • Spring 2021
  • Spring 2020
  • Spring 2019
  • Spring 2018
  • Spring 2017
  • Spring 2016
  • Spring 2015