Rationale Management Chapter 12, An aircraft example A320 First - - PDF document

rationale management chapter 12 an aircraft example
SMART_READER_LITE
LIVE PREVIEW

Rationale Management Chapter 12, An aircraft example A320 First - - PDF document

Object-Oriented Software Engineering Using UML, Patterns, and Java Rationale Management Chapter 12, An aircraft example A320 First fly-by-wire passenger aircraft 150 seats, short to medium haul A319 & A321 Derivatives of A320


slide-1
SLIDE 1

Using UML, Patterns, and Java

Object-Oriented Software Engineering

Chapter 12, Rationale Management

slide-2
SLIDE 2

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 2

An aircraft example

A320

♦ First fly-by-wire passenger aircraft ♦ 150 seats, short to medium haul

A319 & A321

♦ Derivatives of A320 ♦ Same handling as A320

Design rationale

♦ Reduce pilot training & maintenance costs ♦ Increase flexibility for airline

slide-3
SLIDE 3

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3

An aircraft example (2)

A330 & A340

♦ Long haul and ultra long haul ♦ 2x seats, 3x range ♦ Similar handling as A320 family

Design 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

slide-4
SLIDE 4

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4

Overview: rationale

♦ What is rationale? ♦ Why is it critical in software engineering? ♦ Centralized traffic control example ♦ Rationale in project management

! Consensus building ! Consistency with goals ! Rapid knowledge construction

♦ Summary

slide-5
SLIDE 5

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 5

What is rationale?

Rationale is the reasoning that lead to the system. Rationale includes:

♦ the issues that were addressed, ♦ the alternatives that were considered, ♦ the decisions that were made to resolve the issues, ♦ the criteria that were used to guide decisions, and ♦ the debate developers went through to reach a decision.

slide-6
SLIDE 6

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 6

Why is rationale important in software engineering?

Many software systems are like aircraft: They result from a large number of decisions taken over an extended period of time.

♦ Evolving assumptions ♦ Legacy decisions ♦ Conflicting criteria

  • > high maintenance cost
  • > loss & rediscovery of information
slide-7
SLIDE 7

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7

Uses of rationale in software engineering

♦ Improve design support

! Avoid duplicate evaluation of poor alternatives ! Make consistent and explicit trade-offs

♦ Improve documentation support

! Makes it easier for non developers (e.g., managers, lawyers, technical writers) to review the design

♦ Improve maintenance support

! Provide maintainers with design context

♦ Improve learning

! New staff can learn the design by replaying the decisions that produced it

slide-8
SLIDE 8

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 8

Representing rationale: issue models

Argumentation is the most promising approach so far:

♦ More information than document: captures trade-offs and

discarded alternatives that design documents do not.

♦ Less messy than communication records: communication

records contain everything. Issue models represent arguments in a semi-structure form:

♦ Nodes represent argument steps ♦ Links represent their relationships

slide-9
SLIDE 9

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 9

Decision: Smart Card + PIN

ATM Example

Question: Alternative Authentication Mechanisms? References: Service: Authenticate Option 1: Account number Option 2: Finger print reader Option 3: Smart Card + PIN Criteria 1: ATM Unit Cost Criteria 2: Privacy

+ + + – + –

slide-10
SLIDE 10

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 10

Centralized traffic control

♦ CTC systems enable dispatchers to monitor and control trains

remotely

♦ CTC allows the planning of routes and replanning in case of

problems

T1291> <T1515

Signals Track circuits Switches Trains

S1 S2 S3 S4 SW1 SW2

slide-11
SLIDE 11

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11

Centralized 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

♦ Although not life critical, downtime is expensive

! Low tolerance for bugs ! Transition to mature technology

slide-12
SLIDE 12

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12

d isp lay?: Issue i npu t? : I ssue

Issues

♦ Issues are concrete problem which usually do not have a

unique, correct solution.

♦ Issues are phrased as questions.

How shou ld t he d i spa tche r i npu t com mands? How shou ld t r ack sec t i

  • ns

be d i sp layed?

slide-13
SLIDE 13

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 13

d i sp lay?: I s sue addressed by addressed by addressed by i npu t? : I s sue t ex t

  • based:Proposa

l po in t&cl i ck :Proposa l

Proposals

♦ Proposals are possible alternatives to issues. ♦ One proposal can be shared across multiple issues.

The i n ter f ace f

  • r

