1. Negotiation

Why

Requirement errors are the most expensive software errors => Change analysis, design, coding

To avoid late changes, sequential processes seek to control and minimise any changing requirements/designs

Improve the accuracy of the specification

Negotiate to remove inconsistency

Inconsistency gets even worse in the case of mission-critical systems = use formal methods

Waterfall model

Late change is very expensive -> to avoid change, prematurely create many work products -> when change happens, work products need to be changed/thrown out -> high cost

Should not be used when changes are likely

Inconsistency management

Inconsistencies generally arise from multiple viewpoints and concerns from different stakeholders

Must be detected and eventually resolved

Types of inconsistencies

Terminology clash

The same concept is given different names in different statement

E.g. participate vs attending a meeting

Handling

Use a glossary of terms that everyone agrees and sticks to

Have a list of accepted synonyms

Structure clash

The same concept is given different structures in different statement

E.g. excluded dates as a set of time points vs set of tim intervals

Handling

Use a glossary of terms that everyone agrees and sticks to

Have a list of accepted synonyms

Designation clash

The same name designates different concepts in different statements

E.g. meeting participation as full vs partial participation

Handling

Use a glossary of terms that everyone agrees and sticks to

Have a list of accepted synonyms

Strong conflict

There are statements that cannot be satisfied when taken together; their logical conjunction evaluates to false in all circumstances

Clasical inconsistency in logic i.e. contradiction

E.g. constaints of participants may not be disclosed to anyone else vs meeting initiatior should know constraints

Handle by negotation

Weak conflict

There are statements that are not satisfiable together under some condition i.e. potential conflict

E.g. return a borrowed book within two weeks vs keep a borrowed book as long as he/she needs it

Handle by negotiation

Strong and weak conflicts

Rooted from

Multiple stakeholders have different objectives and priorities

Such objectives are sometimes incompatible

Inherent incompatibilities between

Non-functional requirements

Functional + non-functional requirements

E.g.

Password based authentication for increased security non-functional) often conflicts with usability requirements (non-functional)

Performance requirements (non-functional) about system throughput may conflict with safety requirements (non-functional)

Negotiation

Used for conflict resolution

2 phases

  1. Stakeholders are identified together with their personal objectives (win conditions)
  1. Differences are reconciled through negotiation to reach a mutually agreed set of objectives (win-win conditions)

Guidelines

It's not a competition: both parties have to feel they've won or achieved something. Both will have to compromise

Listen actively while the other party is talking

Focus on the other party's interests

Don't let it get personal; focus on the problem that needs to be solved

Be creative

Conflict management process

  1. Identify overlapping statements

Refer to some common or inter-related henomena

Refer to common temrs

  1. Detect conflicts among them & document them
  1. Generate conflict resolutions

Informal detection: under what conditions the overlapping statements are not satisfiable together

Heuristic detection

Check "information" requirements vs confidentiality requirements that refer to related objects (e.g. users can be informed about book loan status vs students not alllowed to know which user has borrowed what)

Check requirements on decreasing some quantity vs requirements on increasing a related quantity (e.g. increase coverage of journal subscriptions vs decrease operational costs)

Formal detection: use formal techniques based on inconsistency checking e.g. formal methods model

When

Not too soon

To explore multiple alternative resolutions

Not too late

Before software development starts

Could develop anything from inconsistent statements

Allow for further elicitatioon of useful information within individual viewpoints in spite of their inconsistency with others

Approaches

Drop lower-priority statements -> no conflict

Avoid weak conflicts: ensure in some way or another that the condition for conflict can never become true

Weaken conflicting statements: make the conflicting statements less restrictive so that the conflict no longer exists

Specialise conflict source or target: identify the source/target in conflicting statemments and specialise these so that the conflict disappears e.g. staff user can know about book loan status

  1. Evaluate conflict resolutions and select the best one

Make a decision on which 'best' solution to select

Use evaluation criteria: effect on critical non-functional requirements; effect on other conflicts