SlideShare a Scribd company logo
Software Design
Principles
for Evolving
Architectures
Firat Atagun
Principles
DRY – Don’t repeat yourself.
Every knowledge in a system must have a single authoritative,
unambiguous representation. – Pragmatic Programmers
YAGNI – You aren’t gonna need it.
Embrace principle of last responsible moment
Postpone decisions until you can’t postpone them any further.
Courage is postponing the decisions tomorrow to tomorrow. – Kent Beck.
KISS- Keep it simple and stupid
Simple keeps focus
Inherent & Accidental Complexity
Good software design hides inherent complexity and avoids accidental
complexity.
Principle of Cohesion
High cohesion & Low Coupling
Removing and reducing coupling creates better design.
Avoid long methods
• Hard to test
• Hard to reason
• Hard to debug
• Hard to change
• Increases coupling, decreases cohesion
SLAP – Single level of abstraction principle and compose method
pattern to the rescue.
Principle of least knowledge (Law of Demeter)
Consumer of a method or a class shouldn’t know the inner implementation
details.
SOLID Principles
Single Responsibility Principles: A class or method should have
only one reason to change.
Open-Closed Principle: A class should be open for extension but
closed for modification.
Liskov Substitution Principle: Classes that implements the same
interface or base class can be substituted.
Interface Segregation Principle: Interfaces should be specialized but
not too special.
Dependency inversion (Inversion of control): Depend on
abstractions not implementations.
Architecture
What is architecture?
Architecture is set of design decisions that are hard to
change.
Shared understanding of a system between the people who
are leading the project.
“Describe me with 4 objects how system works” – Kent Beck.
Avoid big up front design
Time
Understanding
Features based on Value and Architectural impacts
Reversibility
Last Responsible Moment
YAGNI
Minimize Framework and Libraries
Users/ External Quality
Software/ Internal Quality
Design Stamina
Architectural
Patterns
Presentation Layer
Business Layer
Service Layer
Persistence Layer
Closed
Closed
Open
Layered Architecture
Monolith
Feature based Slicing
F1 F2 F3 F4 .. FN
Cross cutting concerns
Microkernel Architecture
Core System
Plugin
Plugin
Plugin
Plugin
Event Driven Architecture
Event Processors
ESB, Queue, Hub
Mediator Topology
Event Driven Architecture
Event processors.
Broker Topology
Microservices Architecture
Layered Event Driven Microkernel MicroService
Agility
Deployment
Testability
Performance
Scalability
Development
Comparison

More Related Content

What's hot (20)

PPT
Use Case Modeling
Venkat Srinivasan
 
PDF
Python for Linux System Administration
vceder
 
PPTX
Object Store V2 Workshop
MuleSoft
 
PPT
Reactive programming with examples
Peter Lawrey
 
PPTX
Software architecture for high traffic website
Tung Nguyen Thanh
 
PDF
Fault tolerance
Gaurav Rawat
 
PPT
Siebel best practices
Satish Vemula
 
PDF
Docker and Kubernetes 101 workshop
Sathish VJ
 
PPTX
Z specification
Falguni Roy
 
PPTX
Spiral Model - Software Development Life Cycle (SDLC)
ACM-KU
 
PDF
Integrating Google Cloud Dataproc with Alluxio for faster performance in the ...
Alluxio, Inc.
 
PDF
Principles of software architecture design
Len Bass
 
PDF
Resilience4j with Spring Boot
Knoldus Inc.
 
PDF
Super Sizing Youtube with Python
didip
 
PDF
Yang in OpenDaylight
Gunjan Patel
 
DOCX
Software engineering model
Manish Chaurasia
 
PPTX
Monitoring on Kubernetes using prometheus
Chandresh Pancholi
 
PPTX
Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...
Lovely Professional University
 
PPTX
APACHE KAFKA / Kafka Connect / Kafka Streams
Ketan Gote
 