t he d i spa tche r c

  • u

ld be r ea l i zed wi th a po in t & c l i ck i n te r f ace . The d i spl a y used by t he d i spa tche r can be a t ex t

  • n

l y d i sp lay wi th g raph i c char ac te r s t

  • r

ep resen t t r ack segmen t s .

slide-14
SLIDE 14

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 14

d i sp lay?: I s sue t e rminal ? : I ssue add ressed by add ressed by add ressed by ra ises i npu t? : I s sue t ex t

  • based

:P roposa l po in t&c l i ck :P roposa l

Consequent issue

♦ Consequent issues are issues raised by the introduction of a

proposal.

Which t e rm ina l emu la t i

  • n

shou ld be used f

  • r

t he di sp l ay?

slide-15
SLIDE 15

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 15

d i sp lay?: I s sue ava i lab i l i t y$ :Cr i t e r ion usab i l i t y$ :Cr i ter ion t e rm ina l ? : I ssue add ressed by add ressed by add ressed by r a i ses meets f a i l s meets f a i l s i npu t? : I s sue t ex t

  • based

:P roposa l po in t&c l i ck :P roposa l

Criteria

♦ A criteria represent a goodness measure. ♦ Criteria are often design goals or nonfunctional

requirements.

The CTC sys tem shou l d have at l eas t a 99% ava i l ab i l i t y . The t ime to i nput commands shou ld be l ess t han two seconds .

slide-16
SLIDE 16

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 16

Arguments

♦ 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.

slide-17
SLIDE 17

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 17

Arguments (2)

d i sp lay?: I s sue ava i l ab i l i t y$ :C r i t e r i

  • n

usab i l i t y $ :C r i t e r i

  • n

t e rm ina l ? : I ssue add ressed by add ressed by add ressed by r a i ses meets f a i l s meets f a i l s ava i lab i l i t y

  • f

i r s t ! :Argument i s suppor ted by i s

  • pposed

by i npu t? : I s sue t ex t

  • based

:P roposa l po in t&c l i ck :P roposa l Po in t&c l i c k i n te r f aces a re mo re c

  • mp

lex t

  • imp

lement t h an tex t

  • based

i n t e r f aces. Hence , t hey a re a l so more d i f f i cu l t t

  • t

es t . The po in t&c l i c k i n te r f ace r i s k si n t r

  • duc

ing f a tal e r ro r s i n the sys tem t ha t wou l d

  • f

f se t any usab i l i t y bene f i t t he i n t e r f ace wou ld p rov ide .

slide-18
SLIDE 18

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 18

Resolutions

♦ Resolutions represent decisions. ♦ A resolution summarizes the chosen alternative and the

argument supporting it.

♦ A resolved issue is said to be closed. ♦ A resolved issue can be re-opened if necessary, in which case

the resolution is demoted.

slide-19
SLIDE 19

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 19

Resolutions (2)

d i sp lay?: I s sue ava i l ab i l i t y$ :C r i t e r i

  • n

usab i l i t y $ :C r i t e r i

  • n

t e rm ina l ? : I ssue add ressed by add ressed by add ressed by r a i ses meets f a i l s meets f a i l s ava i l ab i l i t y

  • f

i r s t ! : Argumen t i s suppor t ed by i s

  • pposed

by t ex t

  • based&keyboard

:Reso lut ion reso lves reso lves i npu t? : I s sue t ex t

  • based

:P roposa l po in t&c l i ck :P roposa l

slide-20
SLIDE 20

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 20

Questions, Options, Criteria

♦ Designed for capturing rationale after the fact (e.g., quality

assessment).

♦ QOC emphasizes criteria Option ! Criterion $ Question ? positive assessment + negative assessment - consequent question response Argument . supports +

  • bjects-to -

supports +

  • bjects-to -
slide-21
SLIDE 21

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 21

Other issue models: Decision Representation Language

Decision Problem Alternative Goal AchievesLink Claim Claim Question Procedure is a good alternative for achieves supports denies is a result of is an answering procedure for denies supports presupposes raises answers

slide-22
SLIDE 22

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 22

Overview: rationale

♦ What is rationale? ♦ Why is it critical in software engineering? ♦ Centralized traffic control example ♦ Rationale in project management

! Consensus building (WinWin) ! Consistency with goals (NFR Framework) ! Rapid knowledge construction (Compendium)

♦ Summary

