1. What are some of the challenges associated with "requirement elicitation"? How does an iterative approach help that process?
The requirements analysis process is the initial step in the construction of an information system. The requirements analysis process is complex, ill-defined and challenging to all participants since it involves multidisciplinary skills, creativity and attention to detail. [Vitalari]. The different authors have used different terms like requirement analysis, requirement determination and requirement engineering. All terms more or less address the same concept.
Why SRM is so difficult
Requirements analysis is the most critical software development problem [Faulk]. The earlier in the development process an error occurs and the later the error is detected, the more expensive it is to correct it. Moreover, the relative cost rises quickly. An error that costs a dollar to fix in the requirements phase may cost $ 100 to $ 200 to fix if it is not corrected until the system is fielded or in the maintenance phase.
Brooks classified the problems in software engineering as essential difficulties - those inherent in the problem and the accidental difficulties - those introduced through the accidental difficulties. We will use the same classification to deal with the problems of software requirement management.
1. Complexity: Software entities are more complex for their size than perhaps any other human construct. Also, a scaling-up of a software entity is not merely a repetition of the same elements it the larger size, it is necessarily an increase in the number of different items. In most cases, the elements interact with each other in some non-linear fashion and the complexity of the whole increases much more than linearly. This essential difficulty of software engineering results into following problems in software requirement management:
a) Problem of Comprehension: Requirement determination is highly cognitive and creative activity for all the members of the development team including the users [Norman 96]. Users do not begin with a precise and detailed understanding of what is required from the software, what the output must be for every possible input, how long each operation should take, how one decision will affect another and so on. This is the area, which is still awaiting significant automated and intelligent support. CASE technology, is making a contribution in this area, mainly as a documentation and communication aid.
b) Problem of Communication: Software requirements are difficult to communicate effectively [Faulk 97]. The larger the team, the larger the potential for ...
The challenges associated with requirement elicitation is examined. How the iterative approach helps the process is determined.