If Cars Were Software
November 9, 2011 at 7:44 am Leave a comment
Coupling & Cohesion: “We installed your new radio. The tuner is in the trunk, we put the amplifier in the glove compartment and integrated the CD player with the carburetor.”
Single Responsibility: “Yes, that’s by design. The power windows go up and down as you press the accelerator.”
Open-Closed Principle: “To install your ski rack, let us begin by rebuilding the roof.”
Liskov Substitution: “It looks like a timing belt but behaves like a seat belt.”
Interface Segregation: “The lever to the right of the wheel indicates, switches wipers on or off, opens the trunk, controls A/C temperature and now let me show you how you use it to input destination addresses for the GPS …”
Dependency Inversion: “I’m sorry – we can’t replace the battery. The headlights will only work with this particular brand.”
Consistent levels of abstraction: “By rotating, the pinion engages the teeth on the rack, thus translating rotational motion into linear motion which results in changing the angle of the front wheels relative to the back wheels. This is how you go left or right by turning the steering wheel.”
Entry filed under: Architecture & Design, Software Development. Tags: agile, SOLID.
Trackback this post | Subscribe to the comments via RSS Feed