Carnegie Mellon University

Electrical and Computer Engineering

College of Engineering

Course Information

18-653SV: Software Architecture and Design




Software Design and Architecture aims to train software engineering graduate students for assuming the technical leadership of a software project team. The primary objective of the course is to help students develop skills in designing, developing, and justifying software architecture for enterprise-scale software-intensive systems, considering both functional and non-functional requirements as well as the system environment. Core topics include: overview of software architecture, micro architectural patterns (design patterns) and macro architectural patterns (architectural or modern patterns), service oriented architecture, architectural modeling, viewpoints and perspectives, architectural analysis techniques, architectural tactics (QoS), agile architectures, and other advanced topics. At the end of this course students will be able to: (a) competently generate architectural alternatives for a problem, and choose among them; (b) have the skills needed to construct a medium-sized software system that satisfies an architectural specification; (c) understand and analyze common modern software architectures and reason about the properties of these architectures.

Last Modified: 2024-01-19 10:49AM

Semesters offered:

  • Spring 2024
  • Fall 2023
  • Spring 2023
  • Fall 2022
  • Fall 2021
  • Spring 2021
  • Spring 2020
  • Spring 2019
  • Spring 2018
  • Spring 2017
  • Spring 2016
  • Spring 2015