JASS 2006 Advanced Topics in Software Engineering Rationale Management

JASS 2006
Advanced Topics in Software Engineering
Rationale Management
Tyutyunnick Pavel (paul_3@list.ru), Stefan Puchner (puchner@in.tum.de)
Steklov Institute St. Petersburg, Technical University München
Motivation
Example:
Slicing Ham
JASS 2006 (02.-12.04.2006) - Rationale Management
2
What is Rationale Management?
• Rationale
Justification for decisions
• Rationale Management
Capture and organize rationales in
•
•
•
•
•
Problem
Possible solutions
Arguments
Criteria
Decision
• Other models tell how – rationale tells why
JASS 2006 (02.-12.04.2006) - Rationale Management
3
Why Rationale Management? (I)
• Improves Decision making process:
– Explicitly splits decision making process into its
elements (criteria, priorities, …)
– Therefore enables more educated decisions
• Makes later changes easier and safer:
– Captures knowledge that is not included elsewhere and
makes it reusable
– Reminds developers of requirements that need to be
considered
JASS 2006 (02.-12.04.2006) - Rationale Management
4
Why Rationale Management? (II)
• Helps new developers
– Keeps the reasoning reproducible and comprehensible
for third persons
– Explains why the model is as it is
• Problems
– Big investment for gathering and maintaining additional
information
– Rationale models get very large
JASS 2006 (02.-12.04.2006) - Rationale Management
5
Transfer Question
Example:
Cookbook
JASS 2006 (02.-12.04.2006) - Rationale Management
6
Elements of a rationale
• Issue
unsolved question
• Proposal
possible solutions to issue
• Criterion
qualities proposals should have
• Argument
discussion for/against proposals
supported by criteria
• Resolution
selected solution to issue
JASS 2006 (02.-12.04.2006) - Rationale Management
7
Representation of rationales - example
storage in database:
Resolution
resolves
storage?:Issue
addressed by
addressed by
database:Proposal
raises
fails
which Database?:Issue
meets
flexibility$:Criterion
files:Proposal
fails
meets
is opposed by
simplicity$:Criterion
is supported by
extensibility-first
:Argument
JASS 2006 (02.-12.04.2006) - Rationale Management
8
Where can rationales be captured?
• Requirements analysis
Useful for developing test cases
• System design
Links nonfunctional requirements to design goals
(important if requirements change)
• Project management
Documents alternatives and risks, can provide fallback
solutions
• Integration and testing
Determine which decision created conflict
JASS 2006 (02.-12.04.2006) - Rationale Management
9
Levels of rationale capture
• No explicit rationale capture
Rationale in E-mails, memos, memories …
• Rationale reconstruction
Capture rationale afterwards / less detail
• Rationale capture
Rationale model besides other models
• Rationale integration
Rationale is central model
JASS 2006 (02.-12.04.2006) - Rationale Management
10
Capturing Rationale Activities
• Meetings
Take minutes, decompose into elements of rationales
• Electronic communication
Integrate rationale model into groupware
• Changes
Adapt rationale model, new resolutions
• Reconstructing rationale
Construction of rationale model based on memory and
actual system model
JASS 2006 (02.-12.04.2006) - Rationale Management
11
Managing rationale
Rationale management hardly used in industry
– Additional effort
– No direct connection between effort and benefit
 subject for management
• Include rational model in development tools
• Assign Responsibilities
– Minute taker
– Rationale editor
– Reviewer
JASS 2006 (02.-12.04.2006) - Rationale Management
12
Summary
Capturing rationale model is
– great effort but has
– huge benefits
Goal:
Improvements in capturing and maintaining
rationales to make rational management more
common
JASS 2006 (02.-12.04.2006) - Rationale Management
13
Conservative view & optimization
•
•
•
•
•
The major goals of management
Traditional management models
Difference between models
Optimization examples
Rational management implementation
Rational models integration experience
JASS 2006 (02.-12.04.2006) - Rationale Management
14
Questions ?
Source:
B. Bruegge & A. Dutoit.
Object-Oriented Software Engineering
(Second edition, International edition)
Pearson Prentice Hall, 2004.
JASS 2006 (02.-12.04.2006) - Rationale Management
15