Monday, July 21, 2014

Architecture sketching

Three types of Architecture:

Application Architecture: Th internal structure of an application (classes, components, design patters)
System Architecture: High-level structure of a software components/services)
Enterprise Architecture: Structure and strategy across people, process and technology

Simon Brown considers software architecture as both Application and System Architecture

Architecture represents the significant decisions, where significance is measured by cost of change.

The C4 model (static structure):
System Context: The system plus users and system dependencies

Containers: the overall shape of the architecture and technology choices

Components: Logical components and their interactions within a container

Classes: component or pattern implementation details

A common set of abstractions is more important than a common notation

Tips:

Keep audience in mind when developing diagrams: non-technical, semi-technical, technical


Checklist for an effective sketch (diagram):

  1. I can see the solution from multiple levels of abstraction
  2. I understand teh big picture (context)
  3. I understand the logical containers
  4. I understand the major cmponents used to satisfy the important user stories/features
  5. I understand the notation, colour coding, etc used on the diagrams
  6. I can see the traceability between diagrams
  7. I understand the major technology decisions
  8. I understand the implementations strategy (frameworks, libaries, API's, etc)

"Sketches are Maps"

Just enough up front design to create firm foundations for the software product and its delivery:



From: https://skillsmatter.com/skillscasts/5109-simple-sketches-for-diagramming-your-software-architecture

No comments:

Post a Comment