19
Software Requirements Engineering Negotiation Process Lecture-18

Software Requirements Engineering Negotiation Process Lecture-18

Embed Size (px)

Citation preview

Page 1: Software Requirements Engineering Negotiation Process Lecture-18

Software Requirements Engineering

Negotiation Process

Lecture-18

Page 2: Software Requirements Engineering Negotiation Process Lecture-18

Recap Elaboration process Negotiation process

Page 3: Software Requirements Engineering Negotiation Process Lecture-18

Today’s lecture Negotiation process

Activities Negotiation meetings Requirement piroritization

Page 4: Software Requirements Engineering Negotiation Process Lecture-18

4

Negotiation as a process

Page 5: Software Requirements Engineering Negotiation Process Lecture-18

5

Negotiation During negotiation, the software engineer

reconciles the conflicts between what the customer wants and what can be achieved given limited business resources

Requirements are ranked (i.e., prioritized) by the customers, users, and other stakeholders

Risks associated with each requirement are identified and analyzed

Rough guesses of development effort are made and used to assess the impact of each requirement on project cost and delivery time

Using an iterative approach, requirements are eliminated, combined and/or modified so that each party achieves some measure of satisfaction

Page 6: Software Requirements Engineering Negotiation Process Lecture-18

6

Stages

Page 7: Software Requirements Engineering Negotiation Process Lecture-18

7

Art of negotiation Recognize that it is not competition Map out a strategy Listen actively Focus on the other party’s interests Don’t let it get personal Be creative Be ready to commit

Page 8: Software Requirements Engineering Negotiation Process Lecture-18

Software Requirements Engineering8

Negotiation meetings An information stage where the nature of the problems

associated with a requirement is explained. A discussion stage where the stakeholders involved

discuss how these problems might be resolved. All stakeholders with an interest in the requirement should be

given the opportunity to comment. Priorities may be assigned to requirements at this stage.

A resolution stage where actions concerning the requirement are agreed. These actions might be to delete the requirement, to suggest

specific modifications to the requirement or to elicit further information about the requirement.

Page 9: Software Requirements Engineering Negotiation Process Lecture-18

9

Meeting steps

Page 10: Software Requirements Engineering Negotiation Process Lecture-18

Requirement Prioritization (RP)

10

Page 11: Software Requirements Engineering Negotiation Process Lecture-18

11

Why is prioritization a problem?

Page 12: Software Requirements Engineering Negotiation Process Lecture-18

Semi-Automated Vs Manual

12

Page 13: Software Requirements Engineering Negotiation Process Lecture-18

13

Semi-Automated Vs Intelligent

Page 14: Software Requirements Engineering Negotiation Process Lecture-18

Prioritization Techniques

14

Technique Name

How it works How its evaluates Performance/accuracy of requirement Prioritization

Manual orAutomated

AHP [1,2]

Method steps Set of requirements ‘n’

in the form of matrix, rows and columns n x n matrix.

Pairwise comparisons according to the given criteria of all requirements are performed.

Cost is being checked. Use normalized

columns. Estimates of

eigenvalues on the basis of normalized columns.

On the basis of eigenvalues estimation, relative values of each requirement are assigned.

Diagram is made to show the scales of each requirement.

  To make hierarchy to

structure the problem. Elicit judgments that

replicate the idea, emotions and feelings.

Representation of these judgments (pairwise comparison) in the form of numbers.

Use these numbers to get the elements in prioritized form in hierarchy.

Synthesize results Changes in judgments

to analyze the sensitivity.

Calculates the scales of each requirements in terms of cost, benefits and risks

Not applicable on large set or requirements

Scalability Issue Not useful for

large projects. Help to reduces

hindrance in decision.

Lengthy process

Semi-Automated

Page 15: Software Requirements Engineering Negotiation Process Lecture-18

15

Technique Name

How it works How its evaluates Performance/accuracy of requirement Prioritization

Manual orAutomated

Planning Game [3] 

Requirements written on cards which are further divided into three different lots. The lots get the sorted list on an ordinal scale. On the basis of those

Requirements that are essential for system to be functional.

Those requirements which are not much important but gives substantial value.

Those requirements that would be pleasant to have in system.

 

All candidates’ requirements are outlined.

Each requirement is put into the appropriate pile and continues until all the requirements are sorted.

All the requirements that are present on the pile of “those without the system will not function” are considered first.

Very flexible.Does not support regression testing.Used in extreme Programming.

Manual

MoScoW [4]  

All the requirements are grouped in to four priority groups, “Must have”, “Should Have”, “Could have”, and “WON’T have”.

Used in dynamic systems Keeping overview of important aspects of project.

If not done efficiently then I could cause failure of requirements.

Manual

Page 16: Software Requirements Engineering Negotiation Process Lecture-18

16

Technique Name

How it works How its evaluates Performance/accuracy of requirement Prioritization

Manual orAutomated

Genetic Algorithm [5]  

This approach does not elicit all comparison of pairs.

Only for that requirement pairs which effect the final ordering.

Use Genetic Algorithm Scalable ApproachOnly applicable on selective elicitation on allocated budget.

Semi-Automated / Intelligent

CB Rank [6] 

A machine learning technique Case base ranking or boosting Algorithm is used.Comprises of 3 steps: Pair Sampling Priority Elicitation Priority Learning

Automated method to rank the requirements that are not yet ranked.Implemented on case study.

FlexibleUse for large number of requirementsOvercome the issues of scalability.Inability to do negotiation with stakeholdersPossibility of same loss values during execution.

Semi-Automated/ Intelligent

Page 17: Software Requirements Engineering Negotiation Process Lecture-18

Working of CB Rank [6]

17

F1 F2 F3

R1 = 4 R1 = 1 R1 = 5

R2 = 2 R2 = 5 R2 = 4

R3 = 1 R3 = 3 R3 = 1

R4 = 4 R4 = 2 R4 = 3

R5 = 5 R5 = 4 R5 = 1

 

Pair Sampling

Priority Elicitation

Priority Learning

R = {r1, r2, r3, r4,r5}

Elicited Pairs {(r1, r2), (r3,

r4)}

r5, r4, r1, r2, r3

Page 18: Software Requirements Engineering Negotiation Process Lecture-18

18

1. T.L. Satty, “The analytic hierarchy process-what it is and how it is used”, Pergamon Journals Ltd, Vol. 9(3-5), pp. 161-176, 1987.

2. T.L. Saaty, The Analytic Hierarchy Process, McGraw-Hill, Inc. 1980.3. L. Karlsson, T. Thelin, B. Regnell, P. Berander, C. Wohlin, “Pair-wise

comparisons versus planning game partitioning- experiments on requirement prioritization techniques”, Empirical Software Engineering, Vol. 12(1), pp. 3-33, 2007.

4. P. Berander, “Evolving prioritization for software product management”, Blekinge Institute of Technology Doctoral Dissertation Series No 2007:07, Sweden, 2007.

5. P. Tonella, A. Susi, F. Palma,” Using Interactive GA for Requirements Prioritization”, 2nd International Symposium on Search Based Software Engineering, IEEE Computer Society, Vol. 57(66), pp. 7-9, Sept. 2010

6. A. Perini, A. Susi, P. Avesani, “A Machine learning Approach to software Requirements Prioritization”, IEEE Transactions on software engineering, Vol.39(4), pp. 445-461, April 2013.

Page 19: Software Requirements Engineering Negotiation Process Lecture-18

19

Summary