Your SlideShare is downloading. ×
0
Solid Software Design
Solid Software Design
Solid Software Design
Solid Software Design
Solid Software Design
Solid Software Design
Solid Software Design
Solid Software Design
Solid Software Design
Solid Software Design
Solid Software Design
Solid Software Design
Solid Software Design
Solid Software Design
Solid Software Design
Solid Software Design
Solid Software Design
Solid Software Design
Solid Software Design
Solid Software Design
Solid Software Design
Solid Software Design
Solid Software Design
Solid Software Design
Solid Software Design
Solid Software Design
Solid Software Design
Solid Software Design
Solid Software Design
Solid Software Design
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Solid Software Design

1,723

Published on

SOLID Software Design Principles as outlined by Uncle Bob. Presented to software artists.

SOLID Software Design Principles as outlined by Uncle Bob. Presented to software artists.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,723
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
56
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. SOLID Software Design Abbas Raza
  • 2. Software Design <ul><li>“ […] the design of a software project is documented primarily by its source code .” Robert C. Martin </li></ul>
  • 3. Software Design <ul><li>Code is Design - Seminal Paper by Jack Reeves </li></ul><ul><li>http://www.developerdotstar.com/mag/articles/reeves_design.html </li></ul>
  • 4. What is Software Design <ul><li>The source code is the design </li></ul>
  • 5. The root cause <ul><li>Abandoned code rots </li></ul>
  • 6. The effect <ul><li>The rotten code smells </li></ul>
  • 7. What is a Design Smell <ul><li>A design smell is a symptom of the violation of design principles. </li></ul>
  • 8. <ul><li>How does it smell? </li></ul>
  • 9. Rigidity <ul><li>The tendency for software to be difficult to change, even in simple ways. The design is hard to change. </li></ul>
  • 10. Fragility <ul><li>The tendency of a program to break in many places when a single change is made. The design is easy to break. </li></ul>
  • 11. Immobility <ul><li>It is hard to disentangle the system into components that can be reused in other systems. The design is hard to reuse. </li></ul>
  • 12. Viscosity - Software <ul><li>Design -preserving methods vs. Hacks </li></ul>
  • 13. Viscosity - Environment <ul><li>Slow and inefficient development environment like very long compile times, hours to check-in, several minutes to deploy </li></ul>
  • 14. Needless Complexity <ul><li>Elements not currently needed in the design. Overdesign. </li></ul>
  • 15. Needless Repetition <ul><li>The design contains repeating structures that could be unified under a single abstraction. </li></ul>
  • 16. Opacity <ul><li>The tendency of a module to be difficult to understand. </li></ul>
  • 17. <ul><li>SOLID Design Principles help fix the smells. </li></ul>
  • 18.  
  • 19.  
  • 20. <ul><li>A class should have one, and only one, reason to change. </li></ul>
  • 21.  
  • 22. <ul><li>You should be able to extend a classes behavior, without modifying it. </li></ul>
  • 23.  
  • 24. <ul><li>Derived classes must be substitutable for their base classes. </li></ul>
  • 25.  
  • 26. <ul><li>Make fine grained interfaces that are client specific. </li></ul>
  • 27.  
  • 28. <ul><li>Depend on abstractions, not on concretions. </li></ul>
  • 29. References <ul><li>Agile Principles, Practices, and Patterns by Robert Martin </li></ul><ul><li>SOLID Posters from http://lostechies.com </li></ul>
  • 30. <ul><li>Thank You!! </li></ul>

×