Video accessible from your Account page after purchase.
Register your product to gain access to bonus material or receive a coupon.
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.
Learn How To:
Who Should Take This Course:
Course Requirements:
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 RequirementsQuality 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, 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.
Video Lessons are available for download for offline viewing within the streaming format. Look for the green arrow in each lesson.
Introduction
Lesson 1: Defining Software Architecture
1.1: What is software architecture?
1.2: Why is architecture important?
1.3: Why and how do I document an architecture?
1.4: What makes a good architecture?
Lesson 2: Architecture Requirements: Quality Attributes
2.1: What are architectural requirements?
2.2: How do I specify quality attributes?
2.3: How do I gather quality attribute requirements?
2.4: How do I achieve quality attributes?
Lesson 3: Availability
3.1: What is availability?
3.2: How do I specify availability scenarios?
3.3: What are availability tactics?
3.4: What are availability patterns?
Lesson 4: Modifiability
4.1: What is Modifiability?
4.2: How do I specify Modifiability scenarios?
4.3: What are Modifiability tactics?
4.4: What are Modifiability patterns?
Lesson 5: Performance
5.1: What is Performance?
5.2: How do I specify Performance scenarios?
5.3: What are Performance tactics?
5.4: What are Performance patterns?
Lesson 6: Deployability
6.1: What is Deployability?
6.2: How do I specify Deployability scenarios?
6.3: What are Deployability tactics?
6.4: What are Deployability patterns?
Lesson 7: Gathering Architectural Requirements
7.1: What are the problems in eliciting actionable architectural requirements?
7.2: What is the Quality Attribute Workshop?
7.3: What is the Quality Attribute Utility Tree?
Lesson 8: Creating the Architecture
8.1: How should I design my architecture?
8.2: What are the steps of ADD?
8.3: What are the hard parts of ADD?
Lesson 9: Architecture Analysis
9.1: Should I analyze my architecture?
9.2: How can I organize an ATAM?
9.3 How do I conduct an ATAM?
9.4: Are there lighter weight evaluation techniques?
Lesson 10: Architectures, Agility, and Technical Debt
10.1: How do agile concepts relate to architecture?
10.2: What is design debt?
10.3: How can I fix design debt?
Summary