SlideShare a Scribd company logo
HÖNNUN OG SMÍÐI HUGBÚNAÐAR 2015
L12 VISUALIZING ARCHITECTURE
Agenda
Why diagrams?
Boxes and lines
What are you trying to say?
Diagrams
Context
Container
Components
Reading
Simon Brown’s book
Part IV, Chapters 31-41
Why Diagrams?
Visualising Software Development
Why Diagrams?
Diagrams are communication tools
Architecture is about Structure and Vision
How do you communicate this?
Visualisation of architecture is very important
And easy to get wrong – a rare skill
Diagrams tend to be vague and easy to misunderstand
Mixing of many concepts into single diagram is confusing
Boxes with lines
Traditional Approaches
Formal Rational Unified Process (RUP) and 

Structured System Analysis and Design (SSADM)
Modeling languages such as Unified Modelling Language (UML)
In today’s agile world these formal process and strict languages
are not favoured
Still, there is need to communicated
Boxes and lines
Boxes and lines
Boxes and lines
Boxes and lines
Boxes and lines
Problems with Boxes and Lines
Colour coding is unexplained
Purpose is not explained
Key relationships are missing or ambiguous
Generic terms such as “business logic”
Technology choices omitted
Levels of abstractions mixed
Diagrams often try to show too much details
Lack context or logical starting point
The Need for Sketches
Some developers favour TDD over diagrams
After all, UML “isn’t cool”
For some Agile means “No documentation”
But still, agile practices still need communication and
diagrams are very important tool for that
No documentation mentality is dangerous and usually
very expensive in the long run
Why Diagrams?
Helps everybody in the team get the “big picture”
Shared vision
Focal point: what is being build, and how
Helps technical conversations about how new features fit in
Map that can be used to navigate the source code
Helps explain to others what the teams are building
Helps new employees get on track
Why Diagrams?
Focus on high-level structure
Create a vision that everybody in the team can understand
and commit to
Class diagrams are too details and should be considered
temporary designs replaced by code
Context, Containers and Component diagrams are usually
sufficient
Ineffective Sketches
Many teams struggle with diagrams
They mistakenly abandon documentation and diagrams in
favour of agile
They don’t like UML but favour creating their own way (often
ineffective)
Usually, it’s just lack of training
The C4

Context, Container, Component, Classes
Goals with Diagrams
Create number of diagram with different levels of abstractions
Number of simpler diagrams can be more effective than one
complex one - There is no one “Big Picture”
Abstractions
Abstractions
Classes: Smallest building
blocks
Abstractions
Components: logical grouping of
classes
Services are components
Example: Authentication Service
Services are a set of
collaborating classes, sitting
behind an API
Abstractions
Containers: what the
component runs in
Web server, application server
Typically executable that are
started as part of the system
Java EJB, .NET
Abstractions
System: highest level of
abstraction
Made up of multiple containers
and defines the links between
them
Diagrams
Context: A high-level diagram that shows actors and system
dependencies
Container: high-level technology choices and responsibilities
Component: for each container, what ware the key logical
components and their relationships
Classes: showing classes and their relationships, useful to
explain design patterns
Context Diagram
Useful starting point
Intent
Helps identify what the system is, 

who is using it and 

how it fits into the existing IT environment
L12 Visualizing Architecture
Context Diagram
Structure
Your system is a block in the middle
Surrounded by users and other systems
Detail is not important
Focus on people and systems, not technology and protocols
Context Diagram
Users, actors, roles, personas etc
Normal user, customers
Admins
Back-office staff
IT systems
Active Directory
User database
Relocation servers
External vs. internal
Context Diagram
Interactions
Annotate the interactions (the lines) with useful information
about the purpose
For example, list of most likely user stories
Context Diagram
Motivation
Why this diagram?
It makes the context explicit so there are no assumptions
It shows what is being added into the IT environment
High-level for technical and non-technical people
Good starting point for discussions
Audience
Technical and non-technical people
L12 Visualizing Architecture
Container Diagram
High-level technology choices
Intent
Helps identify overall shape,

