AbstractThe success or failure of a system depends heavily on the quality of therequirements and quality of requirements is influenced by requirementselicitation techniques. . This paper highlights different kinds of requirementselicitation techniques.
Requirementselicitation techniques are the procedures through which a requirement engineerfinds out the needs of the customers, domain of problem, and constraints sothat a system may be developed to resolve the problem and fulfill the needs ofcustomers within organizational constraints. Requirements elicitation is thehardest and critical part of software development because errors at this stagecan propagate throughout the development process and most difficult to repair afterward.Paper also highlights pros and cons of using these techniquesNo requirements elicitation technique has the capability of finding all of the softwarerequirements so we have to use variety of techniques that will help us to coverall the requirements, resulting in more effective elicitation.Key words: I.
INTRODUCTIONBasic purpose of requirement analysis is to increase the possibility ofbuilding a system which satisfies the customers and their needs. Requirementsengineering can be classified into five phases including elicitation, analysis,specification, validation or verification and management.Requirements elicitation is the hardest and most criticalpart of software development because errors at this stage propagate through thedevelopment process and most difficult to repair afterward. During requirementelicitation one has to deal with ambiguity, informality, incompleteness andinconstancy.Different kinds of elicitation problems may arise likeproblem of scope during which boundary of the system is not well defined andunnecessary information may be included.
Another problem comes from users whohave incomplete understanding of their needs. Different users may haveconflicting needs and they express requirements in poor manner. Problem mayarise if requirement engineers have incomplete knowledge of problem domain.Volatility of requirements is also a major source of poor requirements.The objective of software engineering activities and tools is to producehigh quality software which are complete, consistent, reliable, cost effective,and developed within specified time frame. But major software products fail onmany of these attributes. There are many reasons behind these failures and oneof major source of failures is poor requirements and these problems grow assoftware is developed. Aim of requirement engineering is to fulfill customers’needs through well-defined methodologies.
Requirements elicitation is the overall process of obtaining, gathering,organizing, writing and documenting requirements for a software system throughconsultation with users and different stakeholders. “Requirements elicitationtechniques are the means by which systems analysts determine the problems,opportunities, and needs of the customers, so that systems developer canconstruct systems that actually resolve those problems, leverage thoseopportunities, and/or address customer’s needs”.During this process, problem domain is analyzed and relevant knowledgeis obtained. Purpose of requirements elicitation is to gather as manyrequirements as possible so that many alternate solutions may be obtained. Bothfunctional and non-functional requirements are obtained through the process ofrequirements elicitation.
Final draft of Requirements is written in a documentgenerally called software requirements speciation (SRS). II. LITERATUREBACKGROUND 4 process to undersand a problem and itsapplication domain is called requirement anlaysis.
Direct approach ofrequirement elicitation is used to to enhance the understanding of the problemof system already in use. While indirect approach of requirement elicitation isused to obtain information that can not be obtained directly. no single technique can fulfill all damandsand we have to use them in their specific context. 3 requirement phase of software development life cyle consists ofelicitation, specification, and validation of requirements. Traditionaltechniques include interviews, surveys, introspection, and meetings.
Collaborative techniques include JAD and prototyping while contextualtechniques include enthnographic studies and discourse analysis. 6 no singletechnique is capable of getting all requirements. Each technique has pros andcons. 1 There are many techniques of requirements elicitation like interviews,ethnography studies, protocol analysis, prototyping, JAD and issues related withthem.
Non compliance to these techniques is considered main reasons for manyproject failiures. 2 paper prototypingis a requirement elicitation technique during which a throwaway paper prototypeis developed to obtain requirements from customer which is visualrepresentation of the system. This technique is useful for small and mediumsized projects. 5 different problemsrelated with requirement elicitation include stakeholder’s miscommunication,multiple interpretation of same sentence. Cost of failure is too much. 7 analysts with past experience is able toget more detailed and accurate requirements as compaered to less experiencedanalyst. III. REQUIREMENTSELICITATION TECHNIQUESThere are different techniques available for requirements elicitation.
Some of them are given below.1. Traditional TechniquesEarly elicitation techniques are called traditional techniques. Theseinclude the following:A. InterviewsAn interview is a conversational method to get requirements. Anexperienced analyst with good knowledge of application domain of the problemconducts the interview.
Interviews are helpful to get large size information.Conducting interview requires extraordinary social skills, patience to listenand comprehend the message. Interview may be structured or unstructured. Structuredinterview generally consists of pre planed questions. Quality and effectivenessof the interview is generally dependent on the quality of questions asked.
Itenables the interviewer to check the understanding of customer about the problem.Unstructured interviews are mostly conversational in nature without anypreplanned questions and information is obtained in informal way. Differentaspects of the problem are focused and deep understanding is achieved throughlight discussion.B.
Surveys/QuestionnairesQuestionnaires are one of the cost effective way used ininitial phase of requirements elicitation. Questionnaires are useful in gettingcontrolled response without irrelevant details. But to be effective,questionnaire must be concise, clear and to the point and should includehelping material for respondents.C. IntrospectionIntrospection is effective when analyst is expert in domain knowledgeand the system goals and business processes performed by the user are wellunderstood by him.D. Readingexisting documents Documents include procedural manuals, organizationalculture, input forms, output forms, diagrams, models, charts and programs. Documents are good source of informationabout user needs and current system.
E. MeetingsRequirements can also be obtained through formal or informal meetings.Different stakeholders can be selected to get wide range of responses andremove ambiguities.2. CollaborativeTechniquesCollaborative techniquescombine different elicitation techniques at one place to maximize the utilityof requirements. Collaborative techniques merge traditional, contextual andcognitive techniques into a single technique.
Collaborative techniques involvethe following:A. BrainstormingIt is a group activity wheredifferent stakeholders participate in a discussion to come up with differentideas and all viewpoints are taken into account. A topic is given toparticipants and they share their point of view in fixed time period.
Brainstorming has two phases. First phase is generation phase during which allideas are received without discussing their merits or demerits. Second phase isconsolidation phase during which preliminary ideas are revised, discussed andorganized on the basis of required documentation. Brainstorming generates wide rangeof ideas and viewpoints.B. JAD/ RADtechniqueJoint application development (JAD) and rapid applicationdevelopment (RAD) emphasizes the need of discussion among differentstakeholders with the help unbiased facilitator.
Workshops of small group ofpeople are held to come up with proper requirements. Difference between JAD and brainstorming isthat JAD discussion is well planned with actions and roles of differentparticipants properly defined. Secondly, stakeholders are also allowed toparticipate and discuss on design of the proposed system.C.
PrototypingDuring prototyping, a partial model is developed rapidlyand quickly on the basis of preliminary requirements gathered from customers.Mostly complex and ambiguous requirement’s prototype is developed for gettingtimely feedback from the customers about the usability and correctness of thesystem. It is a two way technique forreaching an agreement between experts and end users of the system.Another form of prototyping is paper prototype. A throwaway paperprototype of the system is developed and is given to end users. Feedback fromthe users is recorded in tabular form.
If different users give conflictingfeedback then requirement engineer tries to come up with consensus.3. ContextualtechniquesThese techniques collectrequirements with respect to the context of users. Requirements are gathered atworking environment where actual system is going to be deployed at later stage.Contextual techniques are combination of unstructured interview, workplace observation,and prototyping. Main aim of these techniques is to collect data regardingworkplace procedures, environment, patterns, and daily work processes and tointerpret that data for in depth understanding of requirements and systemdesign.
Various techniques under this category are given as follows:A. EthnographicstudiesIt is social science elicitation technique to understandpeople in context of social and cultural perspective. Analyst observes the activities performed bydifferent customers at their workplace for specific period of time and collectsrequirements. Relationship between actors and system is analyzed. It is usedwith interviews and questionnaires to deal with contextual problems. IV.
ANALYSIS OFDIFFERENT REQUIREMENTS ELICITATION TECHNIQUESNo requirements elicitation technique has capability of finding all ofthe software requirements. So we have to use variety of techniques that willhelp us to cover all the requirements, resulting in more effective elicitation.Following are some of the pros and cons of using different requirementelicitation techniques.A. InterviewsInterviews are good tool foreliciting detailed requirements. Different kinds of ambiguities can beclarified through interview.
Interviewee can analyze and take into account bodylanguage, verbal as well as nonverbal messages communicated by the intervieweeinto requirement document. But due to cost issues, interviews cannot beconducted with large population. Quality of data collected mainly depends uponinterviewer who may sometimes be biased. Conducting an interview require greatsocial skills, preparation and follow up which are time consuming.
B. DocumentAnalysisDocumentation analysis ishelpful to get beforehand understanding of customer’s organization and to gethistorical data. This in turn is helpful for properly framing questionnairesand getting requirements.
But sometimes documentation is not up to date andincomplete or core details are not given which may lead to misunderstanding.C. Questionnaires/SurveysQuestionnaires are inexpensiveway to get large number of responses within short period of time. It isespecially useful when same set of questions are asked to large population.
Butrespondents may misinterpret the questions and answer according to their ownunderstanding.D. EthnographyEthnography helps inunderstanding the relationships among different people in an organization,events and work patterns. It is also helpful in validating differentrequirements. But it requires experts to perform it because diverse cultureexists in organizations.
E. PrototypingPrototyping focus on user as well as requirement engineercollaboration during requirement elicitation and enables timely feedback fromuser to rectify the problem which saves time and money. But for complex systemsit can be very time consuming.
F. JointApplication Development (JAD)JAD helps in minimizing theambiguities among different stakeholders. But it is not possible to check allrequirements in just one workshop/session. Some user may also behave passively.G.
BrainstormingAs brainstorming focus oncreativity so members participate actively and it helps in generation of newideas and resolve conflicting ideas. But if it is not organized properly itbecomes time consuming. Some participants may take more time than others. V. CONCLUSION Requirement elicitation is backbone of developingreliable software product. No single technique fulfills all demands ofrequirement team.
It depends upon the Requirement engineer that how he usesthese technique efficiently to elicit requirements. In this paper we havediscussed various techniques of requirements elicitation along with pros andcons of these techniques. The paperoffers brief but comprehensive description of requirement elicitationtechniques. We cannot say that one technique is better than other but eachtechnique has its usage at some point of time in requirement elicitationprocess.
For getting overall benefitsfrom these techniques we have to properly learn their usage scenarios. Futurework may point out which technique is best suited in a particular situation.