- Rana Toqeer Ahmad Khan
- Computer Science
- Virtual University of Pakistan
- Sargodha, Pakistan
Abstract—a very important factor for developing a new application is requirement elicitation. Many application development projects failed due to poor requirement elicitation methods. Requirements are the necessary things or need or demands which are properly implemented in the application during the development process. With respect to the software engineering, what is system must do is known as requirements. An application or system may require hundreds or even thousands of requirements. Find out the needs of developing system don’t possible without elicitation techniques. For constructing the structure of system which is proposed by the stake holders, the requirement elicitation techniques provide the base for developing the system. In this paper we are going to explain the elicitation techniques and their usage in some real-time applications by applying the elicitation techniques according to the requirements of stake holders. When elicitation techniques are applied in proper way the development of system becomes easy due to no ambiguity in the requirements by the stake holders.
Keywords: Stake holders, Software requirements, Elicitation Techniques.
ALSO SEE: PURPOSE OF DDBMS
SUBSCRIBE ALSO: LEARNING TECH
Requirements of software explains those demands which are must be provided by the developing system or application. Needs of stake holders expressed by the requirement elicitation which is stated by (Sadiq M,134 Meghna Verma et al 2009). Since 1960 the term requirement is used in software engineering. Delivery and success of project is mainly depends on the requirements. When requirements gathered properly then the software provided the best quality otherwise software don’t fulfills the requirements of the stake holders or the company who requires the software. The gap between end users or stake holders and software development team often shrink by the requirements. Requirement stage or phase starts at the analysis stage or phase. Requirements are not a static procedure it is a continuous process which is carried out through the life cycle of the software development. Some tasks such as decision and administrator supports and wide range of business domain is dealing in the requirement engineering (Sparrow .L, 2006). RE means Requirement engineering is a new field when compared with other such fields. The Arif .S, 2010 tells that RE is a process and system that covers the activities which are based on the computer system. By using the Unified Modeling Language which is abbreviated as UML is widely used for the documentation of Requirement management and requirement elicitation. The system requirements can be created automatically by the help of prototypes (Meisenbacher .l.K, 2005). We know that elicit means obtain, gather, acquire or extract. So, the technique of gathering the requirement is known as the requirement elicitation. The major movement in the process of requirement engineering is the requirement elicitation (Ganesh, 2008). It provides the requirements that are necessary and mentioned by the stake holders for the development of the software. There are many problems which are face during the process of requirements elicitation such as perfect or complete documentation and user involvement. There are many types of stakeholders and from them recognize and decide the original stakeholders is a difficult task so the need of adopting the best technique which fulfills this task (Rozilawati .A, 2011). RE is the most important activity which is involved in the development of software project. Some activities such as maintaining, documenting and gathering the set of requirements ae involved in the computer based systems. When the requirements are ambiguous or unclear then there are many problems which occurred such delivery of system may be very late, system cost increases than the estimated costs or original estimated cost, stakeholders or end user may reject the software because that software not fulfills their needs or may be unsatisfied the end users or company that required the software. Due to the ambiguous requirements the developing system may be unreliable, poor security implemented and maybe there are many regular defects in the developed software.
2.ELICITATION TECHNIQUES AND REQUIREMENT ENGINEERING:
The first activity that tries to define the purpose and scope of project is requirement elicitation. This activity involves and relies the communication between stakeholders and development team that are more important in the process of software development especially when they develop Global software because teams and stakeholders are distributed in that process.
A. Requirement Elicitation
In many requirement engineering processes definitions, the first stage that is recognized is requirement elicitation. “For the creation of the correct application and for achieving the goals of application the main role is of the success of the requirement elicitation methods that are used for requirement gathering.
Therefore, the development of any application is crucial from including good practices of requirements elicitation. In reality thoughtfulness has an impact to the usability of the application” (Mohd Kasirun, 2005). ‘’Discovering or gathering the requirements are known as requirement elicitation. This is process for understanding the problem and application domain of that problem. For stating the best solution for the problem, the main purpose of the requirement elicitation is to identify the more requirements as possible. These all requirements are must be written in the document which is known as user requirement document which is abbreviated as URD for the purpose of requirement elicitation activity”. (Mohd Kasirun, 2005)
B. Elicitation Techniques
The means by which the system analyst or requirement engineer determine the problem, end user or stakeholder needs, so that the development team can develop the system that must resolve those problems, control the processes, and also tells the customer needs is known as elicitation techniques. These are also known as the tools that are used for finding and properly understanding of requirements or needs of end users. The major and for most beneficial purpose of requirement elicitation is that extract the best requirements for software development so that quality software is provided by the development team to the stakeholders and that fulfills the all requirements of the stakeholders or end-users.
C. Types of Elicitation Techniques
There are many ways for getting the information which is required and to reach the problem. One approach is called direct and another called indirect approach. In first approach is related to interaction with domain experts and second one is related with information which is required.
i. Direct Approach
The purpose of direct approach is to increasing or enhancing the understanding of problem whose solution is required in whole process. There are some common techniques which are used in the direct approach are Prototyping, interviews and case study. We can complete the comprehensive analysis by the help of these above mentioned tools. In this approach a comprehensive knowledge can be gained about the system and we can also get the correct or genuine data which is required. This approach only be beneficial when the domain experts fully clear about information and they are also willing to share the information (E. Burge, 2009).
ii. Indirect Approach
In the software development process sometime, we require the information which can’t be easily get directly so for the purpose of getting that type of information indirect approach is used. For example document analysis and questionnaire. In this approach a very important point which must be under consideration is that how the information is explained with the help of figures and statistics. Huge amount of data can be gathered by the careful analysis of documents. The output from this type of investigations are easy to measure and test can be suggested easily for these type of results or output.
D. Various Requirement Elicitation Techniques
The some requirement elicitation techniques are as follow:
In the process of interview the questioned are asked from the domain experts about the domain which is under consideration and also getting the information how the domain experts perform their own tasks. Interviews can be classified as structured, unstructured and semi-structured. The attainments of interview are depend on the level of questioned that asked in the interview. The questions are close type, open type or they are relevant to domain or not all things are matter in the success of interview. What type of questions to be asked is a difficult task particularly in those conditions when interviewer does not familiar with domain of system abut which questions to be asked and also depend on the ability of domain experts to articulate or clear their knowledge. In the some situations when some tasks are done automatically, the experts may don’t remember exactly how they perform that task. “Some interviews are done for creating the special type of model for the task. Knowledge engineers built that model and then discuss this model with domain experts.
Another very important technique that is used for requirement elicitation is questionnaire. This method is applied when information is necessary from group of people at a time. In this technique person who analyzing can analysis or gather opinions in two ways: Gather opinion or suggestions and for assumptions this method can be used.
“When experts are performing a task, the knowledge engineers carefully observe this activity. This is done in the observing technique of requirement elicitation. By this activity knowledge engineers can be avoided from the involuntarily interfering in the
iv. Documents Analysis
“When information is gathered form the existing documents, this technique is called document analysis. In this technique human expert’s involvement may or may not be involved for confirmation or addition to this information (E. Burge, 2009). Document analysis is an indirect approach so this approach varies. This variation is depend on documents which are available for interaction with experts. In this method we can find that how experts processes and organizes information about the task and how this information they compiled and present to the other people. Documents play a very important role in every organization. Some documents such as organizational charts illustrates the relationship of organizational structure which further explains the relationship among departments and thee workers of that organization. By the help of exiting document very important information can be collected about the existing system such as how the existing system works, how the different tasks can be performed by that existing system, how different parts of that system perform their tasks with and without depending on the other parts of that system. All of above information can be easily obtained by the document analysis approach. An organizational chart also tells about the employee working in that company or organization and also provides the information about the authorities that are working in that company. An organizational chart is created in the form of shape like a tree. This tree shape of an organizational chart also shows the working of staff in that company and this can be represented with the help of different geometric shapes. These organizational charts can be horizontal or vertical in their shape. For expressing the relationship between different positions different connecting lines are used. A proper and comprehensive structure of company or organization is also represented by an organizational chart.
Prototyping is a different type of requirement elicitation technique, which is used in the some special type of situation such as when there is uncertainty take place about the requirements. This type of approach is also used when a quick feedback is required to the stakeholders (Davis, 1992). In this technique a quick model is prepared for system which is going to be designed. End users can quick review from this model and check that the model is according to their requirements or not which is prepared by system designers and system designers also maintain that model easily. Prototyping is the part of analysis phase which is also a part of system development life cycle and prototyping is an interactive process also. The information gathering process can also be increased with the help of this technique such as undefined required can be defined during the process of prototyping. A quick feedback is given by the end users after the preparation of prototype. The user of that system tells the system analyst about the missing facilities of system, after the feedback the system analyst changes the existing requirements according to the need of end users and also developing the new requirements according to the need of company or end users. By the help of prototyping the cost can be reduced and also save the time and clear the ambiguous requirements. The idea how this system works in the real life is given by the developers with the help of prototyping. One type of requirements are product level requirements and other are design level requirements. In the product level requirements, the realistic functionality of system is defined. There are some advantages and some disadvantages of prototyping are also occurred during this technique. The major advantage of prototyping is that this technique decreases the time, cost and helps the developers also. This approach also invite the end users for their contribution and system analysts and also the developers receive the quick feedback which is very productive. This technique also demonstrate or explains the progress of system at the early stage. By the help of this technique many things can be clears to the end user in the early stages of development. Satisfaction of the users can also be avail by this technique such as prototyping. The major disadvantage of this type occurs when insufficient analysis take place during this activity. Often this activity leads to the incomplete documentation. In the sense of practical work prototyping enhance the quality of system and also increase the communication between end users and analyst or system developers, and this process helps for the developing of good software that meets the requirement of the end users. With the time passage the importance of software rapidly increases by the help of prototyping technique. Prototyping is a like a demo which explains the actual software that is under processing. Sometime many information system advisors and researchers use “low tech” prototyping tool such as paper prototyping in the replacement of software prototyping for the purpose of initial system design and analysis.
By this academic research paper we conclude that elicitation techniques in the process of software engineering or in the requirement engineering works like a backbone. For the purpose of making any software that fulfills all the requirements or need of company or end users requirement, without the requirements elicitation techniques not possible. Requirement elicitation is initial process for the development of a software and provide the base for the creativity of this new software. Requirement elicitation techniques are used for different types of purpose such as gathering or extracting the requirements, it is also used for fact findings or we can also said that these techniques are used for information gathering. Requirement elicitation techniques have a great important in the every step of software development life cycle because such techniques plays a role as key for success of any developing system. Requirement elicitation demands can’t be fulfilled by any single technique of requirement elicitation. Gathering of information and success of requirement elicitation does not only depend on techniques used for requirement elicitations but also depends on how information is extracted by the help of these requirement elicitation techniques and then this extracted information meets the demands or needs of stakeholders.