se - requirement engineering

53
Requirements Engineering

Upload: adarsh-patil

Post on 26-Nov-2014

125 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: SE - Requirement Engineering

Requirements Engineering

Page 2: SE - Requirement Engineering

Overview• Describe requirement engineering activities

and processes. • Look into techniques, problems, challenges of:

– Feasibility Studies– Requirements elicitation– Requirement specification– Requirements Validation– Requirements management and evolution

Page 3: SE - Requirement Engineering

Importance of Requirements• Making design decisions without understanding

all the constraints on the system to be developed results in a system which fails to meet customer’s expectations

• Costs of correcting errors increases as the design process advances.

• An error detected in the maintenance phase is 20 times as costly to fix as an error detected in the coding stage.

Page 4: SE - Requirement Engineering

Cumulative effects of error

Page 5: SE - Requirement Engineering

The Basics• A requirement mandates that something be

accomplished, transformed, produced or provided

• Requirements engineering is the discipline concerned with understanding the externally imposed conditions on a proposed computer system, determining what capabilities will meet these imposed conditions and and documenting those capabilities as the software requirements for the computer system.

Page 6: SE - Requirement Engineering

Requirements Engineering Process

• The processes used for RE vary widely depending on the application domain, the people involved and the organisation developing the requirements

R e q u ire m e nts E licita t ion R e q u irem e n ts A n a lys is

R e q u ire m en ts S p e c ifica tion R e q u ire m en ts V e rif ica tion

R e qu irem e nts M a n ag e m e nt

R e q u ire m e n ts E ng in ee ring

Page 7: SE - Requirement Engineering

Requirements Engineering Process

• Requirements elicitation : The process through which clients and developers review, articulate and understand the needs of the clients and the constraints on the software

• requires involvement with the client, domain experts, and end-users in order to establish an the client’s needs and the constraints on the system. Here we use techniques such as: (1) Interviews, (2) Questionnaires, (3) Focus groups, (4) Apprenticing, and (5) modelling.

Page 8: SE - Requirement Engineering

Requirements Engineering Process

• Requirements Analysis : The process of analysing the needs of the clients in order to arrive at a definition of the requirements

• aims to deepen our understanding of the constraints and client needs

• Requirements Specification : The process by which a document is developed which clearly communicates the requirements.

• The requirements are captured, or expressed, or articulated, in a software requirements specification.

Page 9: SE - Requirement Engineering

Requirements Engineering Process

• Requirements Validation : The process of ensuring that the requirements and the Software Requirements Specification are in compliance with the needs of the clients and the system

• techniques here include (1) reviews, inspections and walkthroughs of requirements, and (2)prototyping.

• Requirements Management and evolution : The planning and controlling of the requirements engineering processes. Requirements specification should evolve with time.

Page 10: SE - Requirement Engineering

Feasibility Study

Page 11: SE - Requirement Engineering

Feasibility

• Feasibility studies aim to objectively and rationally– Uncover the strengths and weaknesses of the existing

business or proposed venture – Opportunities and threats as presented by

the environment.– The resources required to carry through.– Ultimately the prospects for success of the proposition

• In its simplest term, the two criteria to judge feasibility are cost required and value to be attained.

Page 12: SE - Requirement Engineering

Types of Feasibility

• The assessment is based on an outline design of system requirements in terms of Input, Processes, Output, Fields, Programs, and Procedures.

• Technological feasibility – carried out to determine whether the company has the

capability, in terms of software, hardware, personnel and expertise, to handle the completion of the project

– when writing a feasibility report, the following should be taken to consideration:

• A brief description of the business• The part of the business being examined• The human and economic factor• The possible solutions to the problems

Page 13: SE - Requirement Engineering

Types of Feasibility• Economic analysis

used method for evaluating the effectiveness of a new system. More commonly known as cost/benefit analysis, the procedure is to determine the benefits and savings that are expected from a candidate system and compare them with costs. If benefits outweigh costs, then the decision is made to design and implement the system. Cost-based study: It is important to identify cost and benefit factors, which can be categorized as follows:

1. Development costs2. Operating costs.

This is an analysis of the costs to be incurred in the system and the benefits derivable out of the system.Time-based study: This is an analysis of the time required to achieve a return on investments. The future value of a project is also a factor.

Page 14: SE - Requirement Engineering

Types of Feasibility• Legal feasibility

Determines whether the proposed system conflicts with legal requirements, e.g. data processing system must comply with the local Data Protection Acts.

• Operational feasibilityOperational feasibility is a measure of how well a proposed system

solves the problems, and takes advantage of the opportunities identified during scope definition and how it satisfies the requirements identified in the requirements analysis phase of system development.

• Schedule feasibilityA project will fail if it takes too long to be completed before it is

useful. Typically this means estimating how long the system will take to develop, and if it can be completed in a given time period using some methods like payback period. Schedule feasibility is a measure of how reasonable the project timetable is. You need to determine whether

the deadlines are mandatory or desirable.

