icon-carat-right menu search cmu-wordmark

Software Architecture: Principles and Practices

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 essential concepts of software architecture. A software architecture is an abstract view of a software system distinct from the details of implementation, algorithms, and data representation. Architecture is increasingly a crucial part of a software organization's business strategy. Software architectures can

  • provide flexibility and adaptability in changing markets
  • allow for interoperability with other players in the marketplace
  • provide leverage of control in a marketplace
  • help developers focus on a niche in the marketplace
  • be used as a sales and marketing tool
  • help reduce maintenance costs and amortize development costs
  • assist in workforce organization and with project oversight and control
  • establish a common corporate vocabulary
  • shorten learning time

This course emphasizes the importance of the business (or mission) context in which systems are designed and introduces participants to software architectures in a real-world setting. "Industrial-strength" case studies and course exercises illuminate the key technical and organizational issues regarding software architectures. This course is based on the book Software Architecture in Practice, 4th Edition and is also available as eLearning.

Audience

This course is targeted at those professionals who design, develop, or manage the construction of software-reliant systems. This course is designed to help practicing software professionals quickly gain insight into the latest concepts of what software architecture is and how to use it successfully.

Objectives

This course provides attendees with a thorough overview of software architectures. After attending this course, participants will have a better understanding of

  • what is a software architecture
  • why a software architecture is important
  • the architecture influence cycle
  • the relationships between system qualities and software architectures
  • software architectural patterns and tactics, and their relationship to system qualities
  • attribute-driven design
  • software architecture documentation
  • software architecture evaluation
  • architectural reuse via software product lines
  • architectures in Agile projects

This course is the most fundamental of the six courses in the SEI Software Architecture Curriculum. At the conclusion of the course, attendees will be eligible to take the SEI's Software Architecture Design and Analysis course. Attendees will also be better prepared for the SEI's Documenting Software Architectures course. This course is the first course required in the SEI's Software Architecture Professional and SEI Service-Based Architecture Professional certificate programs.

Topics

  • definition and overview of software architecture
  • the architecture influence cycle: what influences software architects and software architecture
  • understanding and achieving quality attributes
  • architecture design using patterns and tactics
  • documenting software architecture
  • evaluating software architecture
  • architecture reuse via product lines
  • architecture in Agile projects

Materials

Participants receive a copy of the lecture slides and the book Software Architecture in Practice, 4th Edition.

Prerequisites

Before registering for this course, participants should have

  • experience in the development of software-reliant systems
  • some familiarity with modern software engineering concepts

 

IMPORTANT NOTICE:

Carnegie Mellon University/Software Engineering Institute offices will be closed for winter break, December 21, 2024-January 1, 2025. SEI course registrations received during this period will be confirmed and enrollment completed upon our return on January 2, 2025.

Course Questions?

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

Related Courses

Software Architecture: Principles and Practices - eLearning

ONLINE Software Architecture, Cyber Workforce Development

This eLearning course introduces participants to essential software architecture concepts in a real-world setting using case studies, examines the technical and organizational issues regarding software architectures, and emphasizes the importance of the business context in which systems are designed.

Learn More

Documenting Software Architectures

Software Architecture, Cyber Workforce Development

This 4-day course covers effective software architecture documentation practices for all stakeholders, incorporating models like Rational Unified Process (RUP), Siemens Four Views, ISO/IEC 42010 standard, and Unified Modeling Language (UML).

Learn More

Software Architecture Design and Analysis

Software Architecture, Cyber Workforce Development

This two-day course, based on the books Designing Software Architectures: A Practical Approach and Software Architecture in Practice, 3rd edition, provides in-depth coverage of the concepts needed to design and analyze a software architecture effectively.

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.