Engineering andManaging SoftwareRequirements StudentName : Ali RazaID:MS160401264 AbstractIn this Research Paper I readdifferent books of different authors and visits lot of websites for the topicof Engineering and Managing Software Requirements. And then I explored the interdisciplinary nature of Requirements Engineering (RE) andportrays the current status of understanding and functionality to analyzing, modeling and managing of RequirementEngineering activities and Managing Software Requirement for current as well asfuture systems, with exacting emphasis on original ideas, frameworks andempirical studies, and future directions of Requirement Engineering andManaging Software Requirement practiceand understanding.
Introduction:Requirement Engineeringis that process by which the requirements for software are collected, analyzed,documented, understanding, planning and then managed all over the SoftwareEngineering lifecycle. Requirement Engineering is concerned with understand theuser requirement and interpreting and understanding of stakeholder’s goals,requirement needs and beliefs. Thereare many other problems linked with Requirement Engineering that may lead toincomplete requirements and incompatible cancellation of software projects/application.Software developers understand that astrong requirements management process is essential to the successfulcompletion of software projects to make worth in market and satisfy the clientsall expected requirement for which they want to develop that software orapplications.As Requirement Engineering is best way to understating understanding,identifying and articulating the role of business requirements which areexpected from stakeholders from diverse backgrounds with different needs.
Requirement Engineering is also amanagement activity that manages different Requirement activities likeanalyzing and monitoring products requirements and managing the project scope.This research paper shows and describes to draw engineering and management featuresto describe and analyzed issues that face the Requirement Engineering in thethird millennium.Why a Research Paper?RequirementEngineering and managing software requirements are main features and maindiscussion for systematic software development to describe how to apply thesesolutions to industrial practice and developing environments.
Furthermore, itprovides collections of Requirement Researchand information about current industry practices. ThisResearch Papers describe few point, new insights into the software developmentprocess for software developers. It also shows that Requirement Engineering isalso a management activity that manages different Requirement activities likeanalyzing and monitoring products requirements and managing the project scope.Background/Review of the State of the Art:Requirements engineering is acceptedas one of the most critical stages in software design and development as itaddresses the critical problem of designing the right software for the customerand fulfill all desired customer requirement for which that software orapplication is established . Requirements engineering is progressively morebecoming a set of processes that operates on different levels, likeorganizational product and project levels. The development of a softwarerequirements specification is widely recognized as the bases of systemfunctionality.Requirement Engineering is acontinuous process on organizational and product levels and a process limitedin time on the project level. However, most requirements engineering researchto date is devoted to handling requirements on the project level, making this themain focus of this Research Paper.
Software requirements are the critical determinantsof software quality as mentioned that errors in requirements are the mostnumerous in the software life-cycle and also the most expensive andtime-consuming to correct.What is a Requirement?A requirement is that aspect that auser or clients wants from developer for which purpose he wants to development.So we can say that a Requirement typically refers to some aspect/features of anew or enhanced product of service. Requirement is that condition that must befulfilled by a system to satisfy a contract. IEEE610.12-1990 standard 24 defines a requirement as: “Acondition or capability needed by a user to solve a problem or achieve an objective.”Types of requirements:These are types of Requirements likeFunctional requirements and Non Functional RequirementsFunctional Requirement: what thesystem will do.
Mean what will be functionality of software.Non Functional Requirement: NonFunctional Requirements are that requirements that defines solutions that willmeet the functional requirement like accuracy, performance, security and modifiability.Requirement Engineering Process prefers to all life-cycle activities related to requirements inwhich include gathering, documenting and managing requirements with significanceof requirement in the software process.Common requirements engineeringactivities are understanding, elicitation, and structuring, compromise,verification and validation and to change management and requirements tracing.There are several process models available to describe the requirementsengineering process.The Role of Stakeholders inRequirements Engineeringrequirements engineering aims to convert potentially incomplete,incompatible and differing stakeholder goals into a complete set of highquality requirements.
As softwareprojects became more and more difficult, software developers face the challengeof identifying the goals of stakeholders who come from a diverse range of backgrounds.The major problems in requirements engineering is the management of differenttypes of inconsistencies ensuing from requirements specification, modeling, elicitationand prioritization activities. When there are multiple stakeholders then it becomesmore inconsistence. So different stakeholders have different ways of showingthemselves and different opinions and also priorities.
Different Levels ofRequirements:Requirement Engineering is major role to make software successful and satisfythe clients. There are different levels of requirements like Requirement atorganizational level, Requirement at product level, Requirement at project level.Requirements ManagementGood qualitysoftware is mostly determined by quality of the development process mean how toplan and managed whole development process to create it. Mostly projects or softwarefail due to mistakes and misunderstanding the user requirements. It is mostimportant to have good understanding of clients in requirement engineering.Requirements Elicitation,Specification and Modeling: In thisprocess it involves understanding the needs of stakeholders, modeling,eliciting requirements and collecting them in a depository.
This is animportant stage in software development.Prioritization: It is noteasy to decide for developers which requirements are important to customers.Requirements Dependencies andImpact Analysis: It is very important to knowthat requirements change and that this may significantly impact the softwareproject.Requirements Negotiation: In Negotiation Requirement engineering it isessentially a complex communication and negotiation process involving,designers, managers, project and maintainers customers.Quality Assurance: Quality Assurance is main objective to ensure that high quality requirements are recordedin the specification document. Good quality product always maintains theirworth and demand in market. The purpose of quality assurance is to establishreasonable and realistic levels of confidence when writing and managingrequirements.
Good Quality product always satisfies their customers or clients.A Survey of Techniques,Approaches, and Tools:Requirements elicitation is the process of looking for, finding,acquiring, and elaborating requirements for computer based systems. It is basicthat requirements are used rather than just captured or collected, in whichincluded discovery, emergence, and development elements in the elicitationprocess. Requirements elicitation is a complex process involving because in manyactivities with a variety of available techniques, approaches, and tools forperformingthem. The relative strengths and weaknesses of these determine when each isappropriate depending on the context and situation.
The objectives of this researchpaper are to present a comprehensive survey of important aspects of thetechniques, approaches, and tools for requirements elicitation, and examine thecurrent issues, challenges and trends that are faced by researchers andpractitioners in this field.Issues and Pitfalls ofRequirements Elicitation:There has been a little confusion from past about the complexityand difficulty of requirements elicitation in most situations, but the questionis: why is this still the case today? Main reason of problem is that it mayneed to be addressed and overcome during the process of requirementselicitation. In other words we can say that there are a large number ofcontextual, human, economic, and educational factors which effect and mayinhibit effective requirements elicitation.
For the sake of explanation we havecategorized some of the more normally happening issues and pitfalls inrequirements elicitation faced by both practitioners and researchers accordingto the aspect of requirements elicitation that they most relate to. Communication andUnderstanding is very common to understand thatstakeholders have difficulty articulating their requirements. In some casesthis may be a result of the analyst and stakeholders not sharing a commonunderstanding of concepts and terms, or the analyst is unfamiliar with the problem.Quality of Requirements elicited may not be feasible, cost-effective, or easy tovalidate.In other cases they can be unclear, missing specifics, and not represented insuch away as can be measured or tested. Additionally, requirements may be defined atdifferent and inadequate levels of detail. Because the process of elicitationis informal by nature, a set of requirements may be incorrect, incomplete, inconsistent,and not clear to all stakeholders. The context in which requirements areelicited and the process itself is inherently volatile.
As the project developsand stakeholders become more familiar with the problem and solution domains,the goals of the system and the wants of the users are susceptible to change.In this way theprocess of elicitation can actually cause requirements volatility and thereforeaffect the quality of the requirements as a whole.