Appendix. Self-Assessment Questions

Chapter 1: Introduction

  1. What are the four dimensions that define software architecture?

  2. What is the difference between an architecture decision and a design principle?

  3. List the eight core expectations of a software architect.

  4. What is the First Law of Software Architecture?

Chapter 2: Architectural Thinking

  1. Describe the traditional approach of architecture versus development and explain why that approach no longer works.

  2. List the three levels of knowledge in the knowledge triangle and provide an example of each.

  3. Why is it more important for an architect to focus on technical breadth rather than technical depth?

  4. What are some of the ways of maintaining your technical depth and remaining hands-on as an architect?

Chapter 3: Modularity

  1. What is meant by the term connascence?

  2. What is the difference between static and dynamic connascence?

  3. What does connascence of type mean? Is it static or dynamic connascence?

  4. What is the strongest form of connascence?

  5. What is the weakest form of connascence?

  6. Which is preferred within a code base—static or dynamic connascence?

Chapter 4: Architecture Characteristics Defined

  1. What three criteria must an attribute meet to be considered an architecture characteristic?

  2. What is the difference between an implicit characteristic and an explicit one? Provide an example of each.

  3. Provide an example of an operational characteristic.

  4. Provide an example of a structural characteristic. ...

Get Fundamentals of Software Architecture now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.