software engineering saeed akhtar the university of lahore lecture 7 originally shared for:...

19
Software Engineering Saeed Akhtar The University of Lahore Lecture 7 Orig inally shared for: mash hoood.webs.com

Upload: madeline-alexander

Post on 13-Jan-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Engineering Saeed Akhtar The University of Lahore Lecture 7 Originally shared for: mashhoood.webs.com

Software Engineering

Saeed Akhtar

The University of Lahore

Lecture 7Originally shared fo

r:

mashhoood.webs.com

Page 2: Software Engineering Saeed Akhtar The University of Lahore Lecture 7 Originally shared for: mashhoood.webs.com

Requirement Engineering

Page 3: Software Engineering Saeed Akhtar The University of Lahore Lecture 7 Originally shared for: mashhoood.webs.com

Requirement Engineering

RE helps software engineer to better understand the problem they will work to solve

Participant : Software Engineers, managers, customers and end users

RE is a software engineering action that begin during the communication activity and continues into the modeling activity

Page 4: Software Engineering Saeed Akhtar The University of Lahore Lecture 7 Originally shared for: mashhoood.webs.com

RE Provides the appropriate mechanism for• Understanding what the customer want• Analyzing need• Assessing feasibility• Negotiating a reasonable solution• Specifying a solution unambiguously• Validating the specification• Managing the requirement as they are

transformed into an operational system

Page 5: Software Engineering Saeed Akhtar The University of Lahore Lecture 7 Originally shared for: mashhoood.webs.com

Requirement Engineering Task

• Inception• Elicitation• Elaboration• Negotiation• Specification• Validation• Requirement Management

Page 6: Software Engineering Saeed Akhtar The University of Lahore Lecture 7 Originally shared for: mashhoood.webs.com

Requirement Engineering Tasks Inception—Establish a basic understanding of the problem

and the nature of the solution. Elicitation—Draw out the requirements from stakeholders. Elaboration—Create an analysis model that represents

information, functional, and behavioral aspects of the requirements.

Negotiation—Agree on a deliverable system that is realistic for developers and customers.

Specification—Describe the requirements formally or informally.

Validation—Review the requirement specification for errors, ambiguities, omissions, and conflicts.

Requirements management—Manage changing requirements.

Page 7: Software Engineering Saeed Akhtar The University of Lahore Lecture 7 Originally shared for: mashhoood.webs.com

InceptionAsk a set of questions that establish …

basic understanding of the problem

the people who want a solution

the nature of the solution that is desired, and

the effectiveness of preliminary communication and collaboration between the customer and the developer

Page 8: Software Engineering Saeed Akhtar The University of Lahore Lecture 7 Originally shared for: mashhoood.webs.com

Inception Cont’d• Inception process :

– Identify stakeholders• “who else do you think I should talk to?”

– Recognize multiple points of view– Work toward collaboration

• the effectiveness of preliminary communication and collaboration between the customer and the developer

– Asking The first questions• Who is behind the request for this work?• Who will use the solution?• What will be the economic benefit of a successful solution• Is there another source for the solution that you need?

Page 9: Software Engineering Saeed Akhtar The University of Lahore Lecture 7 Originally shared for: mashhoood.webs.com

Elicitation

• It certainly simple enough, but…• Why difficult

– Problem of Scope• The boundary of the system is ill-defined

– Problem of Understanding• The customer/users are not completely sure of what is

needed– Problem of volatility

• The requirement change over time

• To help overcame these problem, requirement engineers ,must approach the requirement gathering activity in an organized manner

Page 10: Software Engineering Saeed Akhtar The University of Lahore Lecture 7 Originally shared for: mashhoood.webs.com

Elicitation Process Guideline– meetings are conducted and attended by both

software engineers and customers– rules for preparation and participation are

established– an agenda is suggested – a "facilitator" (can be a customer, a developer, or

an outsider) controls the meeting– a "definition mechanism" (can be work sheets, flip

charts, or wall stickers or an electronic bulletin board, chat room or virtual forum) is used