slide-23
SLIDE 23

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 23

Consensus building

Problem

♦ Any realistic project suffers the tension of conflicting goals

! Stakeholders come from different background ! Stakeholders have different criteria

Example

♦ Requirements engineering

! Client: business process (cost and schedule) ! User: functionality ! Developer: architecture ! Manager: development process (cost and schedule)

slide-24
SLIDE 24

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 24

Consensus building: WinWin

♦ Incremental, risk-driven spiral process

! Identification of stakeholders ! Identification of win conditions ! Conflict resolution

♦ Asynchronous groupware tool

! Stakeholders post win conditions ! Facilitator detects conflict ! Stakeholders discuss alternatives ! Stakeholders make agreements

slide-25
SLIDE 25

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 25

Consensus building: Model

Win Condition Issue Option Agreement involves covers addresses adopts Taxonom y Category

slide-26
SLIDE 26

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 26

Consensus building: Process

  • 2. Identify stakeholders’

win conditions

  • 3. Reconcile win conditions.

Establish alternatives.

  • 4. Evaluate & resolve risks.
  • 5. Define solution
  • 6. Validate
  • 7. Review & commit
  • 1. Identify stakeholders
slide-27
SLIDE 27

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 27

Consensus building: WinWin tool

slide-28
SLIDE 28

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 28

Consensus building: Experiences

Context

♦ Initial case studies used project courses with real customers ♦ Used in industry

Results

+ Risk management focus + Trust building between developers and clients + Discipline − Inadequate tool support

slide-29
SLIDE 29

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 29

Consistency with goals

Problem

♦ Once multiple criteria have been acknowledged

! Find solutions that satisfy all of them ! Document the trade-offs that were made

Example

♦ Authentication should be secure, flexible for the user, and low

cost.

slide-30
SLIDE 30

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 30

Consistency with goals: NFR Framework

♦ NFR goal refinement

! NFRs are represented as goals in a graph ! Leaf nodes of the graph are operational requirements ! Relationships represent “help” “hurt” relationships ! One graph can represent many alternatives

♦ NFR evaluation

! Make and break values are propagated through the graph automatically ! Developer can evaluate different alternatives and compare them

slide-31
SLIDE 31

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 31

Consistency with goals: Model

Flexibility Low cost Security Account+ PIN Finger Print Reader SmartCard+ PIN Authentication Confidentiality Integrity _ + + _ X OR AND

➼ ➼

slide-32
SLIDE 32

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 32

Consistency with goals: Process

Elicit high-level goals Refine into detailed goals Identify goal dependencies Identify

  • perational goals

Evaluate alternatives

slide-33
SLIDE 33

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 33

Consistency with goals: Experiences

+ Case studies on existing systems lead to clearer trade-offs + Research into integrating NFR framework and design patterns

! Match NFRs to design pattern “Forces” ! Link NFRs, design patterns, and functional requirements

− Tool support important

slide-34
SLIDE 34

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 34

Rapid knowledge construction

Problem

♦ When a company is large enough, it doesn’t know what it does.

! Knowledge rarely crosses organizational boundaries ! Knowledge rarely crosses physical boundaries

Example

♦ Identify resources at risk for Y2K and prioritize responses.

slide-35
SLIDE 35

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 35

Rapid knowledge construction: Compendium

♦ Meeting facilitation

! Stakeholders from different business units ! External facilitator

♦ Real-time construction of knowledge maps

! The focus of the meeting is a concept map under construction ! Map includes the issue model nodes and custom nodes (e.g., process, resource, etc.)

♦ Knowledge structuring for long term use

! Concept map exported as document outline, process model, memos, etc.

slide-36
SLIDE 36

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 36

Rapid knowledge construction: Model

slide-37
SLIDE 37

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 37

Rapid knowledge construction: Process example

slide-38
SLIDE 38

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 38

Rapid knowledge Construction: Experiences

Context

♦ Several industrial case studies, including

Y2K contingency planning at Bell Atlantic Results

♦ Increased meeting efficiency (templates are reused) ♦ Knowledge reused for other tasks

slide-39
SLIDE 39

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 39

Summary

♦ Rationale can be used in project management

! To build consensus (WinWin) ! To ensure quality (NFR Framework) ! To elicit knowledge (Compendium)

♦ Other applications include

! Risk management ! Change management ! Process improvement

♦ Open issues

! Tool support ! User acceptance