This action might not be possible to undo. Are you sure you want to continue?
MUHAMMAD FAIZAN KHAN
MUHAMMAD ALI JINNAH UNIVERSITY
Requirements elicitation is the process of seeking, uncovering, acquiring, and elaborating requirements for computer based systems. It is generally understood that requirements are elicited rather than just captured or collected. This implies there are discovery, emergence, and development elements in the elicitation process. Requirements elicitation is a complex process involving many activities with a variety of available techniques, approaches, and tools for performing them. The relative strengths and weaknesses of these determine when each is appropriate depending on the context and situation as well as, There are many problems associated with requirements engineering, including problems in defining the system scope, problems in fostering understanding among the different communities affected by the development of a given system, and problems in dealing with the volatile nature of requirements. These problems may lead to poor requirements and the Cancellation of system development, or else the development of a system that is later judged unsatisfactory or unacceptable, has high maintenance costs, or undergoes frequent changes. Most of the requirements techniques and tools today focus on specification, i.e., the representation of the requirements. This report concentrates on elicitation concerns, important aspects of the techniques,
approaches and tools for requirements elicitation.
The importance of requirement engineering (RE) within software systems development has long been established and recognized by researchers and practitioners. The elicitation of requirements represents an early but continuous and critical stage in the development of software systems. The requirements for a software system may be spread across many sources. These include the problem owners, stakeholders, documentation, and other existing systems. Requirements elicitation is recognized as one of the most critical, knowledgeintensive activities of software development ; poor execution of elicitation will almost guarantee that the final project is a complete failure. Since project failures are so rampant , it is quite likely that improving how the industry performs elicitation could have a dramatic effect on the success record of the industry . Requirements elicitation itself is a very complex process involving many activities, with multiple techniques available to perform these activities and some issue are involve in Requirement Elicitation Process as well. These problems and issues are discussed in this paper in later sections.
A requirement is a “function or characteristic of a system that is necessary...the quantifiable and verifiable behaviors that a system must possess and constraints that a system must work within to satisfy an organization’s objectives and solve a set of problems” .Similarly, “requirement” has the following definitions [IEEE 90]. (1) A condition or capability needed by a user to solve a problem or achieve an objective; (2) a condition or capability that must be met or possessed by a system or system component to satisfy a contract, standard, specification, or other formally imposed documents; (3) a documented representation of a condition or capability as in (1) or (2).
THE PROCESS OF REQUIRMENT ELICITATION
...the requirements definition activity cannot be defined by a simple progression through, or relationship between, acquisition, expression, analysis, and specification. Requirements evolve at an uneven pace and tend to generate further requirements from the definition processes. The construction of the requirements specification is inevitably an iterative process which is not, in general, selfterminating. Thus, at each iteration it is necessary to consider whether the current version of the requirements specification adequately defines the purchaser’s requirement, and, if not, how it must be changed or expanded further. A good requirements elicitation process supports the development of a specification with these attributes. Conversely, problems with requirements elicitation inhibit the definition of requirements which are unambiguous, complete, verifiable, consistent, modifiable, traceable, usable, and necessary.
Rzepka decomposes the requirements engineering process into three activities [Rzepka 89]: 1. Elicit requirements individual sources; from various
2. Insure that the needs of all users are consistent and feasible; and 3. Validate that the requirements so derived are an accurate reflection of user needs. This model implies a sequential ordering to the activities, with elicitation done once at the very beginning of the process. In reality, though, the process is iterative, with these activities revisited many times [Southwell 87, p. 195]:
REQUIRMENT ELICITATION PROBLEMS
Problems of requirements elicitation can be grouped into three categories: • Problems of scope, in which the requirements may address too little or too Much information; • Problems of understanding, within groups as well as between groups such as users and developers; and
• Problems of volatility, i.e., the changing nature of requirements. The list of ten elicitation problems given in one source [McDermid 89] could be classified according to this framework as follows: • Problems of scope • The boundary of the system is ill-defined • Unnecessary design information may be given • Problems of understanding • Users have incomplete understanding of their needs • Users have poor understanding of computer capabilities and limitations • Analysts have poor knowledge of problem domain • User and languages analyst speak different
Interviewing and Questionnaires
Simple direct technique, Context-free questions can help achieve bias-free interviews then, it may be appropriate to search for undiscovered requirements by exploring solutions. Convergence on some common needs will initiate a “requirements repository” for use during the project. A questionnaire is no substitute for an interview.
The requirements workshop is perhaps the most powerful technique for eliciting requirements. It gathers all key stakeholders together for a short but intensely focused period. The use of an outside facilitator experienced in requirements management can ensure the success of the workshop. Brainstorming is the most important part of the workshop. If requirements are collected from a single viewpoint, they are unlikely to meet other stakeholders’ requirements. Collecting requirements from multiple viewpoints is a useful way to prioritize requirements. Identified viewpoints can be used to help organize requirements elicitation and Organize the requirements specification, too. Saves money and time. Studies have shown that similar systems can re-use up to 80% of the requirements. Reuse reduces risk. Reused requirements have a better chance of being understood by all the stakeholders. Requirements reuse may lead to additional reuse in other lifecycle activities.
Braining Storming and idea reduction
• ease of omitting “obvious” information • Conflicting views of different users • requirements are often vague and untestable, e.g., “user friendly” and “robust” • Problems of volatility • Requirements evolve over time
REQUIRMENT ELICITATION PROPOSED TECHNIQUE Interviewing and questionnaires Requirements workshops Braining Storming and idea reduction Storyboards Use Cases Role Playing Prototyping
Do not allow criticism or debate. Let your imagination soar Generate as many ideas as possible Mutate and combine ideas Idea Reduction Pruning ideas that are not worthy of further discussion Grouping of similar ideas into one super topic Prioritize the remaining ideas.
The purpose of storyboarding is to elicit early “Yes, But” reactions. Storyboards can be positive, active, or inactive. Storyboards identify the players, explain what happens to them, and describes how it happens. Make the storyboard sketchy, easy to modify, and unship able. Storyboard early and often on every project with new or innovative content.
Prototyping is especially effective in addressing the “Yes, But” and the “Undiscovered Ruins” syndromes. A software requirements prototype is a partial implementation of a software system, built to help developers, users, and customers better understand system requirements. Prototype the “fuzzy” requirements: those that, although known or implied, are poorly defined and poorly understood.
CONCLUSION Requirements elicitation is a collaborative decision-making activity involving users, developers, and customers. The elicitation approach is dependent not only on the diversity and experience levels of these cross-disciplinary sources of requirements, but also the diversity of the problem being formulated, which ranges from a fully understood system to a new, novel one. Any single approach to requirements elicitation will have varying success across different projects, since “not all problems yield to the same degree to the same approach” [Cameron 89, p. 2/1]. The proposed Techniques are integrated with different requirement elicitation process. There are a number of elicitation techniques useful for addressing one or more of the problems no single technique adequately addresses all of the elicitation problem areas
Use Cases, like storyboards, identify the who, what, and how of system behavior. Use Cases describe the interactions between a user and a system, focusing on what they system “does” for the user. The Use Case model describes the totality of the systems functional behavior. Early stages: After you have an overview of the use cases, perhaps only by a phrase apiece, expand 10% of them in detail.
Role playing allows stakeholders to experience the user’s world from the user’s perspective. A scripted walkthrough may replace role playing in some situations, with the script becoming a live storyboard.(ClassResponsibility-Collaboration (CRC) cards, often used in object-oriented analysis, are a derivative of role playing.)
 Gottesdeiner, E., Collaboration, AddisonWesley, 2002.
 Standish Group, "The Chaos Report,"