– the goal is • to identify the problem• propose elements of the solution• negotiate different approaches, and• specify a preliminary set of solution requirements

Page 11: Software Engineering Saeed Akhtar The University of Lahore Lecture 7 Originally shared for: mashhoood.webs.com

Quality Function Deployment• Is a technique that translate the need of the

customer into technical requirement for software.

• QFD emphasize an understanding of what is valuable to the customer and then deploys these values throughout the engineering process

• QFD identifies three types of requirement :– Normal Requirement– Expected requirement– Exciting requirement

Page 12: Software Engineering Saeed Akhtar The University of Lahore Lecture 7 Originally shared for: mashhoood.webs.com

Elaboration• Expand requirement into analysis model• Elements of the analysis model

– Scenario-based elements• Functional—processing narratives for software

functions• Use-case—descriptions of the interaction between

an “actor” and the system– Class-based elements

• Implied by scenarios– Behavioral elements

• State diagram– Flow-oriented elements

• Data flow diagram

Page 13: Software Engineering Saeed Akhtar The University of Lahore Lecture 7 Originally shared for: mashhoood.webs.com

Negotiation• Agree on a deliverable system that is realistic for

developers and customers• SW team & other project stakeholders negotiate the

priority, availability, and cost of each requirement• The Process are :

– Identify the key stakeholders• These are the people who will be involved in the

negotiation– Determine each of the stakeholders “win conditions”• Win conditions are not always obvious

– Negotiate• Work toward a set of requirements that lead to “win-win”

Page 14: Software Engineering Saeed Akhtar The University of Lahore Lecture 7 Originally shared for: mashhoood.webs.com

SpecificationFinal work product produced by requirement

engineer. Can be any one (or more) of the following:

A written documentA set of modelsA formal mathematicalA collection of user scenarios (use-cases)A prototype

Page 15: Software Engineering Saeed Akhtar The University of Lahore Lecture 7 Originally shared for: mashhoood.webs.com

Validationexamine the specification to ensure that SW requirement isnot ambiguous, consistent, error free etc

A review mechanism that looks for• errors in content or interpretation

• areas where clarification may be required

• missing information

• inconsistencies (a major problem when large products or systems are engineered)

• conflicting or unrealistic (unachievable) requirements.

Page 16: Software Engineering Saeed Akhtar The University of Lahore Lecture 7 Originally shared for: mashhoood.webs.com

Validation Cont’dA review of the analysis model addresses the

following question : Is each requirement consistent with the overall objective

for the system/product?Have all requirements been specified at the proper level of

abstraction? That is, do some requirements provide a level of technical detail that is inappropriate at this stage?

Is the requirement really necessary or does it represent an add-on feature that may not be essential to the objective of the system?

Is each requirement bounded and unambiguous?Does each requirement have attribution? That is, is a

source (generally, a specific individual) noted for each requirement?

Do any requirements conflict with other requirements?

Page 17: Software Engineering Saeed Akhtar The University of Lahore Lecture 7 Originally shared for: mashhoood.webs.com

Validation Cont’d• Is each requirement achievable in the technical environment

that will house the system or product?

• Is each requirement testable, once implemented?

• Does the requirements model properly reflect the information, function and behavior of the system to be built.

• Has the requirements model been “partitioned” in a way that exposes progressively more detailed information about the system.

• Have requirements patterns been used to simplify the requirements model. Have all patterns been properly validated? Are all patterns consistent with customer requirements?

Page 18: Software Engineering Saeed Akhtar The University of Lahore Lecture 7 Originally shared for: mashhoood.webs.com

The problems is not that there are problems. The problem is expecting otherwise and thinking that having problems is a problem

Theodore Rubin

Page 19: Software Engineering Saeed Akhtar The University of Lahore Lecture 7 Originally shared for: mashhoood.webs.com

Thank You