Page 15: SE - Requirement Engineering

Types of Feasibility• Financial feasibility

In case of a new project, financial viability can be judged on the following parameters:– Total estimated cost of the project– Financing of the project in terms of its capital structure, debt equity ratio and

promoter's share of total cost– Existing investment by the promoter in any other business– Projected cash flow and profitability

• Other feasibility factors:– Market and real estate feasibility– Resource feasibility– Cultural feasibility

Page 16: SE - Requirement Engineering

Requirements Elicitation

Page 17: SE - Requirement Engineering

• Requirements Elicitation is the process of discovering the requirements for a system by communication with customers, system users and others who have a stake in the system development.

Elicitation

Page 18: SE - Requirement Engineering

• The “Yes, But” syndrome

• The Undiscovered Ruins

• “User and Developer” syndrome

• “The sins of your predecessors”

Challenges of Requirements Elicitation

Page 19: SE - Requirement Engineering

The “Yes, But” syndrome

• First time users see the system the first reaction is either, “wow this is so cool” or “Yes, but, hmmmmm, now that I see it, what about this…? Wouldn’t it be nice …?

• Anticipate that there will be “yes, buts” and add time and resources to plan for feedback.

• Tends to be User Interface centric, these tend to be the touch points of the system by the users.

Page 20: SE - Requirement Engineering

The “Undiscovered Ruins” syndrome

Teams struggle with determining when they are done with requirements elicitation.

– Is done when all the requirements are elicited or have they found at least enough?

– Like asking an archeologist “how many undiscovered ruins are there?”

Page 21: SE - Requirement Engineering

The “User and the developer” syndrome

• Users do not know what they want, or they know what they want but cannot articulate it.

• Users think they know what they want until developers give them what they said they wanted.

• Analysts think they understand user problems better than users do.

• Recognize and appreciate the user as domain experts; try different techniques.

• Provide alternative elicitation techniques earlier; storyboard, role playing, prototypes, and so on.

• Put the analyst in the users place. Try role playing for an hour or a day.

CharacteristicCharacteristic ResponseResponse

Page 22: SE - Requirement Engineering

The “living with the sins of your predecessors” syndrome

• Like it or not your users (marketing) and developers remember what happened in the past.

– Quality programs that promised things would be different.– The last project where requirements were vague and/or

were delivered short of expectations.

• Need to build trust, slowly. Do not over commit to features, schedule, or budget.

• Build success by delivering highest priority features early in the process.

Page 23: SE - Requirement Engineering

The Requirements Elicitation techniques

• Interviewing and questionnaires• Requirements workshops• Braining Storming and idea reduction• Use Cases• Role Playing• Prototyping

EX:Summary

Page 24: SE - Requirement Engineering

Interview : Context Free Question

• Goal is to prevent prejudicing the user’s response to the questions.

• Examples:

– Who is the user?– Who is the customer?– Are their needs different?– Where else can a solution to this problem be found?

• Context-free questions

• After context-free questions are asked, suggested solutions can be explored.

Page 25: SE - Requirement Engineering

Interview : Show Time

• Establish Customer or User Profile• Assessing the Problem• Understanding the User Environment• Recap the Understanding• Analyst’s Inputs on Customer’s Problems• Assessing Your Solution (if applicable)

Page 26: SE - Requirement Engineering

Technique : Requirement workshop

• It gathers all key stakeholders together for a short but intensely focused period.

• The use of an outside facilitator experienced in requirements management can ensure the success of the workshop.

• Brainstorming is the most important part of the workshop.

Page 27: SE - Requirement Engineering

Technique : Role Playing – variant on use cases

• Role playing allows stakeholders to experience the user’s world from the user’s perspective.

• A scripted walkthrough may replace role playing in some situations, with the script becoming a live storyboard.

(Class-Responsibility-Collaboration (CRC) cards, often used in object-oriented analysis, are a derivative of role playing.)

Page 28: SE - Requirement Engineering

Requirements Analysis & Specification

Page 29: SE - Requirement Engineering

Analysis & Specification

• Requirements analysis :The process of studying and analysing the customer and the user/stakeholder needs to arrive at a definition of software requirements

• Requirements Specification:o A document that clearly and precisely

describes essential requirements of software and external interfaces (functions, performance, quality etc.)

o each requirement is specified such that its achievement is capable of being verified by a prescribed method like inspection, test.

Page 30: SE - Requirement Engineering

Analysis of Elicitation Results

Analysis of the results of elicitation process helps to create a better vision of the product and its specification by:

• Explaining the problem statement better• Marketing group establishes positioning of

the product• Stakeholder and user summaries

o user is special case of stakeholdero identify stakeholder w.r.t developmento identify stakeholder w.r.t system

Page 31: SE - Requirement Engineering

• The precision to which Requirements are specified is a function of• Expertise of developers • Knowledge developers and testers have of the

domain – the more they know, the less specific the specification needs to be

• Access to a domain representative• For example, in xp, requirements may be specified in

less detail but there is a customer representative on site daily.

Requirement Specification

Page 32: SE - Requirement Engineering

Requirements Perspectives

• User requirements– Statements in natural language plus diagrams of the

services the system provides and its operational constraints. Written for customers.

• System requirements– A structured document setting out detailed

descriptions of the system’s functions, services and operational constraints. Defines what should be implemented so may be part of a contract between client and contractor.

Page 33: SE - Requirement Engineering

Types of Requirements• Functional requirements :

Statements of services, how the system should react to particular inputs, what functionalities is to be provided. Functional requirements are not concerned with how these functions are to be achieved, just what is to be achieved.• Non – functional requirements:

deals with attributes, or properties, of the softwarerather than functions. We include here aspects of the

software such as its performance, its usability, its reliability, any safety aspects and a range of other attributes.• Domain Requirements:

Requirements of the application domain of the system, reflect characteristics of that domain.

Page 34: SE - Requirement Engineering

Requirements Characteristics

• Unambiguous • Testable (verifiable)• Clear (Concise, terse, simple, precise)• Correct• Understandable• Feasible• Independent• Atomic• Necessary• Implementation – free (abstract)

Page 35: SE - Requirement Engineering

Requirements Characteristics

Besides the criteria for individual requirements, 3 criteria should apply to the set of requirements as a whole:• Consistent• Non redundant• Complete

Page 36: SE - Requirement Engineering

The OutputA Software Requirements Specification (SRS) – A formal Document as the OUTPUT of the Specification stage.

it is a complete description of the behavior of a system to be developed.

INCLUDES:Functional RequirementsNon- Functional RequirementsConstraintsDesign StrategyQuality and StandardsArchitectureDevelopment Methodology

Page 37: SE - Requirement Engineering

Sequence DiagramATM Database

CardCard number

Card OKPIN request

PIN

Option menu

<<exception>>invalid card

Withdraw request

Amount request

Amount

Balance request

Balance

<<exception>>insufficient cash

Debit (amount)

Debit response

Card

Card removed

Cash

Cash removed

Receipt

Validate card

Handle request

Completetransaction

Page 38: SE - Requirement Engineering

Activity Diagram

Page 39: SE - Requirement Engineering

Data Flow Diagram

Page 40: SE - Requirement Engineering

Validation

Page 41: SE - Requirement Engineering

Requirements ValidationValidation: ensures that the software being developed will satisfy itstakeholders– Requirements Validation checks the software requirements specification against stakeholders goals and requirements

Verification: ensures that each step followed in the process of building the software yields the right products – Requirements Verification checks the consistency of the software requirements specification artifacts and other Software development products (design, implementation, ...) against the specification

Page 42: SE - Requirement Engineering

Typical Requirements V&V approaches

• Tracing approaches• Prototyping• Testing• User manual writing • Formal validation• Reviews and inspections• Walkthroughs• Formal inspections• Checklists

Page 43: SE - Requirement Engineering

Requirements Management and Evolution

Page 44: SE - Requirement Engineering

Definition

Requirements management is the process of documenting, analyzing, tracing, prioritizing and agreeing on requirements and then controlling change and communicating to relevant stakeholders.

It is a continuous process throughout a project.

A requirement is a capability to which a project outcome (product or service) should conform.

Page 45: SE - Requirement Engineering

Requirements Pyramid

Page 46: SE - Requirement Engineering

CASE ToolsIBM Rational DOORS®Requirements management, traceability, and impact analysis capabilities for more formal, rigorous requirements engineering purposes, primarily suited to organizations creating manufactured systems and products

IBM Rational Requirements ComposerHelps teams to define requirements more effectively and manage them efficiently across the project lifecycle to gain better business outcomes through light-weight requirements practices

IBM Rational RequisitePro® Requirements management, traceability, and impact analysis capabilities for project teams, primarily suited to organizations creating application software

Page 47: SE - Requirement Engineering

Software Evolution

• The priority of requirements from different viewpoints changes during the development process.

• System customers may specify requirements from a business perspective that conflict with end-user requirements.

• The business and technical environment of the system changes during its development.

Page 48: SE - Requirement Engineering

Classification for changing requirement

• Enduring requirements. Stable requirements derived from the core activity of the customer organisation.

• Volatile requirements. Requirements which change during development or when the system is in use.

Page 49: SE - Requirement Engineering

Classification for changing requirement

• Enduring requirements. Stable requirements derived from the core activity of the customer organisation.

• Volatile requirements. Requirements which change during development or when the system is in use.

Page 50: SE - Requirement Engineering

Requirements Traceability

Requirements traceability is concerned with documenting the life of a requirement.

It should be possible to trace back to the origin of each requirement and Every change made to the requirement should therefore be documented in order to achieve traceability.

Even the use of the requirement after the implemented features have been deployed and used should be traceable[4].

Page 51: SE - Requirement Engineering
Page 52: SE - Requirement Engineering
Page 53: SE - Requirement Engineering