Appendix. Self-Assessment Questions
Chapter 1: Introduction
-
What are the four dimensions that define software architecture?
-
What is the difference between an architecture decision and a design principle?
-
List the eight core expectations of a software architect.
-
What is the First Law of Software Architecture?
Chapter 2: Architectural Thinking
-
Describe the traditional approach of architecture versus development and explain why that approach no longer works.
-
List the three levels of knowledge in the knowledge triangle and provide an example of each.
-
Why is it more important for an architect to focus on technical breadth rather than technical depth?
-
What are some of the ways of maintaining your technical depth and remaining hands-on as an architect?
Chapter 3: Modularity
-
What is meant by the term connascence?
-
What is the difference between static and dynamic connascence?
-
What does connascence of type mean? Is it static or dynamic connascence?
-
What is the strongest form of connascence?
-
What is the weakest form of connascence?
-
Which is preferred within a code base—static or dynamic connascence?
Chapter 4: Architecture Characteristics Defined
-
What three criteria must an attribute meet to be considered an architecture characteristic?
-
What is the difference between an implicit characteristic and an explicit one? Provide an example of each.
-
Provide an example of an operational characteristic.
-
Provide an example of a structural characteristic. ...