www.standishgroup.com, 1995. *3+ Hofmann, H., and F. Lehner, “Requirements Engineering as a Success Factor in Software Projects,” IEEE Software, 18, 4 (July/Aug 2001), pp. 58-66. [Rzepka 89] Rzepka, William E. A Requirements Engineering Testbed: Concept, Status, and First Results. In Bruce D. Shriver (editor), Proceedings of the Twenty-Second International Conference on Annual Hawaii
System Sciences, 339-347. IEEE Computer Society, 1989. [SouthWell 87, p.195] Southwell, K., James, K., Clarke, B.A., Andrews, B., Ashworth, C., Norris, M., and Patel, V. (Requirements Specification authoring team). Requirements Definition and Design. The STARTS Guide, Second Edition, Volume I. National Computing Centre, 177313,Chapter 5, 1987. [McDermid 89] McDermid, J. A. Requirements Analysis: Problems and the STARTS Approach. In IEE Colloquium on ‘Requirements Capture and Specification for Critical Systems’ (Digest No. 138),4/1-4/4.Institution of Electrical Engineers, November 1989. [Cameron 89, p.2/1 ]Cameron, John R. Prototyping Core Functionality Using JSD. In IEE Colloquium on ‘Requirements Capture and Specification for Critical Systems’ (Digest No. 138), 2/1-2/2. Institution of Electrical Engineers, November 1989.