Top Banner
Finding Incremental Solutions for Evolving Requirements Neil Ernst , Alexander Borgida, Ivan Jureta [email protected] [email protected] [email protected] 1
43

Finding Incremental Solutions for Evolving Requirements

Nov 12, 2014

Download

Technology

Neil Ernst

Talk at the RE20
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Finding Incremental Solutions for Evolving Requirements

Finding Incremental Solutions for Evolving Requirements

Neil  Ernst,  Alexander  Borgida,  Ivan  Jureta

[email protected]  -­‐  [email protected]  -­‐  [email protected]

1

Page 2: Finding Incremental Solutions for Evolving Requirements

The problem

• Changing  requirements  are  costly  and  a  major  source  of  software  errors.  

• Requirements  drift  from  implementation.  • Lack  of  tool  support  for  requirements  evolution.• If  we  don't  know  what,  or  more  importantly,  

why  we  are  doing  something,  "how"  we  do  it  is  inconsequential.  

2

Page 3: Finding Incremental Solutions for Evolving Requirements

The solution

• Focus  on  the  case  of  evolving  requirements  due  to  unanticipated  change.

• Introduce  a  simple  propositional  formalism  on  a  case  study.

• Define  solutions  to  requirements  problems.• Define  the  requirements  evolution  problem.• Use  a  functional  interface  to  determine  what  

changes  to  make  and  why.• Evaluate  the  performance  of  solution-­‐finding.

3

Page 4: Finding Incremental Solutions for Evolving Requirements

Requirements problems:Goals, tasks, and assumptions• Requirements  describe  stakeholder  desires  for  the  new  

system  (e.g.,  “protect  cardholder  data”).• These  desired  states  we  call  goals.• Goals  are  iteratively  refined  until  operationalized  by  an  

implementation  task.• A  goal  model  defines  a  space  of  alternative  designs  for  

satisfying  goals,  constrained  by  domain  assumptions.

4

The  requirements  problem:  given  a  set  of  goals,  which  tasks  and  assumptions  satisfy  those  goals?1

[1] [1] P. Zave and M. Jackson, “Four Dark Corners of Requirements Engineering,” TOSEM, vol. 6, pp. 1-30, 1997.

Page 5: Finding Incremental Solutions for Evolving Requirements

PCI Data Security Standard (PCI-DSS)

1. Build  and  Maintain  a  Secure  Network  2. Protect  Cardholder  Data3. Maintain  a  Vulnerability  Management  Program4. Implement  Strong  Access  Control  Measures5. Regularly  Monitor  and  Test  Networks6. Maintain  an  Information  Security  Policy

5

Page 6: Finding Incremental Solutions for Evolving Requirements

Increase revenues

Accept credit card

Avoid financial losses and penalties

Be PCI compliant

No money for new servers

Implement only one primary function per

server

Virtualize server

instances

Use Verifone POS

Use multiple servers

Use Moneris POS

Accept payment

Accept cash

Buy strongbox

PCI-DSS model

6

Page 7: Finding Incremental Solutions for Evolving Requirements

Increase revenues

Accept credit card

Avoid financial losses and penalties

Be PCI compliant

No money for new servers

Implement only one primary function per

server

Virtualize server

instances

Use Verifone POS

Use multiple servers

Use Moneris POS

Accept payment

Accept cash

Buy strongbox

PCI-DSS model

6

Page 8: Finding Incremental Solutions for Evolving Requirements

Increase revenues

Accept credit card

Avoid financial losses and penalties

Be PCI compliant

No money for new servers

Implement only one primary function per

server

Virtualize server

instances

Use Verifone POS

Use multiple servers

Use Moneris POS

Accept payment

Accept cash

Buy strongbox

PCI-DSS model

6

Page 9: Finding Incremental Solutions for Evolving Requirements

Increase revenues

Accept credit card

Avoid financial losses and penalties

Be PCI compliant

No money for new servers

Implement only one primary function per

server

Virtualize server

instances

Use Verifone POS

Use multiple servers

Use Moneris POS

Accept payment

Accept cash

Buy strongbox

PCI-DSS model

6

Goal

