Approaches to reducing cost
•
Design for change (proactive)
–
Information hiding, layering, open
implementation, aspect-oriented programming,
etc.
•
Tools to support change (reactive)
–
grep, etc.
–
Reverse engineering, program