What is Software Design Document
UML
TestCase
Data Flow Diagram
SourceCode
What is the Software Product
Documentation
SourceCode of Program
Running Executable Program
"A design that works, but can’t be maintained. Something that is unstable, and hard to change." is sometimes called
Big Bang Theory
Big Bucket
Black Hole
Big Ball of Mud
the tendency of a system to be hard to change is called
Rigidity
Fragility
Immobility
Viscosity
When small code changes force system rebuilds it indicates
High Coupling
Loose Coupling
High Cohesion
Low Cohesion
When a small change in one module causes other unrelated modules to misbehave, its called
When a system's internal components cannot be easily extracted and reused in novel new environments, its called
What forms SOLID principles
the Single Responsibility Principle
the Open-Closed Principle
the Liskov Substitution Principle
the Interface Segregation Principle
the Dependency Inversion Principle
the Reuse Release Equivalency Principle
the Common Closure Principle
the Common Reuse Principle
the Acyclic Dependencies Principle
the Stable Dependencies Principle
Thus the sender does not depend upon the recipient. Nor does the recipient depend upon the sender. They both depend upon the message; and the message is an abstraction. The dependency opposes the Flow of control. This is the essence of OO.
The essential quality of OO is the ability to invert key dependencies in order to protect high level policies from low level details. It helps in Dependency Management.
A very simple but confusing puzzle. A lady buys goods worth Rs.200 from a shop. (shopkeeper is selling the goods with zero profit). The lady gives him Rs.1000 note. The shopkeeper gets the change from the next shop and keeps Rs.200 for himself and returns Rs.800 to the lady. Later the shopkeeper of the next shop comes with the Rs.1000 note saying “duplicate” and takes his money back. What is the loss of first shopkeeper?
1200
1800
800
1000