high-level technology decisions,

responsibilities,

container communications and

for developers, where the code is
L12 Visualizing Architecture
Container Diagram
Structure
Simple block diagram showing key technology
choices
Container is any logical executable or processes that
manage life-cycle of components
Container is usually a middleware that requires some
commitment on operating
Example Containers
Web server (Apache, Tomcat, IIS, Jetty etc)
Application servers (Jboss, WebSphere etc)
Enterprise servers (Oracle Fusion etc)
SQL databases (Oracle, MSSQL, MySQL etc)
NoSQL databases (MongoDB, CouchDB, Redis etc)
External storage
Files systems
OS services
For each container
Name
Logical name (“web server”, “database” etc)
Technology
Choice of technology (Apache, Tomcat, Oracle 11g etc)
Responsibilities
High-level statement of the containers responsibilites
Interactions and Boundaries
The lines show interactions within the system
Useful information:
Purpose: “reads data from”, “sends reports to” etc
Communication method: Web Service, REST, RMI, JMS etc
Communication style: synchronous, asynchronous etc
Protocols and port: HTTP, HTTPS, SOAP, SMTP etc
Boundaries
IT systems and users that are outside the boundaries of the system
Example Containers
Motivation
Container diagram shows inside the box
Shows high-level technology choices
Relationships and methods for communications
Audience
Technical people
L12 Visualizing Architecture
Component Diagram
Looking into the container with logical view of major
components and their interactions
Intent
Helps identify what components/services that makes up
the system, how the system works at high-level, where
components live
L12 Visualizing Architecture
Component Diagram
Structure
Draw the components/services that are in a single
container
If there are many services, it might be broken into some
logical sections
Component Diagram
What is a component or service
Single responsibility
Examples: Trade data system importer, risk calculator,
authentication service, audit component etc
Course grained building blocks
For each component specify:
Name: “Risk Calculator”, “Audit Component”
Technology: Java, C#, Ruby, EJB, WFC
Responsibilities: statement of purpose
Component Diagram
Interactions
Annotation of the lines between components
Purpose (“uses”, “persist data” etc)
Communication style (synchronous, asynchronous, batched etc)
Component Diagram
Motivation
Communicate logical structure within container, higher-
level than class diagram, finer than container diagram
Good way to understand how the system works and
what it does
Shows dependencies and deployable units
Audience
Devs
L12 Visualizing Architecture
Technology Choices
Should technology be included
Should diagram be conceptual?
Is it important not to include technology?
Rules to follow
If you know the technology, state it explicitly in the diagram:
servers, languages, protocols, message format,
communication styles
Then answer the “why” questions
Draw it like you code it
Draw it like you code it
Shared components
If multiple services use the same component (JAR) there should
be box in each
Layering
Draw the communication paths as they are coded
Packaging
Most architecture favour some level of layering
Presentation Layer
Domain Layer
Data Source Layer
How do you package code?
Package by layer
Package by feature
Package by component
Package by layer
All components in a layer are
packaged together
Simple to understand
Similar components are grouped
together
Can impact the team structure
Are multiple teams working on
the same package?
What about communication
paths?
Package by feature/component
By feature
All components in that implement
a feature are packaged together
Vertical slice
Can reflect team organization
better
By component
Package each component
separately
Microservices model
Summary
Diagrams are important
Often ignored
Usually some boxes and lines
Without technical details
What are you trying to say?
Diagrams levels
Context
Container
Components

More Related Content

PPTX
L12 Visualizing Architecture
PDF
The Art of Visualising Software - Simon Brown
PDF
ASAS 2014 - Simon Brown
PDF
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
PDF
Architecture: where do you start?
PDF
[2015/2016] Introduction to software architecture
PPTX
REPORT IN PRODMAN Testing models and Examples
L12 Visualizing Architecture
The Art of Visualising Software - Simon Brown
ASAS 2014 - Simon Brown
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Architecture: where do you start?
[2015/2016] Introduction to software architecture
REPORT IN PRODMAN Testing models and Examples

