(IJCSIS) International Journal of Computer Science and Information Security,Vol. 8, No. 8, November 2010
Section 4 discusses about some key issues followed by thecore activities of RE in section 5. Then, in section 6,challenges of RE activities are analyzed with somesuggestions. We finish by drawing some broad andnecessarily speculative and personal conclusions about thefuture of requirement engineering.II.
RE activities play a vital role in software and systemsengineering, and there are also many disciplines upon whichit draws.In software development context, an important role isplayed by Computer Science as theoretical computer scienceprovide the framework to assess the feasibility of requirements while the means of developing softwaresolution are provided by practical computer science. Here
provides a vehicle for analyzing software behaviorwhich is acquiescent to formal reasoning to make thereasoning steps more explicit. Different logics may be usedto express different aspects of a required system. Forexample,
can be used to describe timinginformation,
to describe permissions andobligations, and
to describe resources and theiruse. A further advantage of specification languagesgrounded in logic is that they are potentially amenable toautomated reasoning and analysis .In the systems engineering context, an understandingand application of systems theory and practice is alsorelevant to RE . This includes work on characterizingsystems, identifying their boundaries and managing theirdevelopment life cycle [7-8]. RE also encompasses work onsystems analysis, traditionally found in the informationsystems world .Usually RE activities take place in a human activitysystem, and people are the problem owner. Therefore, REneeds to be sensitive to how people perceive and understandthe newly implemented computer-based system, how theyinteract, and how the environment of the workplace isaffected by their actions. RE draws on the cognitive andsocial sciences to provide both theoretical grounding andpractical techniques for eliciting and modeling requirements.
provides an understanding of thedifficulties people may have in describing their needs .
provides a methodological approach toobserving human activities that helps to develop a richerunderstanding of how computer systems may help or hinderthose activities .
provides an understanding of the political and cultural changes caused by computerization.Introduction of a new computer system changes the nature of the work carried out within an organization, may affect thestructure and communication paths within that organization,and may even change the original needs that it was built tosatisfy .
is important because RE is largelyabout communication. Linguistic analyses have changed theway in which the English language is used in specifications,for instance to avoid ambiguity and to improveunderstandability. Tools from linguistics can also be used inrequirements elicitation, for instance to analyzecommunication patterns within an organization .
elements also have an important effect on REas it is concerned with interpreting and understanding of terminology, concepts, viewpoints and goals fromstakeholder’s perspective. Such issues become importantwhile requirement validation, especially where stakeholdersmay have divergent goals and incompatible belief systems.They also become important in selecting a requirementmodeling technique, because the choice of technique affectsthe set of phenomena that can be modeled, and may evenrestrict what a requirements engineer is capable of observing.III.
In the software development process, RE is consideredas a front-end activity. Although it is usually the case thatrequirements change during development and evolve after asystem has been in operation for some time, RE plays animportant role in the management of changes in softwaredevelopment. Nevertheless, the bulk of the effort of RE doesoccur early in the lifetime of a project, motivated by theevidence that requirements errors, such as misunderstood oromitted requirements, are more expensive to fix later inproject lifecycles [14-15].Before a project can be started, some preparation isneeded which are categorized as
context and groundwork
byFinkelstein . This groundwork includes someassessment of project’s feasibility and associated risks needsto be undertaken, and RE plays a crucial role in makingsuch an assessment. Although it is often possible to estimateproject costs, schedules and technical feasibility fromprecise specifications of requirements, risk should be re-evaluated regularly throughout the development lifetime of a system , since changes in the environment can changethe associated development risks.Again, RE activities are performed in a variety of contexts, including market-driven product development anddevelopment for a specific customer with the eventualintention of developing a broader market. The type of product also affects the choice of method: RE forinformation systems is very different from RE for embeddedcontrol systems, which is different again from RE for genericservices such as networking and operating systems . Sogroundwork is essential for the identification of a suitableprocess and also for the selection of suitable methods andtechniques for the various RE activities.IV.
Software development organizations should keep inmind the following issues when they consider how toimprove the requirements and communication for theirprojects:
If teams don’t get requirements right, it doesn’tmatter how well they execute the rest of theproject:
The goal of every software developmentproject is to build a product that provides value to