search menu icon-carat-right cmu-wordmark

Software Architecture Design and Analysis

A system's software architecture is widely regarded as one of the most important software artifacts. Software professionals routinely make decisions that impact that architecture, yet many times that impact is not fully considered or well understood.

  • Which design decisions will lead to a software architecture that successfully addresses the desired system qualities?
  • How do you know if a given software architecture is deficient or at risk relative to its target system qualities?

This two-day course provides in-depth coverage of the concepts needed to effectively design and analyze a software architecture. The essential considerations for defining any architecture are carefully examined and then illustrated through application of the SEI Attribute-Driven Design (ADD) software architecture design method. This course also explores architecture analysis in-depth and introduces the SEI Quality Attribute Workshop (QAW), the SEI Architecture Tradeoff Analysis Method (ATAM), and several lightweight evaluation techniques. Through multiple exercises, participants get a chance to apply these methods to sample problems.

This course is based on the books Designing Software Architectures: A Practical Approach and Software Architecture in Practice, 3rd edition.

The prerequisite for this course is the Software Architecture: Principles and Practices course, which is available as instructor-led classroom training and as eLearning.

Audience

  • practicing software architects
  • designers and developers of software-reliant systems

Objectives

This course provides attendees with in-depth coverage of the concepts needed to effectively design and analyze a software architecture. After attending this course, participants will have a better understanding of

  • the essential considerations in any architectural design process
  • the QAW for eliciting critical quality attributes
  • the ADD method for designing an architecture
  • the role of architecture evaluation
  • using the methods within a software development life cycle

Topics

  • life-cycle view of architecture design and analysis methods
  • the QAW, a method for eliciting critical quality attributes, such as availability, performance, security, interoperability, and modifiability
  • the ADD method, a method for designing a software architecture
  • the ATAM, a method for evaluating a software architecture based on a set of attribute-specific measures of the system such as performance, availability, modifiability, and security
  • lightweight architecture evaluation methods
  • the architecture design process in the organization

Materials

Participants will receive a copy of lecture slides, exercise materials, and the book Designing Software Architectures: A Practical Approach.

Prerequisites

Before registering for this course, participants must

Dates Offered

Course Fees [USD]

  • U.S. Industry: $1,500.00
  • U.S. Govt/Academic: $1,200.00
  • International: $2,250.00

Schedule

This 2-day course meets at the following times:

Days 1-2, 8:30 a.m. - 5:00 p.m. (U.S. locations)

Days 1-2, 9:00 a.m. - 5:30 p.m. (non-U.S. locations)

This course may be offered by special arrangement at customer sites. For details, please email course-info@sei.cmu.edu or telephone at +1 412-268-7622.




Course Questions?

Email: course-info@sei.cmu.edu
Phone: 412-268-7388
FAX: 412-268-7401

Related Courses

  • Software Architecture: Principles and Practices - eLearning

    ONLINE

    Although the term software architecture is used frequently in today's software industry, its meaning is not universally understood. What is software architecture? How do you use software architectures in practice? What does a software architect do for an organization? What value does software architecture provide? This course introduces the...

    Learn More
  • Documenting Software Architectures

    2 - Day Course

    Software architecture has become a widely accepted conceptual basis for the development of nontrivial software in all application areas and by organizations of all sizes. However, the treatment of architecture to date has largely concentrated on its design and, to a lesser extent, its validation. Effectively documenting an architecture is as...

    Learn More
  • Software Architecture: Principles and Practices

    2 - Day Course

    Although the term software architecture is used frequently in today's software industry, its meaning is not universally understood. What is software architecture? How do you use software architectures in practice? What does a software architect do for an organization? What value does software architecture provide? This course introduces the...

    Learn More
  • Software Product Lines

    2 - Day Course

    A software product line is a set of software-reliant systems that share a common, managed set of features satisfying a particular market or mission area, and are built from a common set of core assets in a prescribed way. Producing a set of related products as a product line has allowed organizations to achieve increased quality and...

    Learn More

Training courses provided by the SEI are not academic courses for academic credit toward a degree. Any certificates provided are evidence of the completion of the courses and are not official academic credentials. For more information about SEI training courses, see Registration Terms and Conditions and Confidentiality of Course Records.