“Enabling teams and individuals to specify, design and deliver software for a complex world.”
Responsibility-Driven Software Development

Design Rebecca's Blog Contact Us Training and Consulting Clients and Projects Resources

Wirfs-Brock Associates Home Page > Developing and Communicating Software Architecture

Developing and Communicating Software Architecture

3 days

Suitable for teams up to 12 or slightly larger groups. Price:Contact us at training@wirfs-brock dot com. Instructor travel and lodging expenses are extra.

This course, based on the book Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives, provides software architects with skills and knowledge that enable them to prepare, present, and explain their architectures to diverse stakeholders interested in understanding and evaluating their architecture. It is also suited for developers, product managers, quality assurance, and other stakeholders who need to understand how to express their concerns and see that they are represented in a system's architecture.

At the completion of this course attendees should be able to

  • describe architecture views and understand how perspectives cut across them
  • develop a “profile” of relevant views and perspectives for their system's architecture
  • develop appropriate descriptions and models given limited time and energy
  • understand a process for developing an “essential” architecture
  • recognize options for presenting architecture models
  • gather and organize architecture material into a coherent, consistent architecture description
  • explain their architecture's essential features, key benefits, and underlying philosophy
  • plot a compelling storyline that emphasizes key aspects of an architecture
  • prepare a presentation of their architecture for a review

Course Philosophy
Students learn by doing. There is ample class-time opportunity to explore concepts and techniques and develop skills. Class is roughly half lecture and half short exercises, discussions, and in-depth labs. Each learning cycle, which lasts between a half hour and two hours, consists of:

  • a lecture which illustrates and motivates new concepts and techniques
  • select modules will contain quick exercises to reinforce new skills and/or short discussions
  • a longer team-oriented exercise
  • a discussion and critique of team solutions in a group “clinic”

Students present their work for review and comment. An instructor-led discussion of students' work reinforces practices and summarizes key learnings. Short in-class readings provoke stimulating discussions on the nature of software architecture descriptions, the value of understanding different stakeholders' perspectives, how to evaluate different architecture presentation alternatives, and where and when precision is needed.


  • Software Architecture Concepts
    What do architects do?
    How does architecture fit into a software development lifecycle
    Stakeholder concerns and requirements
    What stakeholders like to “see”
    Bridging between requirements and design
  • An architecture development framework
    Views and viewpoints
  • Introduction to Architecture Views
    Rozanski and Woods' Views
    Functional Views
    Information Views
    Concurrency Views
    Development Views
    Deployment Views
    Operational Views
    Comparing and contrasting with Rational's 4+1 and SEI views
  • An Architecture Definition Process
    Consolidating inputs
    Using functional and quality scenarios to drive out architecture
    Identify relevant architectural styles
    Producing a candidate architecture definition
    Exploring options with stakeholders
    Reworking and revisiting requirements
  • Architecture Viewpoints
    A guide to developing relevant views and models
    For each viewpoint an in depth presentation of concerns, relevant models, problems and pitfalls, and system applicability
    How to model each view effectively
    Architectural patterns, antipatterns, and how they impact the architectural views and the models within those views
    Checking for consistency across views
  • Architectural Perspectives
    The need for slicing across views to gain perspective
    Introducing perspectives
    The Security perspective
    The Performance perspective
    The Availability perspective
    The Usability perspective
    The Accessibility perspective
    The Location Perspective
    The Regulations Perspective
    Applying Perspectives to Views
    The benefits and pitfalls of using perspectives
  • Preparing a presentation of your architecture
    Understanding your audience
    Stakeholders and stakeholder concerns
    Balancing correctness, sufficiency, conciseness, clarity and precision
    Plotting an architectural storyline: scope, breadth, depth
    Identifying key architectural aspects
    Techniques for presenting complex information: story unfolding and progressive realization
    Techniques for increasing emphasis
    Understanding fundamentals and presenting a logical progression
    Moving up and down in details and levels of abstraction
    How to relate architecture to others and handling criticism
  • Documenting Software Architecture
    Creating Architectural Descriptions
    Properties of an Effective Architectural Description
    When to use UML and when not to
    Formal vs. informal descriptions
    Elements of a successful diagram
  • Validating and verifying an Architecture
    Validating and verifying that requirements are met
    When to review an architecture
    Test driving quality scenarios through your architecture
    Checking for consistency across views

Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives, Nick Rozanski and Eoin Woods, Addison-Wesley 2005
In addition to the course text, each student will receive a 90 page course guidebook developed by Wirfs-Brock Associates.

For additional information please contact us at training@wirfs-brock.com

Entire Site © Wirfs-Brock Associates 2005 - 2022.
Click here to contact the Webmaster.