Page 10: Finding Incremental Solutions for Evolving Requirements

Increase revenues

Accept credit card

Avoid financial losses and penalties

Be PCI compliant

No money for new servers

Implement only one primary function per

server

Virtualize server

instances

Use Verifone POS

Use multiple servers

Use Moneris POS

Accept payment

Accept cash

Buy strongbox

PCI-DSS model

6

Refinement

Page 11: Finding Incremental Solutions for Evolving Requirements

Increase revenues

Accept credit card

Avoid financial losses and penalties

Be PCI compliant

No money for new servers

Implement only one primary function per

server

Virtualize server

instances

Use Verifone POS

Use multiple servers

Use Moneris POS

Accept payment

Accept cash

Buy strongbox

PCI-DSS model

6

Task

Page 12: Finding Incremental Solutions for Evolving Requirements

Increase revenues

Accept credit card

Avoid financial losses and penalties

Be PCI compliant

No money for new servers

Implement only one primary function per

server

Virtualize server

instances

Use Verifone POS

Use multiple servers

Use Moneris POS

Accept payment

Accept cash

Buy strongbox

PCI-DSS model

6

Domain assumption

Page 13: Finding Incremental Solutions for Evolving Requirements

Increase revenues

Accept credit card

Avoid financial losses and penalties

Be PCI compliant

No money for new servers

Implement only one primary function per

server

Virtualize server

instances

Use Verifone POS

Use multiple servers

Use Moneris POS

Accept payment

Accept cash

Buy strongbox

PCI-DSS model

6

Alternatives

Page 14: Finding Incremental Solutions for Evolving Requirements

Increase revenues

Accept credit card

Avoid financial losses and penalties

Be PCI compliant

No money for new servers

Implement only one primary function per

server

Virtualize server

instances

Use Verifone POS

Use multiple servers

Use Moneris POS

Accept payment

Accept cash

Buy strongbox

PCI-DSS model

6

Conflict

Page 15: Finding Incremental Solutions for Evolving Requirements

Formalizing the requirements problem

• D,  S  ⊢  G1

• A  flavour  of  the  Techne  RE  language.Concepts• Goals  G• Domain  assumptions  D• Sets  of  implementation  tasks  S

Relations• implication  (Horn  clause)  • conflict  (A,  B,  A  ⋀  B  →⊥)

7

[1] Jureta, Borgida, Ernst, Mylopoulos, “Techne: Towards a New Generation of Requirements Modeling Languages with Goals, Preferences, and Inconsistency Handling.” RE2010, 115-124.

Page 16: Finding Incremental Solutions for Evolving Requirements

The REKB

• Store  requirements  problem  elements  as  logical  sentences.• i.e.,  goals,  tasks,  domain  assumptions  and  relations

• Define  a  TELL/ASK  interface  for  solving  requirements  problems.

• TELL:  atoms,  sentences.• UNTELL:  asserted  atoms.• ASK:  solutions  to  requirements  problem  in  REKB.

8

Page 17: Finding Incremental Solutions for Evolving Requirements

G1 G2

G

T3T2T1

Standard ASK questions

1. Are  goals  achieved  from  tasks?  (linear  time  complexity)

2. Find  minimal  sets  of  tasks  that  achieve  goals    (NP-­‐hard  complexity)

9

Page 18: Finding Incremental Solutions for Evolving Requirements

G1 G2

G

T3T2T1

Standard ASK questions

1. Are  goals  achieved  from  tasks?  (linear  time  complexity)

2. Find  minimal  sets  of  tasks  that  achieve  goals    (NP-­‐hard  complexity)

9

Page 19: Finding Incremental Solutions for Evolving Requirements

G1 G2

G

T3T2T1

Standard ASK questions

1. Are  goals  achieved  from  tasks?  (linear  time  complexity)

2. Find  minimal  sets  of  tasks  that  achieve  goals    (NP-­‐hard  complexity)

9

X

Page 20: Finding Incremental Solutions for Evolving Requirements

G1 G2

G

T3T2T1

Standard ASK questions

1. Are  goals  achieved  from  tasks?  (linear  time  complexity)

