SlideShare a Scribd company logo
Software
Architecture

Stories
Guille Polito
@guillep
CNRS - UMR9189
CRIStAL
Enterprise
Architectures
UI Services
Business Logic DTO
DAO…
What I feel about
Enterprise Architectures
UI Services
Business Logic DTO
DAO…
The Lego System
The Stud-and-Tube coupling
Lego AS, 1958
6	bricks	=>	915,103,765	combina6ons
Not so Lego System…
UI Services
Business Logic DTO
DAO…
Patterns as
small-scale
architectures
Patterns as tools
Patterns as recipes
Architecture crafting
• understand the architecture
• modify the architecture
• make your own architecture
Pattern cooking
Three stories

of
Pattern cookingIceWorkingCopy
IceCommit
IceBranch
LGitCommit
MCVersion
[	…a	task…	]	schedule
runner	schedule:	[…a	task…]
sync async …
Presenter Adapter Widget
Chapter I: Iceberg
Let’s talk about layers
IceWorkingCopy
IceCommit
IceBranch
LGitCommit
MCVersion
Chapter I: Iceberg
IceWorkingCopy
IceCommit
IceBranch
LGitCommit
MCVersion
High level: user Low level: backend
IceWorkingCopy
IceCommit
IceBranch
LGitCommit
MCVersion
Chapter I: Iceberg
High level: user Low level: backend
IceWorkingCopy
IceCommit
IceBranch
LGitCommit
MCVersion
Chapter I: Iceberg
Chapter I: Iceberg
High level: user Low level: backend
IceWorkingCopy
IceCommit
IceBranch
LGitCommit
MCVersion
Layers separate
levels of
abstraction
High level: user Low level: backend
IceWorkingCopy
IceCommit
IceBranch
LGitCommit
MCVersion
Chapter I: Iceberg
Chapter I: Iceberg
High level: user Low level: backend
IceWorkingCopy
IceCommit
IceBranch
LGitCommit
MCVersion
Chapter I: Iceberg
High level: user Low level: backend
IceWorkingCopy
IceCommit
IceBranch
LGitCommit
MCVersion
Isolate
message-crossing
points
But several layers,
there will be…
Presenter Adapter Widget
Chapter II: Spec
Chapter II: Spec
Presenter Adapter Widget
Chapter II: Spec
Presenter Adapter Widget
user-level backend
Morphic
Chapter II: Spec
Presenter Adapter Widget
user-level backend
user-level
client!
Morphic
Chapter II: Spec
Presenter Adapter Widget
user-level backend
user-level
client!
client!
user-level backend
user-level
Morphic
Chapter II: Spec
Presenter Adapter Widget
Loose coupling
via

event-messages
Morphic
Chapter II: Spec
Presenter Adapter Widget
user-level backend
user-level
client!
Morphic
Chapter II: Spec
transient
stateful
user-level backend
user-level
Presenter Adapter Widget
client!
Morphic
Chapter II: Spec
Presenter Adapter Widget
transient
stateful
user-level backend
user-leveluser!
Layers separate
state
management
Separate components
only they shall not…
Chapter III: TaskIt
[	…a	task…	]	schedule
runner	schedule:	[…a	task…]
sync async …
Chapter III: TaskIt
[	…a	task…	]	schedule
and eventually execute
[	…a	task…	]	schedule
and eventually execute
but how?
Chapter III: TaskIt
[	…a	task…	]	schedule
runner	schedule:	[…a	task…]
sync async …
Convenience
Explicit
Chapter III: TaskIt
[	…a	task…	]	schedule
runner	schedule:	[…a	task…]
sync async …
Convenience
Control
Chapter III: TaskIt
**Thin** convenience layers
on top of explicit layers
Three lessons of
Architecture crafting
separate by levels of abstraction
isolate points of failure
separate stateful from stateless
be explicit, as less magic as possible
Guille Polito
@guillep
CNRS - UMR9189
CRIStAL

More Related Content

KEY
You can build anything (Anita Borg 2011)
PDF
Minko - Windows App Meetup Nov. 2013
PPTX
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.es
PPTX
Unleashing WebGL & WebAudio with babylon.js
PPTX
NGF2014 - Create a 3d game with webgl and babylon.js
PPTX
Virtual Machine LAMP on Windows
PDF
HTML5: New UI Library for Games - Chad Austin
PDF
Essential parts to implement own Ozone backend
You can build anything (Anita Borg 2011)
Minko - Windows App Meetup Nov. 2013
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.es
Unleashing WebGL & WebAudio with babylon.js
NGF2014 - Create a 3d game with webgl and babylon.js
Virtual Machine LAMP on Windows
HTML5: New UI Library for Games - Chad Austin
Essential parts to implement own Ozone backend

What's hot (13)

ODP
Introduction to threejs
PPT
Fast rendering with starling
PDF
Intro React Server-Side Rendering
PDF
Embracing Serverless with Google
PDF
Migrating from JHBuild to BuildStream (GUADEC 2018)
PDF
xPad - Building Simple Tablet OS with Gtk/WebKit
PDF
PPTX
Boulder JS meet up presentation for April 16
PDF
Front-end development automation with Grunt
PPTX
Build your own RasPiTV with Node.js & Socket.io
PPTX
Maurizio Mangione - Get the best out of your PWA with Workbox JS - Codemotion...
PPTX
Run C++ as serverless with GCP Cloud Functions
Introduction to threejs
Fast rendering with starling
Intro React Server-Side Rendering
Embracing Serverless with Google
Migrating from JHBuild to BuildStream (GUADEC 2018)
xPad - Building Simple Tablet OS with Gtk/WebKit
Boulder JS meet up presentation for April 16
Front-end development automation with Grunt
Build your own RasPiTV with Node.js & Socket.io
Maurizio Mangione - Get the best out of your PWA with Workbox JS - Codemotion...
Run C++ as serverless with GCP Cloud Functions
Ad

