Chapter 12, A320 First fly-by-wire passenger aircraft Rationale - - PDF document

chapter 12
SMART_READER_LITE
LIVE PREVIEW

Chapter 12, A320 First fly-by-wire passenger aircraft Rationale - - PDF document

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


slide-1
SLIDE 1

Using UML, Patterns, and Java

Object-Oriented Software Engineering

Chapter 12, Rationale Management

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

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

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

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.

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-2
SLIDE 2

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

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

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

+ + + – + –

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

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

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

disp lay?: Issue input? : Issue

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 rack sec t i

  • ns

be d isp layed?

slide-3
SLIDE 3

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

d isp lay? : I ssue addressed by addressed by addressed by i npu t? : I ssue tex t

  • based:Proposa

l poin t&c l ick :Proposa l

Proposals

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

The i n te r face fo r t he d i spa tc her cou ld be rea l i zed w i th a po in t & c l i c k i n t e r face . The d i sp lay used by t he d i s pa tche r can be a t ex t

  • n

l y d i sp lay w i t h g raph i c cha rac te rs t

  • rep

resen t t r ack segmen ts .

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

d isp lay? : I ssue te rmina l? : Issue add ressed by add ressed by add ressed by ra ises i npu t? : I ssue 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 te rm ina l emu la t i

  • n

s hou ld be used f

  • r

t he d i sp lay?

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

d isp lay? : I ssue ava i lab i l i t y$ :Cr i te r ion usab i l i t y$ :Cr i te r ion t e rm ina l? : I ssue add ressed by add ressed by add ressed by ra i ses meets fa i l s meets fa i l s i npu t? : I ssue 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 ld have a t l eas t a 99% ava i l ab i l i t y . The t ime to i npu t commands shou ld be l ess t han two seconds .

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.

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

Arguments (2)

d isp lay? : I ssue 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 ra i ses meets f a i l s meets f a i l s ava i lab i l i t y

  • f

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

  • pposed

by i npu t? : I ssue t ex t

  • based

:P roposa l po in t&c l i ck :P roposa l Po in t&c l i ck i n te r faces a re more comp lex to imp lemen t t han tex t

  • based

i n te r faces . Hence , t hey are a l so more d i f f i cu l t t

  • t

est . The po in t&c l i ck i n te r f ace r i s ksi n t roduc ing fa ta l e r ro rs i n t he sys tem tha t wou ld

  • f

f se t any usab i l i t y bene f i t t he i n te r f a ce wou ld p rov ide .

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-4
SLIDE 4

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

Resolutions (2)

d isp lay? : I ssue 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 ra 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 ! :A rgumen t i s suppo r ted by i s

  • pposed

by tex t

  • based&keyboard

:Reso lu t ion reso lves reso lves i npu t? : I ssue t ex t

  • based

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

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 -

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

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

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)

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-5
SLIDE 5

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

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

Consensus building: Process

  • 2. I dentify stakeholders’

win conditions

  • 3. Reconcile win conditions.

Establish alternatives.

  • 4. Evaluate & resolve risks.
  • 5. Define solution
  • 6. Validate
  • 7. Review & commit
  • 1. I dentify stakeholders

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

Consensus building: WinWin tool

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

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.

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-6
SLIDE 6

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

➼ ➼

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

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

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.

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.

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

Rapid knowledge construction: Model

slide-7
SLIDE 7

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

Rapid knowledge construction: Process example

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

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