SOLID Design Principles

Posted by on January 27, 2012 in Software Development | 0 comments

SOLID Design Principles

Recently two colleagues and I did a workshop in which we explained SOLID Software development. SOLID is an acronym that stand for five principles for object-oriented development. SOLID stands for Single ResponsibilityOpen ClosedLiskov SubstitutionInterface Segregation and the Dependency Inversion Principle.

These principles can help a software developer manage dependencies between software components. Bob Martin the author of the principles writes “So dependency management, and therefore these principles, are at the foundation of the -ilities that software developers desire”. You can read the original article here.

These -ilities that Bob Martin refers to are the non functional requirements of a software product. I think that a software architecture is responsible for implementing the non functional or quality attributes of a software product. Therefore, I think that the SOLID design principles are one of the most fundamental rules for designing a robust software architecture. During the workshop we showed the following pictures to introduce a single principle. Can you spot the principle just by looking at a picture? The pictures are from this site which also explains the SOLID design principles.

SOLID Single Responsibility Principle

SOLID Open Close Principle

SOLID Dependency Inversion Principle

LetsGrow SOLID Software development

The nice thing about the SOLID principles that they can be used on many levels. For example, the Single Responsibility principle can be used on method level, class level, library level and even on (sub)system level. The same goes for the other principles. The slide show below shows the slides on slide-share that we used for the workshop.