Issue No. 11 - November (2001 vol. 34)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/2.963444
<p>Ambiguous requirements and those that emerge late in the design cycle often complicate development and throw off established schedules. The authors describe how reformulating information missing at the design stage into a flexibility requirement can turn the absent data into a design driver. Designers constantly run into issues that have yet to be understood through specification, system design, or standardization. Changes in evolving technologies and businesses often result in unstable system requirements. Reliable hardware or mechanical details might not be available until very late in the development process. Yet engineers must initiate software development even though some subsystem details have not yet been completely defined. </p><p>Missing information and related flexibility requirements can lead to a design plagued by many well-known problems that affect performance, modularity, scalability, and clear separation of concerns. In some cases, developers must sacrifice rules of thumb to maintain planned development schedules. Providing flexibility for everything in the system isn't possible, so developers will always need to determine the static requirements and explicitly state where continued development and rapid modification require flexibility. </p>
P. Pruuden and T. Mikkonen, "Flexibility as a Design Driver," in Computer, vol. 34, no. , pp. 52-56, 2001.