Carnegie Mellon University

Principles of Architecture Design

Instructor CEU Units # of Lectures Hours Per Week Tuition
Anthony Lattanze
4.8 12 10-15 $2,700

Course Objectives

 The goals of this course are to introduce participants to the essential principles of architecture design. This 12 lecture course will acquaint participants with the latest concepts in software architecture and provide vital insight into the key issues influencing the design of software intensive systems within an organizational and business context. By the end of the course, participants will better understand:

  • What are the key architectural drivers and their influence on systemic design.
  • Guidance for eliciting and analyzing architectural drivers.
  • Introduction to basic structural elements of design.
  • Survey and analysis of exemplar system structures.
  • Guidance for designing and documenting architectural designs.

Prerequisites

Participants should have prior experience in the development of software-intensive systems and some familiarity with modern software engineering concepts.

Required Textbooks:

  • TBD
  • Various readings will be provided to support each lecture.

Course Logistics:

There are 12 lectures in the course.  Lectures are approximately 80 minutes in duration.  Each lecture has a set of readings and questions based upon the reading material.   These may be done before or after the associated lecture.   In addition to the weekly readings and questions, there is a  team project that is to be completed in 3 phases.   The project is designed to provide an opportunity for participants to think through the problem from inception to software architecture proposal and documentation using the skills, methodology, and knowledge learned in the course.   Attendees will get feedback on their work from instructors allowing them to improve their designs and their proficiency with course techniques.  A project description will be provided that outlines what must be produced by the teams and when.

Topics

Lecture 1:      Software Architecture Defined
Lecture 2:      Architectural Drivers
Lecture 3:      Architectural Structures
Lecture 4:      Structures: Data-Flow
Lecture 5:      Structures: Events and Message Passing
Lecture 6:      Structures: Call-Return
Lecture 7:      Structures: Client-Server & Tiers
Lecture 8:      Structures: Middleware
Lecture 9:      Structures: Data Centric Systems
Lecture 10:    Guidance for the Architect
Lecture 11:    Architecture Documentation
Lecture 12:    Course Summary – What Next