OOAD for Project Managers and other Design Concepts
September 2, 2006
No Design = 
==>shock
& Mess![]()
Programming Styles:
Sequential:

Structured:
![]()
OO
![]()
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!


Leave a Reply