SlideShare une entreprise Scribd logo
1  sur  47
Beautiful Structure
Chris Chedgey
Structure101
• Map for developers
• Phased testing and
release
• Divide work across
organizations, teams,
individuals
• Modularity: interfaces
+ info hiding
• Reuse or replace
subsystems or layers
• Impact/regression
control
• Help new developers
• …
Aspects of Structure
• Containment
Aspects of Structure
• Containment
Aspects of Structure
• Containment
• Containment
Aspects of Structure
• Containment
– Cyclomatic Complexity
Aspects of Structure
Aspects of Structure
• Containment
• Dependence
Aspects of Structure
• Containment
• Dependence  Containment
Aspects of Structure
• Containment
• Dependence  Containment
Aspects of Structure
• Containment
• Dependence  Containment
Aspects of Structure
• Containment
• Dependence  Containment
Aspects of Structure
• Containment
• Dependence  Containment
Aspects of Structure
• Containment
• Dependence  Containment
Aspects of Structure
• Containment
• Dependence  Containment
Aspects of Structure
• Containment
• Dependence  Containment
Aspects of Structure
• Containment
• Dependence  Containment
• Levels
Aspects of Structure
• Containment
• Dependence  Containment
• Levels
Aspects of Structure
• Containment
• Dependence  Containment
• Levels
Aspects of Structure
• Containment
• Dependence  Containment
• Levels
Aspects of Structure
• Containment
• Dependence  Containment
• Levels
Aspects of Structure
• Containment
• Dependence  Containment
• Levels
Aspects of Structure
• Containment
• Dependence  Containment
• Levels
• Cumulative Dependency (CCD)
Aspects of Structure
• Containment
• Dependence  Containment
• Levels
• Cumulative Dependency (CCD)
• Locality of dependency
Aspects of Structure
• Containment
• Dependence  Containment
• Levels
• Cumulative Dependency (CCD)
• Locality of dependency
Aspects of Structure
• Containment
• Dependence  Containment
• Levels
• Cumulative Dependency (CCD)
• Locality of dependency
Aspects of Structure
• Containment
• Dependence  Containment
• Levels
• Cumulative Dependency (CCD)
• Locality of dependency
Aspects of Structure
• Containment
• Dependence  Containment
• Levels
• Cumulative Dependency (CCD)
• Locality of dependency
Structural Beauty
• Enough containment
Structural Beauty
• Enough containment
• Acyclic container dependencies
Structural Beauty
• Enough containment
• Acyclic container dependencies
CCD = (1*1) + (11*2) + (7*3) + …
~ 164
CCD = 362 = 1,296 !!!
Structural Beauty
• Enough containment
• Acyclic container dependencies
• Dependencies more local
– Higher cohesion
– Lower coupling
Structural Beauty
• Enough containment
• Acyclic container dependencies
• Dependencies more local
• Narrower interfaces
– Implementation hiding
Structural Beauty
• Enough containment
• Acyclic container dependencies
• Dependencies more local
• Narrower interfaces
• Lower level dependencies
– Co-location based on co-
dependence
Structural Beauty
• Enough containment
• Acyclic container dependencies
• More local dependencies
• Narrower interfaces
• Lower level dependencies
• Restructuring
– Recompose first
– Refactor second
Structural Beauty
• Enough containment
• Acyclic container dependencies
• More local dependencies
• Narrower interfaces
• Lower level dependencies
• Restructuring
– Restructure first
– Refactor second
DSM - Dependency Structure Matrix
LSM – Levelized Structure Map
You’re going to need a bigger tool!
• That parses code
• Hierarchical dependency model
• Malleable
• SonarGraph
• Lattix
• IntelliJ Idea Ultimate
• Structure101
Hierarchical
dependency graph
Interactive
Thank you!
@chedgey
chris@structure101.com
www.structure101.com

Contenu connexe

En vedette

Gfpi f-019 guia de aprendizaje 01 tda orientar fpi
Gfpi f-019 guia de aprendizaje 01 tda orientar fpiGfpi f-019 guia de aprendizaje 01 tda orientar fpi
Gfpi f-019 guia de aprendizaje 01 tda orientar fpi
lisbet bravo
 
JULIOPARI - Elaborando un Plan de Negocios
JULIOPARI - Elaborando un Plan de NegociosJULIOPARI - Elaborando un Plan de Negocios
JULIOPARI - Elaborando un Plan de Negocios
Julio Pari
 
