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
Course Fees in USD
- Govt/Academic $1,200
- Industry $1,500
- International $2,250
Schedule
The live-online 4-day course schedule is as follows:
Days 1-4, 12:00 p.m. - 5:00 p.m. Eastern Time
The live in-person classroom delivery course schedule is as follows:
Days 1-2, 8:30 a.m. - 5:00 p.m. Eastern Time
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-1817.
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 MoreDocumenting 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 MoreSoftware 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 MoreTraining 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.