Title: Chapter 8, Rationale Management
1Chapter 8,Rationale Management
2An aircraft example
- A320
- First fly-by-wire passenger aircraft
- 150 seats, short to medium haul
- A319 A321
- Derivatives of A320
- Same handling as A320
- Rationale
- Reduce pilot training maintenance costs
- Increase flexibility for airline
3An aircraft example (2)
- A330 A340
- Long haul and ultra long haul
- 2x seats, 3x range
- Similar handling than A320 family
- Rationale
- With minimum cross training, A320 pilots can be
certified to fly A330 and A340 airplanes - Consequence
- Any change in these five airplanes must maintain
this similarity
4Overview
- Rationale
- What is it?
- Why should you care?
- Rationale methods
- Representing rationale
- Authoring rationale
- Accessing rationale
- State of practice research
- Summary
5What is rationale?
- Rationale is the reasoning that lead to the
system. - Rationale includes
- Issues that were addressed,
- Alternatives that were considered,
- Decisions that were made to resolve the issues,
- Criteria that were used to guide decisions, and
- Debate developers went through to reach a
decision.
6Why rationale?
- Software systems are similar to passenger
airplanes - They result from a large number of decisions
taken over an extended period of time. - Evolving assumptions
- Legacy decisions
- Conflicting criteria
- -gt High maintenance cost
- -gt Loss rediscovery of information
7Rationale helps deal with change
- Improve maintenance support
- Provide maintainers with design context
- Improve learning
- New staff can learn the design by replaying the
decisions that produced it - Improve analysis and design
- Avoid duplicate evaluation of poor alternatives
- Make consistent and explicit trade-off
8Levels of rationale
- No rationale captured
- Rationale is only present in memos, online
communication, developers memory - Rationale reconstruction
- Rationale is documented in a document justifying
the final design - Rationale capture
- Rationale is documented during design as it is
developed - Rationale integration
- Rationale drives the design
9Centralized traffic control
- CTC systems enable dispatchers to monitor and
control trains remotely - CTC allows the planning of routes and re-planning
in case of problems
10Centralized traffic control (2)
- CTC systems are ideal examples of rationale
capture - Long lived systems (some systems include relays
installed last century) - Extended maintenance life cycle
- Downtime is expensive (although not safety
critical) - Low tolerance for bugs
- Transition to mature technology
- Initial developers are not available
11Issues
- Issues are concrete problem which usually do not
have a unique, correct solution. - Issues are phrased as questions.
How should track sections be displayed?
How should the dispatcher input commands?
12Proposals
- Proposals are possible alternatives to issues.
- One proposal can be shared across multiple issues.
13Consequent issue
- Consequent issues are issues raised by the
introduction of a proposal.
display?Issue
addressed by
addressed by
addressed by
pointclickProposal
14Criteria
- A criteria represent a goodness measure.
- Criteria are often design goals or nonfunctional
requirements.
15Arguments
- Arguments represent the debate developers went
through to arrive to resolve the issue. - Arguments can support or oppose any other part of
the rationale. - Arguments constitute the most part of rationale.
16Arguments (2)
17Resolutions
- Resolutions represent decisions.
- A resolution summarizes the selected alternative
and the supporting argument. - A resolved issue is said to be closed.
- A resolved issue can be re-opened if necessary,
in which case the resolution is demoted.
18Resolutions (2)
19Representing rationale issue models
resolves
Issue?
Resolution.
is a consequence
responds
meets
fails -
supports objects to -
supports objects to -
Argument!
20Representing rationale (contd)
- Many issue models have been proposed
- IBIS, QOC, DRL, WinWin
- Similar in their essence
- Differ in the amount of detail that can be
captured - Challenges
- Require tool support for capture and access
- Require integration with CASE and project
management tools - Require integration with methodology
21Authoring rationale
- Approaches
- Reconstruction
- Record-and-replay
- Byproduct of development methodology
- Incremental and semi automated structuring
- Challenges
- Lot of information to capture
- Disruptive for developers
- Formalizing knowledge is expensive
22Record and replay example meeting management
- Facilitator posts an agenda
- Discussion items are issues
- Participants respond to the agenda
- Proposed amendments are proposals or additional
issues - Facilitator updates the agenda and facilitates
the meeting - The scope of each discussion is a single issue
tree - Minute taker records the meeting
- The minute taker records discussions in terms of
issues, proposals, arguments, and criteria. - The minute taker records decisions as resolutions
and action items.
23Record and replay example database discussion
agenda
- 3. Discussion
- I1 Which policy for retrieving tracks from the
database? - I2 Which encoding for representing tracks in
transactions? - I3 Which query language for specifying tracks
in the database request?
24Record and replay example database discussion
- I1 Which policy for retrieving tracks from the
database? - Jim How about we just retrieve the track
specified by the query? It is straightforward to
implement and we can always revisit it if it is
too slow. - Ann Prefetching neighboring tracks would not be
much difficult and way faster. - Sam During route planning, we usually need the
neighbor tracks anyway. Queries for route
planning are the most common queries. - Jim Ok, lets go for the prefetch solution. We
can revert to the simpler solution if it gets too
complicated.
25Record and replay example database discussion
minutes
- 3. Discussion
- I1 Which policy for retrieving tracks from the
database? - P1.1 Single tracks!
- A- Lower throughput.
- A Simpler.
- P1.2 Tracks neighbors!
- A Overall better performance during route
planning, we need the neighbors anyway. - ref 1/31 routing meeting
- R1 Implement P1.2. However, the prefetch
should be implemented in the database layer,
allowing use to encapsulate this decision. If all
else fails, we will fall back on P1.1.
26Methodology by-product examplethe Inquiry-Based
Cycle
Requirements
Change
Challenge
Question ?
D
Answer !
Decide
Evolution
Reason .
Discussion
27Accessing rationale
- Browse search
- Full text search allows to identify interesting
nodes - Issue model links allow the browsing of related
issues quickly - Passive active design critique
- Rationale can be used by knowledge based
critiques to evaluate a design - Challenges
- Evolving terminology
- Navigation through a large flat space
28State of the practice
- Standalone issue based tools
- QuestMap
- Problem management tools
- Work flow application tracking problems and
resolutions - Integrated with configuration management
- Some tools (e.g., ClearQuest) allow schema to be
customized - RequisitePro
- Requirements management
- Integrated with configuration management
- Explicitly captures rationale behind change
29State of research
- Many solutions for representation exist and can
be tailored to a specific problem - Progress in natural language search and in
hypertext technology make access a less critical
issue. - Current challenges
- Integration with methodology
- Integration with tools
- Overhead
30Open issues
- Formalizing knowledge is costly.
- Maintaining a consistent design model is
expensive. - Capturing and maintaining its rationale is worse.
- The benefits of rationale are not perceived by
current developers. - If the person who does the work is not the one
who benefits from it, the work will have lower
priority. - 40-90 of off-the-shelf software projects are
terminated before the product ships. - Capturing rationale is usually disruptive.
- Current approaches do not scale to real problems
31Summary
- Capturing rationale is critical
- Argumentation of alternatives
- Explicit design criteria
- Information relevant for future change
- Issue models provide a good representation
- Offer a structured solution to capture rationale
- Make it easier to browse rationale information
- Rationale needs to be integrated through out the
process - Provide a short term incentive
- Decrease setup cost