What's hot (8)

PPT
13 si(systems analysis and design )
PDF
Cs 2352 object oriented analysis and design
PPTX
SMD Unit ii
PPT
Model-Driven Engineering of User Interfaces: Promises, Successes, Failures, a...
PPTX
Uml BSE
PPT
Introduction to Object Oriented Design
PPTX
SMD Unit i
PPTX
Software architecture styles families_research_gssi_nov2013
13 si(systems analysis and design )
Cs 2352 object oriented analysis and design
SMD Unit ii
Model-Driven Engineering of User Interfaces: Promises, Successes, Failures, a...
Uml BSE
Introduction to Object Oriented Design
SMD Unit i
Software architecture styles families_research_gssi_nov2013
Ad

Similar to L12 Visualizing Architecture (20)

PPTX
Visualizing Software Architecture Effectively in Service Description
PPTX
Architecture and design
PPT
Software Engineering: Models
PPT
Ooad
ODP
Software Patterns
PDF
Introduction to SOFTWARE ARCHITECTURE
PPT
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.ppt
PPT
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.ppt
PPT
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.ppt
PPTX
Elaboration
DOCX
Third AssignmentDescribe in 100 – 200 words an application with .docx
PPTX
PPT
Software Design
PPTX
Presentation
PPTX
SA_UNIT_1.pptx
DOCX
Chapter 7 Design Architecture and Methodology1.docx
PPT
Financial Accounting
PPT
Lecture Note for Introduction Class
PPT
Apostila UML
PPT
Architecting for Change: An Agile Approach
Visualizing Software Architecture Effectively in Service Description
Architecture and design
Software Engineering: Models
Ooad
Software Patterns
Introduction to SOFTWARE ARCHITECTURE
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.ppt
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.ppt
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.ppt
Elaboration
Third AssignmentDescribe in 100 – 200 words an application with .docx
Software Design
Presentation
SA_UNIT_1.pptx
Chapter 7 Design Architecture and Methodology1.docx
Financial Accounting
Lecture Note for Introduction Class
Apostila UML
Architecting for Change: An Agile Approach
Ad

More from Ólafur Andri Ragnarsson (20)

PDF
Nýsköpun - Leiðin til framfara
PDF
Nýjast tækni og framtíðin
PDF
New Technology Summer 2020 Course Introduction
PDF
L01 Introduction
PDF
L23 Robotics and Drones
PDF
L22 Augmented and Virtual Reality
PDF
L20 Personalised World
PDF
L19 Network Platforms
PDF
L18 Big Data and Analytics
PDF
L17 Algorithms and AI
PDF
L16 Internet of Things
PDF
L14 From the Internet to Blockchain
PDF
L14 The Mobile Revolution
PDF
New Technology 2019 L13 Rise of the Machine
PDF
L12 digital transformation
PDF
L10 The Innovator's Dilemma
PDF
L09 Disruptive Technology
PDF
L09 Technological Revolutions
PDF
L07 Becoming Invisible
PDF
L06 Diffusion of Innovation
Nýsköpun - Leiðin til framfara
Nýjast tækni og framtíðin
New Technology Summer 2020 Course Introduction
L01 Introduction
L23 Robotics and Drones
L22 Augmented and Virtual Reality
L20 Personalised World
L19 Network Platforms
L18 Big Data and Analytics
L17 Algorithms and AI
L16 Internet of Things
L14 From the Internet to Blockchain
L14 The Mobile Revolution
New Technology 2019 L13 Rise of the Machine
L12 digital transformation
L10 The Innovator's Dilemma
L09 Disruptive Technology
L09 Technological Revolutions
L07 Becoming Invisible
L06 Diffusion of Innovation

Recently uploaded (20)

PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
System and Network Administraation Chapter 3
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPTX
Transform Your Business with a Software ERP System
PDF
Nekopoi APK 2025 free lastest update
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
System and Network Administration Chapter 2
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Internet Downloader Manager (IDM) Crack 6.42 Build 41
2025 Textile ERP Trends: SAP, Odoo & Oracle
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
wealthsignaloriginal-com-DS-text-... (1).pdf
Which alternative to Crystal Reports is best for small or large businesses.pdf
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Reimagine Home Health with the Power of Agentic AI​
PTS Company Brochure 2025 (1).pdf.......
System and Network Administraation Chapter 3
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
VVF-Customer-Presentation2025-Ver1.9.pptx
Transform Your Business with a Software ERP System
Nekopoi APK 2025 free lastest update
How Creative Agencies Leverage Project Management Software.pdf
System and Network Administration Chapter 2
CHAPTER 2 - PM Management and IT Context
Navsoft: AI-Powered Business Solutions & Custom Software Development

L12 Visualizing Architecture

  • 1. HÖNNUN OG SMÍÐI HUGBÚNAÐAR 2015 L12 VISUALIZING ARCHITECTURE
  • 2. Agenda Why diagrams? Boxes and lines What are you trying to say? Diagrams Context Container Components
  • 6. Why Diagrams? Diagrams are communication tools Architecture is about Structure and Vision How do you communicate this? Visualisation of architecture is very important And easy to get wrong – a rare skill Diagrams tend to be vague and easy to misunderstand Mixing of many concepts into single diagram is confusing Boxes with lines
  • 7. Traditional Approaches Formal Rational Unified Process (RUP) and 
 Structured System Analysis and Design (SSADM) Modeling languages such as Unified Modelling Language (UML) In today’s agile world these formal process and strict languages are not favoured Still, there is need to communicated
  • 13. Problems with Boxes and Lines Colour coding is unexplained Purpose is not explained Key relationships are missing or ambiguous Generic terms such as “business logic” Technology choices omitted Levels of abstractions mixed Diagrams often try to show too much details Lack context or logical starting point
  • 14. The Need for Sketches Some developers favour TDD over diagrams After all, UML “isn’t cool” For some Agile means “No documentation” But still, agile practices still need communication and diagrams are very important tool for that No documentation mentality is dangerous and usually very expensive in the long run
  • 15. Why Diagrams? Helps everybody in the team get the “big picture” Shared vision Focal point: what is being build, and how Helps technical conversations about how new features fit in Map that can be used to navigate the source code Helps explain to others what the teams are building Helps new employees get on track
  • 16. Why Diagrams? Focus on high-level structure Create a vision that everybody in the team can understand and commit to Class diagrams are too details and should be considered temporary designs replaced by code Context, Containers and Component diagrams are usually sufficient
  • 17. Ineffective Sketches Many teams struggle with diagrams They mistakenly abandon documentation and diagrams in favour of agile They don’t like UML but favour creating their own way (often ineffective) Usually, it’s just lack of training
  • 18. The C4
 Context, Container, Component, Classes
  • 19. Goals with Diagrams Create number of diagram with different levels of abstractions Number of simpler diagrams can be more effective than one complex one - There is no one “Big Picture”
  • 22. Abstractions Components: logical grouping of classes Services are components Example: Authentication Service Services are a set of collaborating classes, sitting behind an API
  • 23. Abstractions Containers: what the component runs in Web server, application server Typically executable that are started as part of the system Java EJB, .NET
  • 24. Abstractions System: highest level of abstraction Made up of multiple containers and defines the links between them
  • 25. Diagrams Context: A high-level diagram that shows actors and system dependencies Container: high-level technology choices and responsibilities Component: for each container, what ware the key logical components and their relationships Classes: showing classes and their relationships, useful to explain design patterns
  • 26. Context Diagram Useful starting point Intent Helps identify what the system is, 
 who is using it and 
 how it fits into the existing IT environment
  • 28. Context Diagram Structure Your system is a block in the middle Surrounded by users and other systems Detail is not important Focus on people and systems, not technology and protocols
  • 29. Context Diagram Users, actors, roles, personas etc Normal user, customers Admins Back-office staff IT systems Active Directory User database Relocation servers External vs. internal
  • 30. Context Diagram Interactions Annotate the interactions (the lines) with useful information about the purpose For example, list of most likely user stories
  • 31. Context Diagram Motivation Why this diagram? It makes the context explicit so there are no assumptions It shows what is being added into the IT environment High-level for technical and non-technical people Good starting point for discussions Audience Technical and non-technical people
  • 33. Container Diagram High-level technology choices Intent Helps identify overall shape,
 high-level technology decisions,
 responsibilities,
 container communications and
 for developers, where the code is
  • 35. Container Diagram Structure Simple block diagram showing key technology choices Container is any logical executable or processes that manage life-cycle of components Container is usually a middleware that requires some commitment on operating
  • 36. Example Containers Web server (Apache, Tomcat, IIS, Jetty etc) Application servers (Jboss, WebSphere etc) Enterprise servers (Oracle Fusion etc) SQL databases (Oracle, MSSQL, MySQL etc) NoSQL databases (MongoDB, CouchDB, Redis etc) External storage Files systems OS services
  • 37. For each container Name Logical name (“web server”, “database” etc) Technology Choice of technology (Apache, Tomcat, Oracle 11g etc) Responsibilities High-level statement of the containers responsibilites
  • 38. Interactions and Boundaries The lines show interactions within the system Useful information: Purpose: “reads data from”, “sends reports to” etc Communication method: Web Service, REST, RMI, JMS etc Communication style: synchronous, asynchronous etc Protocols and port: HTTP, HTTPS, SOAP, SMTP etc Boundaries IT systems and users that are outside the boundaries of the system
  • 39. Example Containers Motivation Container diagram shows inside the box Shows high-level technology choices Relationships and methods for communications Audience Technical people
  • 41. Component Diagram Looking into the container with logical view of major components and their interactions Intent Helps identify what components/services that makes up the system, how the system works at high-level, where components live
  • 43. Component Diagram Structure Draw the components/services that are in a single container If there are many services, it might be broken into some logical sections
  • 44. Component Diagram What is a component or service Single responsibility Examples: Trade data system importer, risk calculator, authentication service, audit component etc Course grained building blocks For each component specify: Name: “Risk Calculator”, “Audit Component” Technology: Java, C#, Ruby, EJB, WFC Responsibilities: statement of purpose
  • 45. Component Diagram Interactions Annotation of the lines between components Purpose (“uses”, “persist data” etc) Communication style (synchronous, asynchronous, batched etc)
  • 46. Component Diagram Motivation Communicate logical structure within container, higher- level than class diagram, finer than container diagram Good way to understand how the system works and what it does Shows dependencies and deployable units Audience Devs
  • 48. Technology Choices Should technology be included Should diagram be conceptual? Is it important not to include technology? Rules to follow If you know the technology, state it explicitly in the diagram: servers, languages, protocols, message format, communication styles Then answer the “why” questions Draw it like you code it
  • 49. Draw it like you code it Shared components If multiple services use the same component (JAR) there should be box in each Layering Draw the communication paths as they are coded
  • 50. Packaging Most architecture favour some level of layering Presentation Layer Domain Layer Data Source Layer How do you package code? Package by layer Package by feature Package by component
  • 51. Package by layer All components in a layer are packaged together Simple to understand Similar components are grouped together Can impact the team structure Are multiple teams working on the same package? What about communication paths?
  • 52. Package by feature/component By feature All components in that implement a feature are packaged together Vertical slice Can reflect team organization better By component Package each component separately Microservices model
  • 53. Summary Diagrams are important Often ignored Usually some boxes and lines Without technical details What are you trying to say? Diagrams levels Context Container Components