The basic principle of software architecture is that every software system is constructed to satisfy an organization’s business goals, and the architecture of a system is a bridge between the (often abstract) business goals and the final (concrete) resulting system. The path from abstract goals to concrete systems is often complex. In this video training, Rick Kazman shows how software architectures can be designed, analyzed, and documented with techniques that support the achievement of these business goals.
The course covers requirements (quality attributes) that drive architecture, and how to elicit, prioritize, and characterize them precisely and unambiguously. It covers patterns and tactics (the building-blocks of architecture) and a method of architecture design called Attribute Driven Design (ADD). It also presents the Architecture Tradeoff Analysis Method (ATAM), which is used to analyze and understand strengths and weaknesses of designed (or inherited) architectures. The course wraps up with practical advice on how to blend architecture activities with agile methodologies and how to be an agent for change in an organization.
Updates to this video include a deep dive into the distinct quality attributes of Availability, Modifiability, Performance, and Deployability, as well as expanded discussions on the intersection of agile and software architecture, and new discussions on DevOps and technical debt. Lessons 1, 2, and 7-9 are thoroughly updated; Lessons 3-6 and 10 are new to the second edition.
About the Instructor
Rick Kazman is a Professor at the University of Hawaii and a Visiting Researcher at the Software Engineering Institute of Carnegie Mellon University. His primary research interests are software architecture, design and analysis tools, software visualization, and technical debt. Kazman has been involved in the creation of several highly influential methods and tools for architecture analysis, including the ATAM (Architecture Tradeoff Analysis Method) and the Titan and DV8 tools. He is the author of over 250 publications, co-author of three patents and eight books.
Learn How To
- Understand and communicate the importance of architecture
- Elicit and validate architectural requirements, particularly quality attribute requirements
- Design architectural structures to meet quality attribute requirements
- Analyze an architecture
Who Should Take This Course
- Senior software developers who might aspire to be architects
- Designers and developers looking to enhance their skills and take on challenges of greater scope and impact
- Project managers who want to understand the importance of architecture and how it can be managed
- Basic understanding of programming and development
- Basic understanding of the software engineering lifecycle and project activities