SlideShare a Scribd company logo
Software Design Principles Navigator Internal Workshop
Old Story Clean Simple Elegant Rigid Fragile Immobile Change with Requirement Out-of-Control Dependencies
Solution Software Development = Complexity Management Change with Requirement and   Follow  Principles OCP LSP DIP ISP Clean Simple Elegant Huge but still Clean Simple Elegant
Open Close Principle (OCP) A module should be Open for Extension but Close for Modification Solution: Polymorphism
Liskov Substitution Principle (LSP) Subclasses should be Substitutable for their Base Classes
Liskov Substitution Principle (LSP) Root Cause: Is-A Fails Solution: Design by Contract Method pre-condition in subclass shouldn’t be stronger than in base class Method post-condition in subclass shouldn’t be weaker than in base class
Dependency Inversion Principle (DIP) Depend upon Abstractions. Don't depend upon Concretions. The Last Mile: Where to instantiate the concrete class?
Interface Segregation Principle (ISP) Many client specific interfaces are better than one general purpose interface
Summary Less Responsibilities in a Interface/Class Dependencies on Outside Classes More Abstraction to act as Dependency Firewall Small Single-Responsibility Class to Encapsulate Change Manage Complexity = Manage Dependencies Clean Simple Elegant Clean Simple Elegant Clean Simple Elegant Clean Simple Elegant Clean Simple Elegant
More Principles Package Cohesion Principles REP: Release Reuse Equivalency Principle CCP: Common Closure Principle CRP: Common Reuse Principle Package Coupling Principles ACP: Acyclic Dependencies Principle SDP: Stable Dependencies Principle SAP: Stable Abstractions Principle
Thank you

More Related Content

PPT
Six Principles of Software Design to Empower Scientists
PPTX
Software design principles
PDF
Applying software design principles in practice
PPTX
NoSQL Introduction, Theory, Implementations
PPTX
Software design principles for evolving architectures
PDF
Solid principles
PPTX
Cqrs and Event Sourcing Intro For Developers
PDF
Code Craftsmanship Checklist
Six Principles of Software Design to Empower Scientists
Software design principles
Applying software design principles in practice
NoSQL Introduction, Theory, Implementations
Software design principles for evolving architectures
Solid principles
Cqrs and Event Sourcing Intro For Developers
Code Craftsmanship Checklist

What's hot (20)

PPTX
ADUF - Adaptable Design Up Front
PPT
Microservices
PDF
Clean Code .Net Cheetsheets
PPTX
GRASP Principles
PPTX
PPT
Aspect Oriented Programming
PDF
Key principle of software architecture
PDF
Clean code-v2.2
PPTX
Soild principles
PPTX
From catalogues to models: transitioning from existing requirements technique...
PPT
Final grasp ASE
PPTX
Tdd 4 everyone full version
PPTX
An Event-Driven Approach for the Separation of Concerns
PDF
Refactoring for Software Design Smells
PPT
Principle of OOD
PDF
Solid OO & Clean Coding is essential to successful Agile development
PPTX
Adaptable Designs for Agile Software Development
PPTX
The Role of the Software Architect
PDF
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
ADUF - Adaptable Design Up Front
Microservices
Clean Code .Net Cheetsheets
GRASP Principles
Aspect Oriented Programming
Key principle of software architecture
Clean code-v2.2
Soild principles
From catalogues to models: transitioning from existing requirements technique...
Final grasp ASE
Tdd 4 everyone full version
An Event-Driven Approach for the Separation of Concerns
Refactoring for Software Design Smells
Principle of OOD
Solid OO & Clean Coding is essential to successful Agile development
Adaptable Designs for Agile Software Development
The Role of the Software Architect
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Ad

Viewers also liked (6)

PPT
Cobit5 introduction
PPT
RUP Basics
PPT
A Glance At Scrum
PPTX
Review of code review
PPT
Groovy Intro
PPT
kaizen presentation in 5th national kaizen competition at CICU ludhiana-Punj...
Cobit5 introduction
RUP Basics
A Glance At Scrum
Review of code review
Groovy Intro
kaizen presentation in 5th national kaizen competition at CICU ludhiana-Punj...
Ad

Similar to Software Design Principles (20)