Actualiteiten ICT Contracten en Partnerships (2012)
Actualiteiten ICT Contracten en Partnerships (2012)Actualiteiten ICT Contracten en Partnerships (2012)
Actualiteiten ICT Contracten en Partnerships (2012)
Advocatenkantoor LEGALZ
 
1. estructura curricular
1. estructura curricular1. estructura curricular
1. estructura curricular
jhordanperilla
 

En vedette (20)

Como hacer un plan de negocios
Como hacer un plan de negociosComo hacer un plan de negocios
Como hacer un plan de negocios
 
Evidence: I can’t believe it.ENGLISH DOT WORKS 2. semana 3 actividad 1.SENA.
Evidence: I can’t believe it.ENGLISH DOT WORKS 2. semana 3 actividad 1.SENA.Evidence: I can’t believe it.ENGLISH DOT WORKS 2. semana 3 actividad 1.SENA.
Evidence: I can’t believe it.ENGLISH DOT WORKS 2. semana 3 actividad 1.SENA.
 
Evidence: Memorable moments.ENGLISH DOT WORKS 2. SENA. semana 2 actividad 2.
Evidence: Memorable moments.ENGLISH DOT WORKS 2. SENA. semana 2 actividad 2.Evidence: Memorable moments.ENGLISH DOT WORKS 2. SENA. semana 2 actividad 2.
Evidence: Memorable moments.ENGLISH DOT WORKS 2. SENA. semana 2 actividad 2.
 
Evidence: Planning my trip. ENGLISH DOT WORKS 2. SENA. semana 4 actividad 1.
Evidence: Planning my trip. ENGLISH DOT WORKS 2. SENA. semana 4 actividad 1.Evidence: Planning my trip. ENGLISH DOT WORKS 2. SENA. semana 4 actividad 1.
Evidence: Planning my trip. ENGLISH DOT WORKS 2. SENA. semana 4 actividad 1.
 
3. Your next holiday destination ACTIVIDAD 3 SEMANA 3 ENGLISH DOT WORKS 2.
3. Your next holiday destination ACTIVIDAD 3 SEMANA 3 ENGLISH DOT WORKS 2.3. Your next holiday destination ACTIVIDAD 3 SEMANA 3 ENGLISH DOT WORKS 2.
3. Your next holiday destination ACTIVIDAD 3 SEMANA 3 ENGLISH DOT WORKS 2.
 
C:\Fakepath\Christie
C:\Fakepath\ChristieC:\Fakepath\Christie
C:\Fakepath\Christie
 
Evidence: What did I do yesterday?.ENGLISH DOT WORKS 2. SENA. SEMANA 2 ACTIVI...
Evidence: What did I do yesterday?.ENGLISH DOT WORKS 2. SENA. SEMANA 2 ACTIVI...Evidence: What did I do yesterday?.ENGLISH DOT WORKS 2. SENA. SEMANA 2 ACTIVI...
Evidence: What did I do yesterday?.ENGLISH DOT WORKS 2. SENA. SEMANA 2 ACTIVI...
 
Gfpi f-019 guia de aprendizaje 01 tda orientar fpi
Gfpi f-019 guia de aprendizaje 01 tda orientar fpiGfpi f-019 guia de aprendizaje 01 tda orientar fpi
Gfpi f-019 guia de aprendizaje 01 tda orientar fpi
 
JULIOPARI - Elaborando un Plan de Negocios
JULIOPARI - Elaborando un Plan de NegociosJULIOPARI - Elaborando un Plan de Negocios
JULIOPARI - Elaborando un Plan de Negocios
 
Tears In The Rain
Tears In The RainTears In The Rain
Tears In The Rain
 
Fichero de actividades
Fichero de actividadesFichero de actividades
Fichero de actividades
 
Speciale 2. udgave
Speciale 2. udgaveSpeciale 2. udgave
Speciale 2. udgave
 
Libro de-mantenimiento-industrial
Libro de-mantenimiento-industrialLibro de-mantenimiento-industrial
Libro de-mantenimiento-industrial
 
Primer Paquete Económico 2017 Zacatecas (2/9)
Primer Paquete Económico 2017 Zacatecas (2/9)Primer Paquete Económico 2017 Zacatecas (2/9)
Primer Paquete Económico 2017 Zacatecas (2/9)
 
