Software architecture in practice. (Pearson, 2023)
Sneak Peek The Sneak Peek program provides early access to Pearson video products and is exclusively available to Safari subscribers. Content for titles in this program is made available throughout the development cycle, so products may not be complete, edited, or finalized, including video post-production editing. 10 Hours of Video Instruction Now thoroughly updated, Software Architecture in Practice LiveLessons introduces students to the most important aspects of software architecture: what it is and what it is not, why it is important, how it affects project success, and how it can be managed in a professional way. Overview 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 Course Requirements Basic understanding of programming and development Basic understanding of the software engineering lifecycle and project activities Lesson descriptions Lesson 1: Defining Software Architecture: This lesson defines what software architecture is and is not, and explores the implications thereof. It covers the ways in which software architecture is important and the basics of documenting an architecture in terms of architectural views. Finally, it discusses the importance of patterns and tactics, and gives tips for how to distinguish a good architecture. Lesson 2: Architecture Requirements: Quality Attributes: This lesson shows how to distinguish functionality from quality attributes, to unambiguously specify quality attribute requirements, and to recognize other important requirements that drive an architecture. Lesson 3: Availability: This lesson teaches how to think about availability, specify availability requirements, understand availability tactics, and design patterns that you can use to achieve high levels of availability. Lesson 4: Modifiability: This lesson shows how to clearly state what modifiability is from an architectural perspective, how to specify modifiable requirements in a precise testable fashion, and teaches design tactics and patterns to achieve modifiability. Lesson 5: Performance: This lesson covers how to create architectures that are fast and predictable. It teaches how to think about performance, specify performance requirements, and use design tactics and patterns to achieve the best performance as an architect. Lesson 6: Deployability: This lesson focuses on systems for which just-in-time feature releases are significant competitive advantages and just-in-time bug fixes are essential for the safety and security of continuous operation. It covers deployability scenarios, and design tactics and patterns to achieve deployability. Lesson 7: Gathering Architectural Requirements: This lesson covers problems in eliciting actionable architectural requirements and how to remedy this problem via the Quality Attribute Workshop (QAW) and the Quality Attribute Utility Tree. Lesson 8: Creating the Architecture: This lesson presents the Attribute-Driven Design (ADD) method, which aids in designing an architecture, and walks through the steps of the ADD method. Lesson 9: Architecture Analysis: This lesson describes forms of architecture evaluation, and looks closely at a specific architecture evaluation method called the Architecture Tradeoff Analysis Method (ATAM). It teaches the steps of ATAM and introduces a lightweight variant. It also introduces using tactics-based questionnaires as a form of analysis. Lesson 10: Architectures, Agility, and Technical Debt: This lesson covers the concepts of Agile and the relationship between agility and architecture. It provides guidelines for Agile architects and shows how to detect and fix architectural/design debt. About Pearson Video Training Pearson publishes expert-led video tutorials covering a wide selection of technology topics designed to teach you the skills you need to succeed. These professional and personal technology videos feature world-leading author instructors published by your trusted technology brands: Addison-Wesley, Cisco Press, Pearson IT Certification, Prentice Hall, Sams, and Que Topics include: IT Certification, Network Security, Cisco Technology, Programming, Web Development, Mobile Development, and more. Learn more about Pearson Video training at http://www.informit.com/video.