OOAD for Project Managers and other Design Concepts

September 2, 2006

No Design =

==>shock wirecnn1.jpg & Messmess

Programming Styles:

Sequential:

292334_telephone_pole.jpg

Structured:

electricpole.jpg

OO

signboard.jpg

Rules of Design:

Optimal solution, not best. There are tradeoffs.

Lots of Common sense. Remember – nothing is intuitive, programming is not a primal instinct but people do as trained ( I struggled to eject CD from a MAC – who said they are more intuitive than windows). Dont expect VB programmers to apply OO principles by default.

Important principles

Single Responsibility Principle:

A class should have only one Responsibility, or only one reason for change.

 

 Multiple responsibility

= Confusion

 

and greater impact of maintenance 

(Imagine, if this stone was in Europe and needed signs as well – this will require changing the unchanged sign as well – to get space.

Interface Seggregation principle

Many, specific interfaces are better than one generic.

  is better than  

Why? One change has greater impact (  remoulding)

Addition can be tricky – Imagine 8 interfaces -you cant insert it!!.

Avoid Duplicate code.

Duplication = maintenance nightmare, chances of mistakes. 

Open Close Principle:

Open for extension, closed for modification.

If not, each change will have ripple effect.

Dependency Inversion Principle.

Abstraction should not depend on detail.

= Isolation of layers = maintenability.

Acyclic dependancy.

Anti-Patterns

Silver bullet / swiss Army knife.

Remember:

Re-factoring is easy. So Prototype, build , improve. Dont attempt to tick features off in one step.

Agile methodology says: Dont design for Unknown Future Requirements.

Keep it simple!

Advertisements

One Response to “OOAD for Project Managers and other Design Concepts”


  1. Hey great post! I hope it’s ok that I shared this on my FB, if not, no worries
    just let me know and I’ll remove it. Regardless keep
    up the great work.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: