OOAD for Project Managers and other Design Concepts
September 2, 2006
No Design =
==>shock & Mess
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.
Single Responsibility Principle:
A class should have only one Responsibility, or only one reason for change.
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.
Silver bullet / swiss Army knife.
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!