Actualiteiten ICT Contracten en Partnerships (2012)
Actualiteiten ICT Contracten en Partnerships (2012)Actualiteiten ICT Contracten en Partnerships (2012)
Actualiteiten ICT Contracten en Partnerships (2012)
 
"Protección de la salud mental luego del terremoto y tsunami del 27 de febrer...
"Protección de la salud mental luego del terremoto y tsunami del 27 de febrer..."Protección de la salud mental luego del terremoto y tsunami del 27 de febrer...
"Protección de la salud mental luego del terremoto y tsunami del 27 de febrer...
 
PMP Sonora Saludable 2010 2015
PMP Sonora Saludable 2010   2015  PMP Sonora Saludable 2010   2015
PMP Sonora Saludable 2010 2015
 
De impact van adhd
De impact van adhdDe impact van adhd
De impact van adhd
 
1. estructura curricular
1. estructura curricular1. estructura curricular
1. estructura curricular
 
Onderzoeksrapport acrs v3.0_definitief
Onderzoeksrapport acrs v3.0_definitiefOnderzoeksrapport acrs v3.0_definitief
Onderzoeksrapport acrs v3.0_definitief
 

Similaire à Beautiful Structure

The Website Resiliency Imperative
The Website Resiliency ImperativeThe Website Resiliency Imperative
The Website Resiliency Imperative
Distil Networks
 
Docker in the_real_world-overview
Docker in the_real_world-overviewDocker in the_real_world-overview
Docker in the_real_world-overview
James Schorr
 
REST - Representational state transfer
REST - Representational state transferREST - Representational state transfer
REST - Representational state transfer
Tricode (part of Dept)
 
The Dependency Injection - Sorin Damian, Software Developer@RomSoft
The Dependency Injection - Sorin Damian, Software Developer@RomSoftThe Dependency Injection - Sorin Damian, Software Developer@RomSoft
The Dependency Injection - Sorin Damian, Software Developer@RomSoft
RomSoft SRL
 

Similaire à Beautiful Structure (20)

The Website Resiliency Imperative
The Website Resiliency ImperativeThe Website Resiliency Imperative
The Website Resiliency Imperative
 
Docker in the_real_world-overview
Docker in the_real_world-overviewDocker in the_real_world-overview
Docker in the_real_world-overview
 
Microservices Practitioner Summit Jan '15 - Microservice Ecosystems At Scale ...
Microservices Practitioner Summit Jan '15 - Microservice Ecosystems At Scale ...Microservices Practitioner Summit Jan '15 - Microservice Ecosystems At Scale ...
Microservices Practitioner Summit Jan '15 - Microservice Ecosystems At Scale ...
 
REST - Representational state transfer
REST - Representational state transferREST - Representational state transfer
REST - Representational state transfer
 
Domain Driven Design - garajco Education 2017
Domain Driven Design - garajco Education 2017Domain Driven Design - garajco Education 2017
Domain Driven Design - garajco Education 2017
 
Architecture Principles CodeStock
Architecture Principles CodeStock Architecture Principles CodeStock
Architecture Principles CodeStock
 
SOA Modeling Patterns - SOMF
SOA Modeling Patterns - SOMFSOA Modeling Patterns - SOMF
SOA Modeling Patterns - SOMF
 
Iscram 2008 presentation
Iscram 2008 presentationIscram 2008 presentation
Iscram 2008 presentation
 
Rainbows, Unicorns, and other Fairy Tales in the Land of Serverless Dreams
Rainbows, Unicorns, and other Fairy Tales in the Land of Serverless DreamsRainbows, Unicorns, and other Fairy Tales in the Land of Serverless Dreams
Rainbows, Unicorns, and other Fairy Tales in the Land of Serverless Dreams
 
Rediscovering modularity - JavaOne Brazil 2012
Rediscovering modularity - JavaOne Brazil 2012Rediscovering modularity - JavaOne Brazil 2012
Rediscovering modularity - JavaOne Brazil 2012
 
Concurrency at Scale: Evolution to Micro-Services
Concurrency at Scale:  Evolution to Micro-ServicesConcurrency at Scale:  Evolution to Micro-Services
Concurrency at Scale: Evolution to Micro-Services
 
Digital Transformation with Kubernetes, Containers, and Microservices
Digital Transformation with Kubernetes, Containers, and MicroservicesDigital Transformation with Kubernetes, Containers, and Microservices
Digital Transformation with Kubernetes, Containers, and Microservices
 
The Rise of NoSQL and Polyglot Persistence
The Rise of NoSQL and Polyglot PersistenceThe Rise of NoSQL and Polyglot Persistence
The Rise of NoSQL and Polyglot Persistence
 
Architecture - December 2013 - Avinash Ramineni, Shekhar Veumuri
Architecture   - December 2013 - Avinash Ramineni, Shekhar VeumuriArchitecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri
Architecture - December 2013 - Avinash Ramineni, Shekhar Veumuri
 
The Dependency Injection - Sorin Damian, Software Developer@RomSoft
The Dependency Injection - Sorin Damian, Software Developer@RomSoftThe Dependency Injection - Sorin Damian, Software Developer@RomSoft
The Dependency Injection - Sorin Damian, Software Developer@RomSoft
 
Aliaksei Bahachuk JavaScript and solution architecture
Aliaksei Bahachuk   JavaScript and solution architectureAliaksei Bahachuk   JavaScript and solution architecture
Aliaksei Bahachuk JavaScript and solution architecture
 
SOA and DevOps v0.1
SOA and DevOps v0.1SOA and DevOps v0.1
SOA and DevOps v0.1
 
Retrofitting Architecture - Oredev 2012
Retrofitting Architecture - Oredev 2012Retrofitting Architecture - Oredev 2012
Retrofitting Architecture - Oredev 2012
 
Service Architectures at Scale
Service Architectures at ScaleService Architectures at Scale
Service Architectures at Scale
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 

Plus de Chris Chedgey

Bridging the Divide between Architecture and Code (Germany JUGs version)
Bridging the Divide between Architecture and Code (Germany JUGs version)Bridging the Divide between Architecture and Code (Germany JUGs version)
Bridging the Divide between Architecture and Code (Germany JUGs version)
Chris Chedgey
 
Rediscovering Modularity - Java User Groups, Stuttgart, Munich, Nuremberg, No...
Rediscovering Modularity - Java User Groups, Stuttgart, Munich, Nuremberg, No...Rediscovering Modularity - Java User Groups, Stuttgart, Munich, Nuremberg, No...
Rediscovering Modularity - Java User Groups, Stuttgart, Munich, Nuremberg, No...
Chris Chedgey
 
Restructuring- improving the modularity of an existing code-base
Restructuring- improving the modularity of an existing code-baseRestructuring- improving the modularity of an existing code-base
Restructuring- improving the modularity of an existing code-base
Chris Chedgey
 

Plus de Chris Chedgey (8)

Monolith to Modular - The devil in the dependencies
Monolith to Modular - The devil in the dependenciesMonolith to Modular - The devil in the dependencies
Monolith to Modular - The devil in the dependencies
 
Bridging the Divide between Architecture and Code (Germany JUGs version)
Bridging the Divide between Architecture and Code (Germany JUGs version)Bridging the Divide between Architecture and Code (Germany JUGs version)
Bridging the Divide between Architecture and Code (Germany JUGs version)
 
Bridging the divide between architecture and code (US version)
Bridging the divide between architecture and code (US version)Bridging the divide between architecture and code (US version)
Bridging the divide between architecture and code (US version)
 
Rediscovering Modularity - .NET Edition
Rediscovering Modularity - .NET EditionRediscovering Modularity - .NET Edition
Rediscovering Modularity - .NET Edition
 
Rediscovering Modularity - Java User Groups, Stuttgart, Munich, Nuremberg, No...
Rediscovering Modularity - Java User Groups, Stuttgart, Munich, Nuremberg, No...Rediscovering Modularity - Java User Groups, Stuttgart, Munich, Nuremberg, No...
Rediscovering Modularity - Java User Groups, Stuttgart, Munich, Nuremberg, No...
 
Rediscovering Modularity - JFall 2012 version
Rediscovering Modularity - JFall 2012 versionRediscovering Modularity - JFall 2012 version
Rediscovering Modularity - JFall 2012 version
 
Rediscovering Modularity
Rediscovering ModularityRediscovering Modularity
Rediscovering Modularity
 
Restructuring- improving the modularity of an existing code-base
Restructuring- improving the modularity of an existing code-baseRestructuring- improving the modularity of an existing code-base
Restructuring- improving the modularity of an existing code-base
 

Dernier

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Dernier (20)

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 

Beautiful Structure

Notes de l'éditeur

  1. You cannot do structure in the IDE alone – structure emerges from the code