PPT
SOLID principles-Present
PPTX
Software Design Principles (SOLID)
PPTX
Solid as OOP abstraction
PPTX
SOLID Principles in OOPS ooooooooo.pptx
PDF
Android architecture
PPT
DesignPrinciples-and-DesignPatterns
PDF
Object Oriented Programming Ch3 SRP, DIP, ISP
PPTX
OO Design Principles
PDF
Understanding SOLID Principles in OOP programming
PPTX
SOLID_Principles_Explained_Presentation.pptx
PPTX
CodeCamp Iasi 10 march 2012 - Scratching-SOLID
PPTX
Agile design pattern
PPT
The OO Design Principles
PDF
Solid principle
PPT
Object Oriented Concepts and Principles
PPTX
Is your code solid
PDF
SOLID Design principles
PPTX
Solid design principles
PDF
Solid Principle
PDF
SOLID Design Principle
SOLID principles-Present
Software Design Principles (SOLID)
Solid as OOP abstraction
SOLID Principles in OOPS ooooooooo.pptx
Android architecture
DesignPrinciples-and-DesignPatterns
Object Oriented Programming Ch3 SRP, DIP, ISP
OO Design Principles
Understanding SOLID Principles in OOP programming
SOLID_Principles_Explained_Presentation.pptx
CodeCamp Iasi 10 march 2012 - Scratching-SOLID
Agile design pattern
The OO Design Principles
Solid principle
Object Oriented Concepts and Principles
Is your code solid
SOLID Design principles
Solid design principles
Solid Principle
SOLID Design Principle

More from Ocean Dong (7)

PPT
Software Dev Process In A Nutshell
PPT
How To Write Work Mail
PPT
Continuous Code Quality Improvement
PPT
Stress free email handling
PPT
柬埔寨之旅
PPT
Introduction About Lean Way
PPT
Agile Testing
Software Dev Process In A Nutshell
How To Write Work Mail
Continuous Code Quality Improvement
Stress free email handling
柬埔寨之旅
Introduction About Lean Way
Agile Testing

Recently uploaded (20)

PPTX
Lesson notes of climatology university.
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PDF
Insiders guide to clinical Medicine.pdf
PDF
01-Introduction-to-Information-Management.pdf
PDF
VCE English Exam - Section C Student Revision Booklet
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PDF
Sports Quiz easy sports quiz sports quiz
PPTX
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
PDF
Basic Mud Logging Guide for educational purpose
PDF
Pre independence Education in Inndia.pdf
PDF
RMMM.pdf make it easy to upload and study
PPTX
master seminar digital applications in india
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PPTX
PPH.pptx obstetrics and gynecology in nursing
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
Lesson notes of climatology university.
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
Insiders guide to clinical Medicine.pdf
01-Introduction-to-Information-Management.pdf
VCE English Exam - Section C Student Revision Booklet
FourierSeries-QuestionsWithAnswers(Part-A).pdf
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
Sports Quiz easy sports quiz sports quiz
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
Basic Mud Logging Guide for educational purpose
Pre independence Education in Inndia.pdf
RMMM.pdf make it easy to upload and study
master seminar digital applications in india
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
Module 4: Burden of Disease Tutorial Slides S2 2025
STATICS OF THE RIGID BODIES Hibbelers.pdf
O5-L3 Freight Transport Ops (International) V1.pdf
PPH.pptx obstetrics and gynecology in nursing
Pharmacology of Heart Failure /Pharmacotherapy of CHF

Software Design Principles

  • 1. Software Design Principles Navigator Internal Workshop
  • 2. Old Story Clean Simple Elegant Rigid Fragile Immobile Change with Requirement Out-of-Control Dependencies
  • 3. Solution Software Development = Complexity Management Change with Requirement and Follow Principles OCP LSP DIP ISP Clean Simple Elegant Huge but still Clean Simple Elegant
  • 4. Open Close Principle (OCP) A module should be Open for Extension but Close for Modification Solution: Polymorphism
  • 5. Liskov Substitution Principle (LSP) Subclasses should be Substitutable for their Base Classes
  • 6. Liskov Substitution Principle (LSP) Root Cause: Is-A Fails Solution: Design by Contract Method pre-condition in subclass shouldn’t be stronger than in base class Method post-condition in subclass shouldn’t be weaker than in base class
  • 7. Dependency Inversion Principle (DIP) Depend upon Abstractions. Don't depend upon Concretions. The Last Mile: Where to instantiate the concrete class?
  • 8. Interface Segregation Principle (ISP) Many client specific interfaces are better than one general purpose interface
  • 9. Summary Less Responsibilities in a Interface/Class Dependencies on Outside Classes More Abstraction to act as Dependency Firewall Small Single-Responsibility Class to Encapsulate Change Manage Complexity = Manage Dependencies Clean Simple Elegant Clean Simple Elegant Clean Simple Elegant Clean Simple Elegant Clean Simple Elegant
  • 10. More Principles Package Cohesion Principles REP: Release Reuse Equivalency Principle CCP: Common Closure Principle CRP: Common Reuse Principle Package Coupling Principles ACP: Acyclic Dependencies Principle SDP: Stable Dependencies Principle SAP: Stable Abstractions Principle

Editor's Notes

  • #2: Opening customized for each location