Requirements Conflict Examples

advertisement
Requirements Conflict Examples
Introduction:
This document contains examples of requirements conflicts and how two methods,
WinWin (Boehm et al., 1995) and Viewpoints (Finkelstein and Sommerville, 1996),
have tried to solve them.
Each example has been structured using an simplified version of the requirements
interaction management lifecycle proposed by W. Robinson (Robinson et al., 2003).
WinWin Example
Adapted from “Applying WinWin to quality requirements - A case study”
(In et al., 2001)
Process:
Requirements Partitioning:
Requirements are partitioned according to their quality attributes using an ‘plug-in’
for WinWin called QARCC (Boehm and In, 1996a). Namely: Dependability,
Interoperability, Usability, Performance, Evolvability & Portability, Cost &
Schedule, and Reusability. The stakeholder does this manually when a requirement is
added to the system.
Conflict Identification:
Interactions identified in three ways:
a) Manually by stakeholders
b) With the aid QARCC, which uses knowledge of interactions between quality
requirements that typically result in conflict.
Resolution Generation:
Resolutions generated in two ways:
a) Manually by stakeholders.
b) With the aid of the S-COST tool, which provides the user with a set of
possible conflict resolutions using the COCOMO model to perform a costbased analysis of requirements. This is limited to cost-based resolutions.
Resolution Selection:
The stakeholders select resolution options manually and an agreement schema is
drafted. WinWin’s iterative voting and adoption procedure is then used to agree on a
schema.
(Note: QARCC is used here to identify which stakeholders need to be notified of each
conflict. It does this by classifying each stakeholder into 1 of 6 groups, each of which
are typically concerned with differing quality attributes).
Example (Adapted): Electronic Library
Context:
“The purpose of this project is to create an attractive user-friendly prototype
for a virtual archive (i.e. a virtual framework for virtual items or collection groups
within a larger collection) of research materials”.
Requirement A: Item Retrieval
“This option allows the user to retrieve items in any format”.
Requirement B: No File Conversion
“File conversion should not be supported”.
Requirements Partitioning:
Requirement A tagged as a usability requirement
Requirement B tagged as a cost / schedule requirement
Conflict Identification:
QARCC’s expert knowledge system flags the possibility of a conflict due to the fact
that usability and cost / schedule requirements typically stand a good chance of
conflicting with each other. The conflict is then verified by the development team
with the following issue: “What is meant by any formats? It may not be possible to
retrieve in any format since file conversion will not be supported”.
Resolution Generation:
Done manually, options as follows:
a) Support file conversions for all major types and increase the budget for the
project.
b) Support file conversions for limited set of formats (e.g. .pdf, .rtf and .doc) and
increase the budget for the project.
c) Make budget and schedule allowances by removing Requirement F: “Provide
a wizard feature for setting up archives”.
d) Add the requirement: “A separate version of each item, one for every format
required, must be submitted to the system when a new item is added”.”.
e) Only support the retrieval of items in formats that are available.
Resolution Selection:
The developers proposed e) to be the best option and this was agreed upon by all
stakeholders.
Viewpoints Example
Adapted from “Managing inconsistencies in an evolving specification”
(Easterbrook and Nuseibeh, 1995)
Process:
Requirements Partitioning:
Partitioning may take place arbitrarily for ease of merging of viewpoints.
Conflict Identification:
A set of logical consistency rules is built to compare different viewpoints (and the
requirements expressed within them by proxy).
Resolution Generation:
Resolutions are generated to fix the logical inconsistencies arising.
Resolution Selection:
No support
Example: Telephone system
Context:
A telephony system is to be developed which will allow for calls to be made
and received from a phone.
Viewpoint A: Calling
Viewpoint B: Incoming Call
Requirements Partitioning:
The diagrams above are the result of a partitioning step that creates a diagram to
represent a subset of the behaviours of a particular device. This was done for ease of
merging of the two viewpoints, and took place manually.
Conflict Identification:
A set of logical rules was constructed to test the consistency of the two diagrams. One
of these rules reveals that nowhere is it specified what should happed if the receiver is
replaced by the callee when in the “connected” state.
Resolution Generation:
A list of resolutions were generated from the following sources:
a) Derived directly from the rule that failed
b) Offered by the developer
c) Method specific heuristics
The resolutions were was follows:
ViewPoint A actions:
1) delete transition(off hook, idle)
2) move state(connected) so it is no longer part of state(off hook)
3) move transition(off hook, idle) so it no longer connects from state(off hook)
4) delete state(connected)
5) delete state(idle)
6) rename state(connected)
7) rename state(idle)
8) devolve transition(off hook, idle) to all sub-states of off hook
ViewPoint B actions:
9) delete state(connected)
10) delete state(idle)
11) rename state(connected)
12) rename state(idle)
Joint Actions:
13) copy transition(off hook, idle) from ViewPoint A to ViewPoint B as
transition(connected, idle)
Resolution Selection:
Resolution 13) was chosen manually. This new state transition diagram is as follows:
Notes on resolutions:
What are our assumptions?
- We have already identified:
a) A set of conflicts.
b) Possibly a list of possible resolutions to the conflicts.
c) Possibly some information on the impact of the resolutions on the quality
goals.
What would we like to do?
- Provide the software engineer with resolutions strategies and assistance with
applying them.
What conflict resolution strategies exist?
- To pick the most desirable resolution to a conflict, given a set of possible
resolutions.
What characteristics of resolutions might be desirable?
- Less cost / schedule of feature development
- Less cost / schedule of the resolution applied
- More functionality
- Effects on quality goals.
How can we help them to pick a resolution?
- Automatically pick a resolution for them
- Provide expert knowledge on ‘good’ ways to pick resolutions.
- Sort the resolutions into a list ordered according to the ‘best’ solution.
What are the characteristics of resolutions that could be considered
to provide the ‘best’ solution?
- Least cost; see (Boehm and In, 1996b)
- Highest level of stakeholder satisfaction (see Note 1).
- Least disruption to the rest of the requirements (see Note 2).
- Leaves the system with the most amount of functionality.
- Provides the highest level of satisfaction to the soft goals.
- As above, but with the use of multi-criteria preference analysis (In et
al., 2002)
- Suggest a set of actions that will make the choice of resolution easier (such
as asking for information from a stakeholder).
- Remove resolutions from the list that we know cannot be chosen.
When might we know when a resolution is not going to be chosen?
- When it involves the editing or removal of an object that should not
be changed (see Note 3).
- Give the software engineer advice on which conflict to resolve first, given that a set
of conflicts has been identified.
When might it be best to resolve one conflict before resolving others?
- When the resolution to a conflict is likely to affect many other conflicts.
How could we deduce whether resolving a conflict is likely to affect
other conflicts?
- It is higher up in the goal-graph, therefore a solution to the conflict
would be affect other conflicts.
- It has the many links to artefacts, thus a resolution would be likely to
affect many other conflicts.
- It can be deduced that that the conflict is the ‘root’ of many other
conflicts, and thus resolving it would also resolve others.
- Provide the software engineer with a set of actions that will make the conflict easier
to resolve
What might these actions be?
- Further questions asked of stakeholders
- The use of analytical methods that might provide better insight.
- To consider certain types of strategy for resolution that might have been
overlooked.
- Give the software engineer advice on when not to resolve a conflict.
When might it be a good idea not to resolve a conflict?
- When it will be easier to resolve the conflict at a later date.
- When the conflict might ‘go-away’ if left alone.
- When the resolution of a conflict is infeasible, or is of a very high cost.
How could information on which resolution strategy to choose be obtained?
- Through research
- From previous resolution choices made during a project
Notes:
Note1: Resolutions based on highest level of stakeholder satisfaction
Each option affects different stakeholders in different ways. Is there a way of
assessing exactly how much they are affected? Maybe give a score out of 10 to each
stakeholder according to their level of authority, and multiply that by a score of how
much they value each resolution? Maybe limit the amount of ‘points’ each
stakeholder can give to resolutions to avoid people scoring 10 to any resolution that is
to their advantage.
Note 2: Resolutions based on the least disruption to the rest of the requirements
Could the ‘ripple-effect’ be considered here? We would need to start with a model: A
goal-graph may be of use here again. All conflicts and requirements relationships
would need to be considered in order to calculate the effect of a particular resolution.
This seems like an intractable problem: Partitioning and other smart methods for
analysis may help here. The result would be to order the list of resolutions according
to the number of new conflicts they produce.
Might it be possible to calculate the probability that a resolution might cause further
disruption based on experience and some data about requirements? This would save
having the check through every possible requirement interaction and might give a
solution that is ‘good enough’.
Note 3: How do we know when an object cannot be changed
The software engineer could tag requirements / artefacts, denoting that they cannot be
edited or deleted. Resolutions that involve these objects to be deleted or edited can
automatically be removed from the list of resolutions.
A set of rules can be set up at the start of the project that forbid the deleting or editing
of certain types of artefacts. For example: we could say that assumptions cannot be
altered.
Could we do this on the fly? i.e. Allow the software engineer to choose to ignore
resolutions which alter certain types on artefacts on a per conflict basis.
We could also change which artefacts are considered ‘unchangeable’ according to the
current stage of the project lifecycle. For example: At the early stages of a project use
case diagrams could be altered without too much worry, but as the project progresses
they might be flagged as ‘unchangeable’ as changing them would be a lot more
costly.
References:
BOEHM, B., BOSE, P., HOROWITZ, E. & LEE, M. J. (1995) Requirements
negotiation and renegotiation aids: A theory-w based spiral approach. IEEE
Proceedings of the 17th ICSE Conference, 243-253.
BOEHM, B. & IN, H. (1996a) Identifying quality requirements conflicts. IEEE
Software, 13, 25-35.
BOEHM, B. & IN, H. (1996b) Software cost option strategy tool (S-COST).
Proceedings of 20th International Computer Software and Applications
Conference, 15-20.
EASTERBROOK, S. M. & NUSEIBEH, B. (1995) Managing inconsistencies in an
evolving specification. Proceedings of 2nd International Symposium on
Requirements Engineering (RE '95), 48-55.
FINKELSTEIN, A. & SOMMERVILLE, I. (1996) The viewpoints FAQ. Software
Engineering Journal, 11, 2-4.
IN, H., BOEHM, B., RODGER, T. & DEUTSCH, M. (2001) Applying WinWin to
quality requirements - A case study. Proceedings of the 23rd International
Conference on Software Engineering, 555- 564.
IN, H. P., OLSON, D. & RODGERS, T. (2002) Multi-criteria preference analysis for
systematic requirements negotiation. Proceedings of the 26th International
Computer Software and Applications Conference on Prolonging Software
Life: Development and Redevelopment, 887 - 892.
ROBINSON, W. N., PAWLOWSKI, S. D. & VOLKOV, V. (2003) Requirements
interaction management. GSU CIS Working Paper 99-7.
Download