67
Agile Requirements Evolution via Paraconsistent Reasoning Neil A. Ernst University of British Columbia @neilernst [email protected] • neilernst.net with: Alexander Borgida, John Mylopoulos and Ivan Jureta [email protected] , [email protected] , [email protected] Thursday, 28 June, 12

Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Embed Size (px)

DESCRIPTION

Innovative companies need an agile approach for the engineering of their product requirements, to rapidly respond to and exploit changing conditions. The agile approach to requirements must nonetheless be systematic, especially with respect to accommodating legal and nonfunctional requirements. This paper examines how to support a combination of lightweight, agile requirements which can still be systematically modeled, analyzed and changed. We propose a framework, RE- KOMBINE, which is based on a propositional language for requirements modeling called Techne. We define operations on Techne models which tolerate the presence of inconsistencies in the requirements. This para- consistent reasoning is vital for supporting delayed commitment to par- ticular design solutions. We evaluate these operations with an industry case study using two well-known formal analysis tools. Our evaluations show that the proposed framework scales to industry-sized requirements models, while still retaining (via propositional logic) the informality that is so useful during early requirements analysis.

Citation preview

Page 2: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Agile Requirements Evolution via

Paraconsistent ReasoningNeil A. Ernst

University of British Columbia@neilernst • [email protected] • neilernst.net

with: Alexander Borgida, John Mylopoulos and Ivan [email protected], [email protected],

[email protected]

page 382 of proceedings

Thursday, 28 June, 12

Page 3: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

TakeawayWe need agile requirements models — that

can still be systematically analysed.

Thursday, 28 June, 12

Page 4: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

TakeawayWe need agile requirements models — that

can still be systematically analysed.

• Motivation

Thursday, 28 June, 12

Page 5: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

TakeawayWe need agile requirements models — that

can still be systematically analysed.

• Motivation• Formal representation of a requirements

problem as a knowledge base.

Thursday, 28 June, 12

Page 6: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

TakeawayWe need agile requirements models — that

can still be systematically analysed.

• Motivation• Formal representation of a requirements

problem as a knowledge base.• How paraconsistent reasoning helps us

support dynamism.

Thursday, 28 June, 12

Page 7: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

TakeawayWe need agile requirements models — that

can still be systematically analysed.

• Motivation• Formal representation of a requirements

problem as a knowledge base.• How paraconsistent reasoning helps us

support dynamism. • Evaluation, how this works in practice.

Thursday, 28 June, 12

Page 8: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Agility ...

time

Req

Devel.Test

Ops

Thursday, 28 June, 12

Page 9: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Agility ...

time

Req

Devel. TestOps

Thursday, 28 June, 12

Page 10: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Agility ...

time

Req

Devel. TestOps

Thursday, 28 June, 12

Page 11: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Agility ...

time

ReqDevel. Test

Ops

Thursday, 28 June, 12

Page 12: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Agility ...

time

ReqDevel. Test

Ops

Thursday, 28 June, 12

Page 13: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Requirements agility is constrained

Thursday, 28 June, 12

Page 14: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Requirements agility is constrained

Let’s add remote login

Thursday, 28 June, 12

Page 15: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Requirements agility is constrained

Let’s add remote login Security hole

Thursday, 28 June, 12

Page 16: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Requirements agility is constrained

Let’s add remote login Security hole

How about removing RSA?

Thursday, 28 June, 12

Page 17: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Requirements agility is constrained

Let’s add remote login Security hole

How about removing RSA?

Not back-compatible

Thursday, 28 June, 12

Page 18: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Requirements agility is constrained

Let’s add remote login Security hole

How about removing RSA?

Simplify account mgmt?

Not back-compatible

Thursday, 28 June, 12

Page 19: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Requirements agility is constrained

Let’s add remote login Security hole

How about removing RSA?

Simplify account mgmt?

Not back-compatible

Violates Sarbanes-Oxley

Thursday, 28 June, 12

Page 20: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Requirements agility is constrained

Let’s add remote login Security hole

How about removing RSA?

Simplify account mgmt?

Add COO’s pet feature?

Not back-compatible

Violates Sarbanes-Oxley

Thursday, 28 June, 12

Page 21: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Requirements agility is constrained

Let’s add remote login Security hole

