- 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
- Stakeholders are identified together with their personal objectives (win conditions)
- 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
- Identify overlapping statements
Refer to some common or inter-related henomena
Refer to common temrs
- Detect conflicts among them & document them
- 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
- 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