Table of contents : 1. Software Architecture Demystified: Let’s Get Started! Building your understanding of software architecture Building plans and software architecture The dimensions of software architecture Puzzling out the dimensions Everything is interconnected. The first dimension: Architectural characteristics The second dimension: Architectural decisions BE the architect The third dimension: Logical components The fourth dimension: Architectural styles No, architecture and design are different. A design perspective An architectural perspective The spectrum between architecture and design Where along the spectrum does your decision fall? Is it strategic or tactical? How much effort will it take to construct or change? Does it have significant trade-offs? Strategic versus tactical High versus low levels of effort Code Magnets Significant versus less significant trade-offs Putting it all together You made it! Software Architecture Crossword BE the architect solution Code Magnets Solution Software Architecture Crossword Solution 2. Architectural Characteristics: Putting the “Function” into Nonfunctional Laffter, the best medicine? Cubicle Conversation What are architectural characteristics? Defining architectural characteristics Part 1: A non-domain design consideration Part 2: An influence on the structure Part 3: Important Overengineering is Too Easy Explicit versus implicit The International Zoo of “—ilities” Process architectural characteristics Structural architectural characteristics Operational architectural characteristics Cross-cutting architectural characteristics The problem domain Environmental awareness Holistic domain knowledge Solution versus problem Composite architectural characteristics Priorities are Contextual Congratulations, you have yet another job. Lost in Translation More requirements are NOT better. Balancing domain and architectural characteristics Limiting architectural characteristics The Magic Number 7 3. Everything’s a Trade-off: The Two Laws of Software Architecture It starts with a sneaker app What do we know so far? Having the trading service communicate with downstream services Analyzing trade-offs Trade-off analysis: Queue edition Trade-off analysis: Topic edition The first law of software architecture It always comes back to trade-offs Making an architectural decision What else makes a decision architectural? The second law of software architecture Architectural Decision Records (ADRs) Cubicle conversation Writing ADRs: Getting the title right Writing ADRs: What’s your status? Writing ADRs: What’s your status? (recap) Writing ADRs: Establishing the context Writing ADRs: Writing the decision Writing ADRs: Considering the consequences Writing ADRs: Ensuring governance Writing ADRs: Closing notes The benefits of ADRs Two Many Sneakers is a success The “two laws” crossword The “two laws” crossword solution 4. Logical Components: The building blocks Logical components revisited Adventurous Auctions goes online Here’s what the new system needs to do: Logical versus physical architecture Creating a logical architecture Step 1: Identifying initial core components Workflow approach Actor/Action approach The entity trap Step 2: Assigning requirements Step 3: Analyze Roles and Responsibilities Sticking to cohesion Step 4: Analyze characteristics BE the architect Our solution... Component coupling Afferent coupling Efferent coupling Measuring Static Coupling Law of Demeter Law of Demeter Applied Too much knowledge? A balancing act Some final words about components Software Architecture Crossword Head First Software Architecture, Chapter 4 Head First Software Architecture, Chapter 4