PPTX
Near real-time statistical modeling and anomaly detection using Flink!
Flink Forward
 
Use Case Modeling
Venkat Srinivasan
 
Python for Linux System Administration
vceder
 
Object Store V2 Workshop
MuleSoft
 
Reactive programming with examples
Peter Lawrey
 
Software architecture for high traffic website
Tung Nguyen Thanh
 
Fault tolerance
Gaurav Rawat
 
Siebel best practices
Satish Vemula
 
Docker and Kubernetes 101 workshop
Sathish VJ
 
Z specification
Falguni Roy
 
Spiral Model - Software Development Life Cycle (SDLC)
ACM-KU
 
Integrating Google Cloud Dataproc with Alluxio for faster performance in the ...
Alluxio, Inc.
 
Principles of software architecture design
Len Bass
 
Resilience4j with Spring Boot
Knoldus Inc.
 
Super Sizing Youtube with Python
didip
 
Yang in OpenDaylight
Gunjan Patel
 
Software engineering model
Manish Chaurasia
 
Monitoring on Kubernetes using prometheus
Chandresh Pancholi
 
Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...
Lovely Professional University
 
APACHE KAFKA / Kafka Connect / Kafka Streams
Ketan Gote
 
Near real-time statistical modeling and anomaly detection using Flink!
Flink Forward
 

Viewers also liked (20)

PPT
Six Principles of Software Design to Empower Scientists
David De Roure
 
PPTX
NoSQL Introduction, Theory, Implementations
Firat Atagun
 
PPTX
Transforming Healthcare with Technology
Firat Atagun
 
PDF
Evolving Architecture - Further
leo lapworth
 
PDF
Applying software design principles in practice
Ganesh Samarthyam
 
PPTX
Software design principles
Md.Mojibul Hoque
 
PPT
Go OO! - Real-life Design Patterns in PHP 5
Stephan Schmidt
 
PPTX
Visual Studio ❤ JavaScript
Robert MacLean
 
PPTX
DevConf Survival Guide
Robert MacLean
 
PDF
Refactoring
Artem Tabalin
 
PPT
System Analysis and Design
Nderitu Muriithi
 
PPT
Goals Of Software Design - The main goals
parag
 
PPTX
MS Cloud Day - Cloud Computing – A Crash Course for Architects
Spiffy
 
PPT
What if you're the SaaS?
Alistair Croll
 
PPSX
Evolving an Application Architecture
Garret Fick
 
PPTX
The state of testing @ Microsoft
Robert MacLean
 
PPTX
The changing HR landscape
Rob Scott
 
PPT
Impact Of The Cloud For IT Managers
Simon Guest
 
PDF
Hexagonal
jglobal
 
PPSX
System Analysis & Design - 2
Gagan Deep
 
Six Principles of Software Design to Empower Scientists
David De Roure
 
NoSQL Introduction, Theory, Implementations
Firat Atagun
 
Transforming Healthcare with Technology
Firat Atagun
 
Evolving Architecture - Further
leo lapworth
 
Applying software design principles in practice
Ganesh Samarthyam
 
Software design principles
Md.Mojibul Hoque
 
Go OO! - Real-life Design Patterns in PHP 5
Stephan Schmidt
 
Visual Studio ❤ JavaScript
Robert MacLean
 
DevConf Survival Guide
Robert MacLean
 
Refactoring
Artem Tabalin
 
System Analysis and Design
Nderitu Muriithi
 
Goals Of Software Design - The main goals
parag
 
MS Cloud Day - Cloud Computing – A Crash Course for Architects
Spiffy
 
What if you're the SaaS?
Alistair Croll
 
Evolving an Application Architecture
Garret Fick
 
The state of testing @ Microsoft
Robert MacLean
 
The changing HR landscape
Rob Scott
 
Impact Of The Cloud For IT Managers
Simon Guest
 
Hexagonal
jglobal
 
System Analysis & Design - 2
Gagan Deep
 
