Presentation on theme: "1 REQUIREMENT ENGINEERING Chapter 7. 2 REQUIREMENT ENGINEERING Definition Establishing what the customer requires from a software system. OR It helps."— Presentation transcript:
2 REQUIREMENT ENGINEERING Definition Establishing what the customer requires from a software system. OR It helps the software engineers to better understand the problem they will work to solve
3 A BRIDGE TO DESIGN AND CONSTRUCTION 1.RE is needed to improve the process of construction of software and the product. 2.RE is serves to create a better understanding of the problem to the software engineers thus forming a bridge between design till construction 3.RE process starts from the communication process and continues till the modeling activity.
4 It helps in earlier detection of mistakes, which will be much more costly to correct if discovered later. It forces clients to review requirements and supports agreement among developers and customers. It serves as a standard against which to test design and implementation for correctness and completeness. It supports project management, e.g. resource estimation (cost, personnel, skill, equipment,..). It boosts confidence among developers. Why Requirement Engineering?
5 Inception Inception is the starting of communication phase. This phase is divided into three context free questions: 1 st Context Free Question focuses, Who is behind the request of this work? Who will use the solution? What will be the economic benefit of a successful solution? “By this we can identify the interested stakeholders” REQUIREMENT ENGINEERING TASKS
6 2 ND Context-Free question focuses : What problem (s) will this solution address? Can you show me the business environment in which the solution will be used? “ By this software team gain a better understanding of the problem” 3 rd Context-free question Focuses: Are you the right person to answer these questions? Are my questions relevant to the problem? “These questions will help to break the ice” REQUIREMENT ENGINEERING TASKS
7 Elicitation The gathered information is refined in elicitation, this phase is also not simple enough 1.Problem of scope 2.Problem of understanding 3.Problems of volatility To overcome these problems Requirement engineer must approach the requirement gathering activity in an organized manner. REQUIREMENT ENGINEERING TASKS
8 Make traceability tables of Features, Dependencies, Subsystems and Interfaces. –This helps when a system is large and complicated. –Determining the connections between requirements can be a daunting task. –So, traceability tables make it bit easier. Develop user scenarios through UML diagrams like Use Case. Elicitation REQUIREMENT ENGINEERING TASKS
9 In this phase requirements are further refined in to an analysis model. It is a collection of Scenario based, activity based, class based, behavioral based, and flow oriented model elements that describe how end-user will interact with the system. This, phase helps to enhance the gathered information and to helps to get more information. Elaboration REQUIREMENT ENGINEERING TASKS
10 Negotiation In an ideal requirement engineering context, the inception, elicitation, elaboration tasks determine customers requirement in sufficient detail to proceed to subsequent software engineering steps. But unfortunately, this rarely happens. In reality customer and developer enter into a process of negotiation where customer may asked to balance functionality, performance and other product or system characteristics against cost and time to market. REQUIREMENT ENGINEERING TASKS
11 Negotiation The best negotiation strive for a “Win-Win” result. Customer wins by getting satisfied product and software team wins by working to realistic and achievable budgets and deadlines. In this phase rough “Guestimates” of development effort are made and used to assess the impact of each requirement. “ The intent of negotiation is to develop a realistic project plan” REQUIREMENT ENGINEERING TASKS
12 Specification A specification can be a written document, a set of graphical models, a prototype, a formal mathematical model or any combination of these. It is the final work product produced by the requirement engineering. It describes functions and performance of a computer based system and the constraints that will govern its development. REQUIREMENT ENGINEERING TASKS
13 Validation The work products produced after requirement engineering are assessed for quality during the validation step. It examines the specification to ensure that all software requirements have been stated unambiguously Inconsistencies, omissions, and errors have been detected and corrected. The primary requirements validation is the formal technical review. REQUIREMENT ENGINEERING TASKS
14 The review team that validates requirements includes software engineers, customers, users, and the other stakeholders who examine the specification looking for –Errors in content or interpretation –Areas where clarification may be required –Missing information, inconsistencies –and conflicting requirements. After this the requirement engineering phase is completed. Validation REQUIREMENT ENGINEERING TASKS