2. Find  minimal  sets  of  tasks  that  achieve  goals    (NP-­‐hard  complexity)

9

Page 21: Finding Incremental Solutions for Evolving Requirements

G1 G2

G

T3T2T1

Standard ASK questions

1. Are  goals  achieved  from  tasks?  (linear  time  complexity)

2. Find  minimal  sets  of  tasks  that  achieve  goals    (NP-­‐hard  complexity)

9

Smin = {T1, T3} {T2, T3}

Page 22: Finding Incremental Solutions for Evolving Requirements

Increase revenues

Accept credit card

Avoid financial losses and penalties

Be PCI compliant

No money for new servers

Implement only one primary function per

server

Virtualize server

instances

Use Verifone POS

Use multiple servers

Use Moneris POS

Accept payment

Accept cash

Buy strongbox

10

Page 23: Finding Incremental Solutions for Evolving Requirements

Increase revenues

Accept credit card

Avoid financial losses and penalties

Be PCI compliant

No money for new servers

Implement only one primary function per

server

Virtualize server

instances

Use Verifone POS

Use multiple servers

Use Moneris POS

Accept payment

Accept cash

Buy strongbox

10

Page 24: Finding Incremental Solutions for Evolving Requirements

Increase revenues

Accept credit card

Avoid financial losses and penalties

Be PCI compliant

No money for new servers

Implement only one primary function per

server

Virtualize server

instances

Use Verifone POS

Use multiple servers

Use Moneris POS

Accept payment

Accept cash

Buy strongbox

10

Page 25: Finding Incremental Solutions for Evolving Requirements

The requirements evolution problem

• Given  an  existing  solution  Si  which  satisfiesD,  Si  ⊢  G,  and

• modified  entities  (δ(G),  δ(D),  δ(S));• Find  Ŝ  so  that  δ(D),  Ŝ  ⊢  δ(G),  such  that  this  

satisfies  some  desired  property  π,  relating  Ŝ  to  Si.

11

Page 26: Finding Incremental Solutions for Evolving Requirements

Increase revenues

Accept credit card

Avoid financial losses and penalties

Be PCI compliant

No money for new servers

Implement only one primary function per

server

Virtualize server

instances

Use Verifone POS

Use multiple servers

Use Moneris POS

Accept payment

Accept cash

Buy strongbox

12

Page 27: Finding Incremental Solutions for Evolving Requirements

Increase revenues

Accept credit card

Avoid financial losses and penalties

Be PCI compliant

No money for new servers

Implement only one primary function per

server

Virtualize server

instances

Use Verifone POS

Use multiple servers

Use Moneris POS

Accept payment

Accept cash

Buy strongbox

12

Si

Page 28: Finding Incremental Solutions for Evolving Requirements

Increase revenues

Accept credit card

Avoid financial losses and penalties

Be PCI compliant

No money for new servers

Implement only one primary function per

server

Virtualize server

instances

Use Verifone POS

Use multiple servers

Use Moneris POS

Accept payment

Accept cash

Buy strongbox

Use Secure Hash on CC #

12

Si

Page 29: Finding Incremental Solutions for Evolving Requirements

Increase revenues

Accept credit card

Avoid financial losses and penalties

Be PCI compliant

No money for new servers

Implement only one primary function per

server

Virtualize server

instances

Use Verifone POS

Use multiple servers

Use Moneris POS

Accept payment

Accept cash

Buy strongbox

Use Secure Hash on CC #

12

Si

New Requirement

Page 30: Finding Incremental Solutions for Evolving Requirements

Increase revenues

Accept credit card

Avoid financial losses and penalties

Be PCI compliant

No money for new servers

Implement only one primary function per

server

Virtualize server

instances

Use Verifone POS

Use multiple servers

Use Moneris POS

Accept payment

Accept cash

Buy strongbox

Use Secure Hash on CC #

12

New Requirement

Page 31: Finding Incremental Solutions for Evolving Requirements

Increase revenues

Accept credit card

Avoid financial losses and penalties

Be PCI compliant

No money for new servers

Implement only one primary function per

server

Virtualize server

instances

Use Verifone POS

Use multiple servers

Use Moneris POS

