Abstract
Abstract:
Delaying commitment to a particular software design reduces several problems resulting from premature commitment including: lack of freedom for iterative design, increased maintenance costs, increased effects of bugs, and nonportability of software. Delaying commitment provides time to search for the most effective solution and increases the opportunity to recognize it. Tactics to delay commitment to a final design include: use of modular programming, choice of parameters appropriate to a problem, keeping the problem and solution as general as possible, retain options to choose a parallel program solution, do not use prototyping tools, use abstractions, and use interfaces.