Ad

Similar to Software design principles for evolving architectures (20)

PDF
Clean architecturebookreport
Halil Co?gun
 
PDF
Object Oriented Design Principles
Thang Tran Duc
 
PPTX
Architecture Principles CodeStock
Steve Barbour
 
PDF
Architecture fundamentals
Reda Hmeid MBCS
 
PDF
Software design - Write solid software with the ideal chalk
Alejandro Claro Mosqueda
 
PPTX
Architecture Design
Saqib Raza
 
PDF
Modern Agile Software Architecture
Kannan Durairaj
 
PPT
Evolutionary Architecture And Design
Naresh Jain
 
PDF
Applying Design Principles in Practice
Ganesh Samarthyam
 
PPT
Best practices for agile design
Igor Moochnick
 
KEY
SOLID Design Principles
Samuel Breed
 
PPT
Software_Archi-1.ppt
FaizaZulkifal
 
PPT
04 designing architectures
Majong DevJfu
 
PPT
3 analysis and design overview
Châu Thanh Chương
 
PDF
O.Savchenko FWDays workshop Software Architecture
Alexandr Savchenko
 
PPTX
06 fse design
Mohesh Chandran
 
PPT
Cs 1023 lec 4 (week 1)
stanbridge
 
PPT
Agile Software Architecture
cesarioramos
 
PDF
Most valuable software design principles
Jeroen Hildering
 
PPT
Arch factory - Agile Design: Best Practices
Igor Moochnick
 
Clean architecturebookreport
Halil Co?gun
 
Object Oriented Design Principles
Thang Tran Duc
 
Architecture Principles CodeStock
Steve Barbour
 
Architecture fundamentals
Reda Hmeid MBCS
 
Software design - Write solid software with the ideal chalk
Alejandro Claro Mosqueda
 
Architecture Design
Saqib Raza
 
Modern Agile Software Architecture
Kannan Durairaj
 
Evolutionary Architecture And Design
Naresh Jain
 
Applying Design Principles in Practice
Ganesh Samarthyam
 
Best practices for agile design
Igor Moochnick
 
SOLID Design Principles
Samuel Breed
 
Software_Archi-1.ppt
FaizaZulkifal
 
04 designing architectures
Majong DevJfu
 
3 analysis and design overview
Châu Thanh Chương
 
O.Savchenko FWDays workshop Software Architecture
Alexandr Savchenko
 
06 fse design
Mohesh Chandran
 
Cs 1023 lec 4 (week 1)
stanbridge
 
Agile Software Architecture
cesarioramos
 
Most valuable software design principles
Jeroen Hildering
 
Arch factory - Agile Design: Best Practices
Igor Moochnick
 
Ad

Recently uploaded (20)

PDF
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
PDF
Empower Your Tech Vision- Why Businesses Prefer to Hire Remote Developers fro...
logixshapers59
 
PDF
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
PPTX
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
PDF
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
PDF
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
PPTX
Tally software_Introduction_Presentation
AditiBansal54083
 
PPTX
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
PPTX
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
PDF
How to Hire AI Developers_ Step-by-Step Guide in 2025.pdf
DianApps Technologies
 
PDF
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
PDF
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
PPTX
Transforming Mining & Engineering Operations with Odoo ERP | Streamline Proje...
SatishKumar2651
 
PPTX
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 
PDF
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
PPTX
Finding Your License Details in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
PDF
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
PDF
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
PPTX
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
Empower Your Tech Vision- Why Businesses Prefer to Hire Remote Developers fro...
logixshapers59
 
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
Tally software_Introduction_Presentation
AditiBansal54083
 
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
How to Hire AI Developers_ Step-by-Step Guide in 2025.pdf
DianApps Technologies
 
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
Transforming Mining & Engineering Operations with Odoo ERP | Streamline Proje...
SatishKumar2651
 
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
Finding Your License Details in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 

Software design principles for evolving architectures