How about removing RSA?

Simplify account mgmt?

Add COO’s pet feature?

Not back-compatible

Violates Sarbanes-Oxley

CEO hates COO

Thursday, 28 June, 12

Page 22: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Requirements agility means success

Thursday, 28 June, 12

Page 23: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Requirements agility means success

Thursday, 28 June, 12

Page 24: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

“[the code] remained operational in Ariane 5 without satisfying any

(traceable) requirement.”Thursday, 28 June, 12

Page 25: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Thursday, 28 June, 12

Page 26: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Command Executionsedit.Delete 5.4 M

file.Save 4.3 Medit.Paste 3.8 Medit.Copy 2.4 M

ContentAssist.proposals 1.4 M

Thursday, 28 June, 12

Page 27: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Command Executionsedit.Delete 5.4 M

file.Save 4.3 Medit.Paste 3.8 Medit.Copy 2.4 M

ContentAssist.proposals 1.4 M

Data: Eclipse UPP, 200908, eclipse.ui, 3.5.0

Command Executionswindow.previousView 9

navigate.Back 69window.showViewMenu 89

window.previousPerspective 155window.previousEditor 166

Thursday, 28 June, 12

Page 28: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Requirements problems

Thursday, 28 June, 12

Page 29: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

R R R

Requirements problems

Thursday, 28 June, 12

Page 30: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

R R R

r r

Requirements problems

Thursday, 28 June, 12

Page 31: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

R R R

r r

TT

TT

T

Requirements problems

Thursday, 28 June, 12

Page 32: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

R R R

r r

TT

TT

T

Requirements problems

Thursday, 28 June, 12

Page 33: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

R R R

r r

TT

TT

T

D D

Requirements problems

Thursday, 28 June, 12

Page 34: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

R R R

r r

TT

TT

TT T

D D

Requirements problems

Thursday, 28 June, 12

Page 35: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

R R R

r r

TT

TT

T

D D

Requirements problems

Thursday, 28 June, 12

Page 36: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

R R R

r r

TT

TT

TT

D D

Requirements problems

Thursday, 28 June, 12

Page 37: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

R R R

r r

TT

TT

TT T

D D

Requirements problems

Thursday, 28 June, 12

Page 38: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

R R R

r r

TT

TT

T

D D

Requirements problems

Thursday, 28 June, 12

Page 39: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

R R R

r r

RequirementsKnowledge Base

TT

TT

T

D D

Requirements problems

Thursday, 28 June, 12

Page 40: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Paraconsistency

Payment Card regs.

Thursday, 28 June, 12

Page 41: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Formalizing paraconsistency

• For the statement ‘requirement A conflicts with requirement B’ writeA ∧ B → ⊥

• Inconsistent when bottom (⊥) can be derived

• Often more ‘complete’ requirements are less consistent.

Thursday, 28 June, 12

Page 42: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Why paraconsistency?

taken from Nuseibeh et al. 2001Thursday, 28 June, 12

Page 43: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Why paraconsistency?• to facilitate distributed collaborative

working (viewpoints),

taken from Nuseibeh et al. 2001Thursday, 28 June, 12

Page 44: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Why paraconsistency?• to facilitate distributed collaborative

working (viewpoints),

taken from Nuseibeh et al. 2001

• to ensure all stakeholder views are taken into account,

Thursday, 28 June, 12

Page 45: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Why paraconsistency?

• to focus attention on problem areas [of the specification],

• to facilitate distributed collaborative working (viewpoints),

taken from Nuseibeh et al. 2001

• to ensure all stakeholder views are taken into account,

Thursday, 28 June, 12

Page 46: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Why paraconsistency?

• to focus attention on problem areas [of the specification],

• to prevent premature commitment to design decisions.

• to facilitate distributed collaborative working (viewpoints),

taken from Nuseibeh et al. 2001

• to ensure all stakeholder views are taken into account,

Thursday, 28 June, 12

Page 47: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Why paraconsistency?

• to focus attention on problem areas [of the specification],

• to facilitate distributed collaborative working (viewpoints),

• to prevent premature commitment to design decisions.

taken from Nuseibeh et al. 2001

• to ensure all stakeholder views are taken into account,

Thursday, 28 June, 12

