Home > Store

Software Architecture in Practice (LiveLessons), 2nd Edition

Software Architecture in Practice (LiveLessons), 2nd Edition

Your browser doesn't support playback of this video. Please download the file to view it.

Online Video

Not for Sale

Register your product to gain access to bonus material or receive a coupon.

Description

  • Copyright 2023
  • Edition: 2nd
  • Online Video
  • ISBN-10: 0-13-812146-X
  • ISBN-13: 978-0-13-812146-4

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:

  • 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 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.

Sample Content

Table of Contents

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

Updates

Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.