Click here to Skip to main content
Click here to Skip to main content
Technical Blog

Tagged as

Software Architecture Cheat Blog 1: Design Principles

, 10 Mar 2012 CPOL
Rate this:
Please Sign up or sign in to vote.
This blog series will gather a summary of all the software architecture design principles under one roof.
This blog series will gather summary of all the software architecture design principles under one roof. Intention is to keep in touch with these principles. First one is called “SOLID”, which is combination of five basic designing principles,

Single Responsibility Principle

Example: http://blog.sanaulla.info/2011/11/16/solid-single-responsibility-principle/ There should never be more than one reason for class to change.

Open – Closed Principle

Example: http://blog.sanaulla.info/2011/11/19/solid-open-closed-principle/ Software Entities (Classes, Modules, Functions, etc.) should be open for extension but closed for modifications.

Liscov Substitution Principle

Example: http://lassala.net/2010/11/04/a-good-example-of-liskov-substitution-principle/ Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it.

Interface Segregation Principle

Clients should not be forced to depend upon interfaces that they don’t use.

Dependency Inversion Principle

A. High level modules should not depend on low level module. Both should depend on abstraction. Both should depend on Abstraction. B. Abstraction should not depend on details. Details should depend on Abstraction. Other important principles are

DRY (Don’t Repeat Yourself)

Every piece of knowledge must have a single, unambiguous, authoritative representation within a system. Aimed at reducing repetition of information of all kinds, especially useful in multi-tier architectures.

YAGNI - You ain't gonna need it

Always implement things when you actually need them, never when you just foresee that you need them.

KISS - Keep it simple, Stupid!

Most systems work best if they are kept simple rather than made complex, therefore simplicity should be a key goal in design and unnecessary complexity should be avoided.

Seven Principles Of Software Development

  1. The Reason It All Exists
  2. KISS (Keep It Simple, Stupid!)
  3. Maintain the Vision
  4. What You Produce, Others Will Consume
  5. Be Open to the Future
  6. Plan Ahead for Reuse
  7. Think
REF: http://csharpsimplified.wordpress.com/2010/10/01/design-principle/


License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Shahriar Iqbal Chowdhury/Galib
Technical Lead
Bangladesh Bangladesh
I am a Software Engineer and Microsoft .NET technology enthusiast. Professionally I worked on several business domains and on diverse platforms. I love to learn and share new .net technology and my experience I gather in my engineering career. You can find me from here
 
Personal Site
Personal Blog
FB MS enthusiasts group
About Me

Comments and Discussions

 
GeneralInterested to see where this goes Pinmemberjkinter28-Feb-12 6:51 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web01 | 2.8.141216.1 | Last Updated 11 Mar 2012
Article Copyright 2012 by Shahriar Iqbal Chowdhury/Galib
Everything else Copyright © CodeProject, 1999-2014
Layout: fixed | fluid