Accept payment

Accept cash

Buy strongbox

Use Secure Hash on CC #

12

Ŝ New Requirement

Page 32: Finding Incremental Solutions for Evolving Requirements

Useful properties π

1. Minimal  implementation  effort.2. Minimal  change  effort  solutions.3. Maximal  familiarity  solutions.4. Solution  reuse  in  family  of  solutions.

13

ed

cbahgf fd

ca

gd

cba

SaSi Sb Sc

Page 33: Finding Incremental Solutions for Evolving Requirements

Useful properties π

1. Minimal  implementation  effort.2. Minimal  change  effort  solutions.3. Maximal  familiarity  solutions.4. Solution  reuse  in  family  of  solutions.

13

ed

cbahgf fd

ca

gd

cba

SaSi Sb Sc

Page 34: Finding Incremental Solutions for Evolving Requirements

Useful properties π

1. Minimal  implementation  effort.2. Minimal  change  effort  solutions.3. Maximal  familiarity  solutions.4. Solution  reuse  in  family  of  solutions.

13

ed

cbahgf fd

ca

gd

cba

SaSi Sb Sc

Page 35: Finding Incremental Solutions for Evolving Requirements

Useful properties π

1. Minimal  implementation  effort.2. Minimal  change  effort  solutions.3. Maximal  familiarity  solutions.4. Solution  reuse  in  family  of  solutions.

13

ed

cbahgf fd

ca

gd

cba

SaSi Sb Sc

Page 36: Finding Incremental Solutions for Evolving Requirements

Useful properties π

1. Minimal  implementation  effort.2. Minimal  change  effort  solutions.3. Maximal  familiarity  solutions.4. Solution  reuse  in  family  of  solutions.

13

ed

cbahgf fd

ca

gd

cba

SaSi Sb Sc

Page 37: Finding Incremental Solutions for Evolving Requirements

Useful properties π

1. Minimal  implementation  effort.2. Minimal  change  effort  solutions.3. Maximal  familiarity  solutions.4. Solution  reuse  in  family  of  solutions.

13

ed

cbahgf fd

ca

gd

cba

SaSi Sb Sc

Page 38: Finding Incremental Solutions for Evolving Requirements

Useful properties π

1. Minimal  implementation  effort.2. Minimal  change  effort  solutions.3. Maximal  familiarity  solutions.4. Solution  reuse  in  family  of  solutions.

13

ed

cbahgf fd

ca

gd

cba

SaSi Sb Sc

Page 39: Finding Incremental Solutions for Evolving Requirements

Implementing the REKB

• REKB  is  a  functional  description.• Leverages  an  Assumption-­‐based  Truth  

Maintenance  System1  (ATMS).  • Incremental,  minimal,  conflict-­‐tolerant.

• Other  options:  SAT  solvers,  SMT,  PsB.• Problem  solver  tracks  implemented  tasks,  

versions  elements,  retracts  atoms.

14[1] J. de Kleer, “An assumption-based TMS,” Artificial Intelligence, 28, 1986, pp. 127-162.

Page 40: Finding Incremental Solutions for Evolving Requirements

Evaluating the REKB

• Evaluate  the  REKB  approach  on• the  PCI-­‐DSS  • random  requirements  

models

15

6000 50 100 150 200 250 300 350 400 450 500 550

100

0.01

0.1

1

10

# Nodes

Tim

e (s

)

Page 41: Finding Incremental Solutions for Evolving Requirements

Evaluating the REKB (2)

• Test  incremental  performance  on  three  evolution  scenarios        (400  nodes)

16

Naive add

0.1

1

Tim

e (s)

High%level

Conflict

New%task

Incremental add

Page 42: Finding Incremental Solutions for Evolving Requirements

Conclusions

• The  REKB  is  a  framework  for  managing  goals,  tasks,  and  domain  assumptions.

• Find  incremental  solutions,  and  find  optimal  solutions.FIX

• Solving  requirements  problems  provide  the  “why”  for  maintenance  activity.

17

Page 43: Finding Incremental Solutions for Evolving Requirements

Thanks!

18

http://neilernst.net@neilernst

github.com/neilernst