A common problem that leads to requirement ambiguity is a fuzzy and ambiguous description, such as
- "fast response time" or
- "very easy and very secure updating mechanisms" .
A requirement such as fast response time is open to interpretation, which might lead to user dissatisfaction if the user's interpretation of a fast response is different from the system analyst's interpretation. Incomplete
requirements mean that certain requirements necessary for successful system development are not included for a variety of reasons. These reasons could include
- the users' forgetting to identify them,
- high cost,
- politics within the business, or
- oversight by the system developer.
However, because of the iterative nature of object-oriented analysis and the unified approach most of the incomplete requirements can be identified in subsequent tries. When addressing features of the system, keep in mind that every additional feature could affect the performance, complexity, stability, maintenance, and support costs of an application. Features implemented by a small extension to the application code do not necessarily have a proportionally small effect on a user interface. For example, if the primary task is selecting a single object,
extending it to support selection of multiple objects could make the frequent, simple task more difficult to carry out. A number of other factors also may
affect the design of an application. For example, deadlines may require delivering a product to market with a minimal design process, or comparative evaluations may force considering additional features. Remember that additional features and shortcuts can affect the product.