04-634 Software Architecture and Design
12 units, Carnegie Mellon University
Software Architecture and Design is a one-semester course, aiming to train our graduate students from software engineers toward becoming software architects who are 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 an overview of software architecture, micro-architectural patterns (so-called design patterns), 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: none listed
Courseweave needs JavaScript to show sections, workloads and planning tools.