<P> "Although much effort is put in the requirements phase to ensure that requirements are complete and consistent, rarely that is the case; leaving the software design phase as the most influential one when it comes to minimizing the effects of new or changing requirements . Requirements volatility is challenging because they impact future or already going development efforts ." </P> <P> Once the general requirements are gathered from the client, an analysis of the scope of the development should be determined and clearly stated . This is often called a scope document . </P> <P> Certain functionality may be out of scope of the project as a function of cost or as a result of unclear requirements at the start of development . If the development is done externally, this document can be considered a legal document so that if there are ever disputes, any ambiguity of what was promised to the client can be clarified . </P> <P> Once the requirements are established, the design of the software can be established in a software design document . This involves a preliminary, or high - level design of the main modules with an overall picture (such as a block diagram) of how the parts fit together . The language, operating system, and hardware components should all be known at this time . Then a detailed or low - level design is created, perhaps with prototyping as proof - of - concept or to firm up requirements . </P>

The two aspects of an effective operating system are design and