Page 48: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Criteria for paraconsistent satisfaction

• Domain assumptions and refinements are consistent.

• Desired goals are internally consistent.

• Selected tasks are internally consistent.

Thursday, 28 June, 12

Page 49: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

R R R

r r

TT

TT

T

D D

Thursday, 28 June, 12

Page 50: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

R R R

r r

TT

TT

T

D D

Thursday, 28 June, 12

Page 51: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

R R R

r r

TT

TT

T

D DD D

Thursday, 28 June, 12

Page 52: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

R R R

r r

TT

TT

TT

D DD D

T

Thursday, 28 June, 12

Page 53: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

R R R

r r

TT

TT

TT

D DD D

T

R

r

Thursday, 28 June, 12

Page 54: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

What to do?

Thursday, 28 June, 12

Page 55: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

What to do?1. Given goals, what minimal sets of tasks

satisfy them? (minimal goal achievement)

Thursday, 28 June, 12

Page 56: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

What to do?1. Given goals, what minimal sets of tasks

satisfy them? (minimal goal achievement)

2. Given goals, and minimal task sets, what can we add to expand our consistent solution? (get candidate solutions)

Thursday, 28 June, 12

Page 57: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

What to do?1. Given goals, what minimal sets of tasks

satisfy them? (minimal goal achievement)

2. Given goals, and minimal task sets, what can we add to expand our consistent solution? (get candidate solutions)

3. Other operations: bottom-up reasoning, costs, etc.

Thursday, 28 June, 12

Page 58: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Assign unique ID Use

existing h/w

Compensating control

8.1 prevent multiple logins

Log Access

Use SUDO Use centralized

ID

Use AS/400 servers

Minimal Goal Achievement

Thursday, 28 June, 12

Page 59: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Assign unique ID Use

existing h/w

Compensating control

8.1 prevent multiple logins

Log Access

Use SUDO Use centralized

ID

Use AS/400 servers

Minimal Goal Achievement

Thursday, 28 June, 12

Page 60: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Assign unique ID Use

existing h/w

Compensating control

8.1 prevent multiple logins

Log Access

Use SUDO Use centralized

ID

Use AS/400 servers

Minimal Goal Achievement

Use SUDO Log Access

Use AS/400 servers

Thursday, 28 June, 12

Page 61: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Assign unique ID Use

existing h/w

Compensating control

8.1 prevent multiple logins

Log Access

Use SUDO Use centralized

ID

Use AS/400 serversUse SUDO Log

Access

Use AS/400 servers

Thursday, 28 June, 12

Page 62: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Get Candidate SolutionsAssign

unique ID Use existing h/w

Compensating control

8.1 prevent multiple logins

Log Access

Use SUDO Use centralized

ID

Use AS/400 serversUse SUDO Log

Access

Use AS/400 servers

Thursday, 28 June, 12

Page 63: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Get Candidate SolutionsAssign

unique ID Use existing h/w

Compensating control

8.1 prevent multiple logins

Log Access

Use SUDO Use centralized

ID

Use AS/400 serversUse SUDO Log

Access

Use AS/400 servers

Use existing h/w

Thursday, 28 June, 12

Page 64: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Evaluation and implementation

• Implemented reasoner using graphical modeling tool and assumption-based truth maintenance.

• Tested tool on 340 requirement Payment Card case study.

• Find all solutions in ~600s.• Outperforms (outdated) MinWeightSat

reasoner.

Thursday, 28 June, 12

Page 65: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Visual editor

Domain specific lang.

Visual editorVisual editorVisual editorVisual editorVisual editorVisual editorVisual editor

Reasoner

RE-KOMBINE

Thursday, 28 June, 12

Page 66: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

Visual editorReq. Mgmt. Tool

DSL editor

Visual editorVisual editorVisual editorVisual editorVisual editorVisual editorVisual editor

Reasoner

Thursday, 28 June, 12

Page 67: Supporting Agile Requirements Evolution via Paraconsistent Reasoning

SummaryProblem: support agile requirements while still enabling systematically modelling and analysis.Solution: paraconsistent models with reasoning backend.

Code and data available at http://github.com/neilernst/Techne-TMS

Neil Ernst: @neilernst • neilernst.netThursday, 28 June, 12