Similar to Software Architecture Stories (20)

PPTX
L02 Architecture
PPTX
Software Architecture: introduction to the abstraction
PDF
Software architecture, Patterns for Scale
PPTX
Software Architecture and Design - An Overview
PPT
02archintro
PPTX
Architecture Principles CodeStock
PPTX
Session #5: Architecture Without Big Design Up Front
PPT
Lecture-7.ppt
PPTX
Software architectures
PPT
Cs 1023 lec 13 web (week 4)
PDF
Software Architecture: Introduction to the Abstraction
PDF
Lecture-1-Introduction.pdf
ODP
Node.js architecture (EN)
ODP
Software Patterns
PPT
session on pattern oriented software architecture
PDF
Software Architecture: views and viewpoints
PPTX
Layer architecture of ios (1)
PPTX
Software architecting at scale, a practical walkthrough
PDF
Software architecture, methodologies and design
PPTX
software engineering Architecture and design Unit 3.pptx
L02 Architecture
Software Architecture: introduction to the abstraction
Software architecture, Patterns for Scale
Software Architecture and Design - An Overview
02archintro
Architecture Principles CodeStock
Session #5: Architecture Without Big Design Up Front
Lecture-7.ppt
Software architectures
Cs 1023 lec 13 web (week 4)
Software Architecture: Introduction to the Abstraction
Lecture-1-Introduction.pdf
Node.js architecture (EN)
Software Patterns
session on pattern oriented software architecture
Software Architecture: views and viewpoints
Layer architecture of ios (1)
Software architecting at scale, a practical walkthrough
Software architecture, methodologies and design
software engineering Architecture and design Unit 3.pptx
Ad

More from ESUG (20)

PDF
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
PDF
Micromaid: A simple Mermaid-like chart generator for Pharo
PDF
Directing Generative AI for Pharo Documentation
PDF
Even Lighter Than Lightweiht: Augmenting Type Inference with Primitive Heuris...
PDF
Composing and Performing Electronic Music on-the-Fly with Pharo and Coypu
PDF
Gamifying Agent-Based Models in Cormas: Towards the Playable Architecture for...
PDF
Analysing Python Machine Learning Notebooks with Moose
PDF
FASTTypeScript metamodel generation using FAST traits and TreeSitter project
PDF
Migrating Katalon Studio Tests to Playwright with Model Driven Engineering
PDF
Package-Aware Approach for Repository-Level Code Completion in Pharo
PDF
Evaluating Benchmark Quality: a Mutation-Testing- Based Methodology
PDF
An Analysis of Inline Method Refactoring
PDF
Identification of unnecessary object allocations using static escape analysis
PDF
Control flow-sensitive optimizations In the Druid Meta-Compiler
PDF
Clean Blocks (IWST 2025, Gdansk, Poland)
PDF
Encoding for Objects Matters (IWST 2025)
PDF
Challenges of Transpiling Smalltalk to JavaScript
PDF
Immersive experiences: what Pharo users do!
PDF
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
PDF
Cavrois - an Organic Window Management (ESUG 2025)
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
Micromaid: A simple Mermaid-like chart generator for Pharo
Directing Generative AI for Pharo Documentation
Even Lighter Than Lightweiht: Augmenting Type Inference with Primitive Heuris...
Composing and Performing Electronic Music on-the-Fly with Pharo and Coypu
Gamifying Agent-Based Models in Cormas: Towards the Playable Architecture for...
Analysing Python Machine Learning Notebooks with Moose
FASTTypeScript metamodel generation using FAST traits and TreeSitter project
Migrating Katalon Studio Tests to Playwright with Model Driven Engineering
Package-Aware Approach for Repository-Level Code Completion in Pharo
Evaluating Benchmark Quality: a Mutation-Testing- Based Methodology
An Analysis of Inline Method Refactoring
Identification of unnecessary object allocations using static escape analysis
Control flow-sensitive optimizations In the Druid Meta-Compiler
Clean Blocks (IWST 2025, Gdansk, Poland)
Encoding for Objects Matters (IWST 2025)
Challenges of Transpiling Smalltalk to JavaScript
Immersive experiences: what Pharo users do!
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
Cavrois - an Organic Window Management (ESUG 2025)

Recently uploaded (20)

PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Unlocking AI with Model Context Protocol (MCP)
PPT
Teaching material agriculture food technology
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Approach and Philosophy of On baking technology
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
cuic standard and advanced reporting.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Unlocking AI with Model Context Protocol (MCP)
Teaching material agriculture food technology
NewMind AI Weekly Chronicles - August'25 Week I
The Rise and Fall of 3GPP – Time for a Sabbatical?
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
20250228 LYD VKU AI Blended-Learning.pptx
Approach and Philosophy of On baking technology
Network Security Unit 5.pdf for BCA BBA.
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Dropbox Q2 2025 Financial Results & Investor Presentation
Per capita expenditure prediction using model stacking based on satellite ima...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
cuic standard and advanced reporting.pdf
Chapter 3 Spatial Domain Image Processing.pdf

Software Architecture Stories