SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
Understanding the Value of Software
Engineering Technologies
Phillip Green, Tim Menzies, Steven Williams, Oussama El-Rasaws
WVU, USA
ASE’09. November. Auckland, New Zealand
?
Many technologies are good
•  Model checking is a good thing
•  Runtime verification is a good thing
•  Test generation is a good thing
•  Mining OO patterns is a good thing.
•  X is a good thing
•  Y is a good thing
•  Z is a …
•  etc
Automated SE is a “good thing”
But which are better?
•  Is “technology1” more cost- effective than “technology2”?
•  What is a “technology”?
–  Paper-based; e.g.
•  orthogonal defect classification .
–  Tool-based; e.g.
•  functional programming languages
•  execution and testing tools
•  automated formal analysis
–  Process-based; e.g.
•  changing an organization’s hiring practices,
•  an agile continual renegotiation of the requirements
Better than others, in context of particular project?
This talk
•  When making relative
assessments of cost/benefits of
SE technologies,
–  Context changes everything
–  Claims of relative cost benefits
of tools are context-dependent
•  The “local lessons effect”
–  Ideas that are useful in general
–  May not the most useful in
particular
•  Tools to find context-dependent
local lessons
–  “W”: case-based reasoner
(goal: reduce effort)
–  “NOVA”: more intricate tool
(goal: reduce effort and time and
defects)
•  Take home lessons:
–  Beware blanket claims of
“this is better”
–  Always define context where
you tested your tools
–  Compare ASE to non-ASE tools
The real world is a special case
Roadmap
•  Round 1:
– “W” : a very simple local lessons” finder
•  Discussion
– What’s wrong with “W” ?
•  Round 2:
– “NOVA”
– Results from NOVA
•  Conclusions
Roadmap
•  Round 1:
– “W” : a very simple local lessons” finder
•  Discussion
– What’s wrong with “W” ?
•  Round 2:
– “NOVA”
– Results from NOVA
•  Conclusions
How to survive the Titanic
“W”:Simpler (Bayesian) Contrast
Set Learning (in linear time)
•  “best” = target class
•  “rest” = other classes
•  x = any range (e.g. sex = female)
•  f(x|c) = frequency of x in class c
•  b = f( x | best ) / F(best)
•  r = f( x | rest ) / F(rest)
•  LOR= log(odds ratio) = log(b/r)
–  ? normalize 0 to max = 1 to 100
–  e = 2.7183 …
–  p = F(B) / (F(B) + F(R))
–  P(B) = 1 / (1 + e^(-1*ln(p/(1 - p)) - s ))
Mozina: KDD’04
“W”:
1)  Discretize data and outcomes
2)  Count frequencies of ranges in classes
3)  Sort ranges by LOR
4) Greedy search on top ranked ranges
Preliminaries
“W” + CBR
•  “Query”
–  What kind of project you want to analyze; e.g.
•  Analysts not so clever,
•  High reliability system
•  Small KLOC
•  “Cases”
–  Historical records, with their development effort
•  Output:
–  A recommendation on how to change our projects
in order to reduce development effort
Cases
train test
Cases map features F to a utility
F= Controllables + others
Cases
train test
Cases map features F to a utility
F= Controllables + others
(query ⊆ ranges)
relevant
k-NN
Cases
train test
(query ⊆ ranges)
relevant
Best
utilities
rest
x
x
b = F(x | best) / F(best)
r = F(x | rest) / F(rest)
k-NN
Cases map features F to a utility
F= Controllables + others
Cases
train test
(query ⊆ ranges)
relevant
Best
utilities
rest
x
x
S = all x sorted descending by score
if controllable(x) &&
b > r &&
b > min
then score(x) = log(b/r)
else score(x) = 0
fi
k-NN
Cases map features F to a utility
F= Controllables + others
b = F(x | best) / F(best)
r = F(x | rest) / F(rest)
Cases
train test
(query ⊆ ranges)
relevant
Best
utilities
rest
x
x
S = all x sorted descending by score
queryi* =
query + ∪iSi
treatedi
k-NN
k-NN
Cases map features F to a utility
F= Controllables + others
if controllable(x) &&
b > r &&
b > min
then score(x) = log(b/r)
else score(x) = 0
fi
b = F(x | best) / F(best)
r = F(x | rest) / F(rest)
Cases
train test
(query ⊆ ranges)
relevant
Best
utilities
rest
x
x
S = all x sorted descending by score
queryi* =
query + ∪iSi
treatedi
k-NN
k-NN
i
utility
spread
Cases map features F to a utility
F= Controllables + others
if controllable(x) &&
b > r &&
b > min
then score(x) = log(b/r)
else score(x) = 0
fi
b = F(x | best) / F(best)
r = F(x | rest) / F(rest)
median
Cases
train test
(query ⊆ ranges)
relevant
Best
utilities
rest
x
x
S = all x sorted descending by score
queryi* =
query + ∪iSi
treatedi
k-NN
k-NN
i
q0* qi*
As is To be
Cases map features F to a utility
F= Controllables + others
if controllable(x) &&
b > r &&
b > min
then score(x) = log(b/r)
else score(x) = 0
fi
treatment
b = F(x | best) / F(best)
r = F(x | rest) / F(rest)
i
utility
spread
median
Results (distribution of
development efforts in qi*)
Cases from promisedata.org/data
Median = 50% percentile
Spread = 75% - 25% percentile
Improvement = (X - Y) / X
•  X = as is
•  Y = to be
•  more is better
Usually:
• spread ≥ 75% improvement
• median ≥ 60% improvement
0%
50%
100%
150%
-50% 0% 50% 100% 150%
median improvement
spreadimprovement
Using cases from http://promisedata.org
Treatments Suggested by “W”
All different
Roadmap
•  Round 1:
– “W” : a very simple local lessons” finder
•  Discussion
– What’s wrong with “W” ?
•  Round 2:
– “NOVA”
– Results from NOVA
•  Conclusions
Cases
train test
(query ⊆ ranges)
relevant
Best
utilities
rest
x
x
S = all x sorted descending by score
queryi* =
query + ∪iSi
treatedi
k-NN
k-NN
i
q0* qi*
As is To be
Cases map features F to a utility
F= Controllables + others
if controllable(x) &&
b > r &&
b > min
then score(x) = log(b/r)
else score(x) = 0
fi
treatment
b = F(x | best) / F(best)
r = F(x | rest) / F(rest)
i
utility
spread
median
Cases
train test
(query ⊆ ranges)
relevant
Best
utilities
rest
x
x
S = all x sorted descending by score
queryi* =
query + ∪iSi
treatedi
k-NN
k-NN
i
q0* qi*
As is To be
Cases map features F to a utility
F= Controllables + others
if controllable(x) &&
b > r &&
b > min
then score(x) = log(b/r)
else score(x) = 0
fi
treatment
b = F(x | best) / F(best)
r = F(x | rest) / F(rest)
i
utility
spread
median
Cases
train test
(query ⊆ ranges)
relevant
Best
utilities
rest
x
x
S = all x sorted descending by score
queryi* =
query + ∪iSi
treatedi
k-NN
k-NN
i
q0* qi*
As is To be
Cases map features F to a utility
F= Controllables + others
if controllable(x) &&
b > r &&
b > min
then score(x) = log(b/r)
else score(x) = 0
fi
treatment
b = F(x | best) / F(best)
r = F(x | rest) / F(rest)
i
utility
spread
median
A greedy linear time search?
• Need to use much better search algorithms
• Simulated annealing, Beam, Astar, ISSAMP, MaxWalkSat
• SEESAW (home brew)
Cases
train test
(query ⊆ ranges)
relevant
Best
utilities
rest
x
x
S = all x sorted descending by score
queryi* =
query + ∪iSi
treatedi
k-NN
k-NN
i
q0* qi*
As is To be
Cases map features F to a utility
F= Controllables + others
if controllable(x) &&
b > r &&
b > min
then score(x) = log(b/r)
else score(x) = 0
fi
treatment
b = F(x | best) / F(best)
r = F(x | rest) / F(rest)
i
utility
spread
median
Cases
train test
(query ⊆ ranges)
relevant
Best
utilities
rest
x
x
S = all x sorted descending by score
queryi* =
query + ∪iSi
treatedi
k-NN
k-NN
i
q0* qi*
As is To be
Cases map features F to a utility
F= Controllables + others
if controllable(x) &&
b > r &&
b > min
then score(x) = log(b/r)
else score(x) = 0
fi
treatment
b = F(x | best) / F(best)
r = F(x | rest) / F(rest)
i
utility
spread
median
Cases
train test
(query ⊆ ranges)
relevant
Best
utilities
rest
x
x
S = all x sorted descending by score
queryi* =
query + ∪iSi
treatedi
k-NN
k-NN
i
q0* qi*
As is To be
Cases map features F to a utility
F= Controllables + others
if controllable(x) &&
b > r &&
b > min
then score(x) = log(b/r)
else score(x) = 0
fi
treatment
b = F(x | best) / F(best)
r = F(x | rest) / F(rest)
i
utility
spread
median
Just trying to reduce effort?
• What about development time?
• What about number of defects?
• What about different business contexts?
e.g. “racing to market” vs “mission-critical” apps
Cases
train test
(query ⊆ ranges)
relevant
Best
utilities
rest
x
x
S = all x sorted descending by score
queryi* =
query + ∪iSi
treatedi
k-NN
k-NN
i
q0* qi*
As is To be
Cases map features F to a utility
F= Controllables + others
if controllable(x) &&
b > r &&
b > min
then score(x) = log(b/r)
else score(x) = 0
fi
treatment
b = F(x | best) / F(best)
r = F(x | rest) / F(rest)
i
utility
spread
median
Cases
train test
(query ⊆ ranges)
relevant
Best
utilities
rest
x
x
S = all x sorted descending by score
queryi* =
query + ∪iSi
treatedi
k-NN
k-NN
i
q0* qi*
As is To be
Cases map features F to a utility
F= Controllables + others
if controllable(x) &&
b > r &&
b > min
then score(x) = log(b/r)
else score(x) = 0
fi
treatment
b = F(x | best) / F(best)
r = F(x | rest) / F(rest)
i
utility
spread
median
Cases
train test
(query ⊆ ranges)
relevant
Best
utilities
rest
x
x
S = all x sorted descending by score
queryi* =
query + ∪iSi
treatedi
k-NN
k-NN
i
q0* qi*
As is To be
Cases map features F to a utility
F= Controllables + others
if controllable(x) &&
b > r &&
b > min
then score(x) = log(b/r)
else score(x) = 0
fi
treatment
b = F(x | best) / F(best)
r = F(x | rest) / F(rest)
i
utility
spread
median
Is nearest neighbor causing
conclusion instability?
• Q: How to smooth the bumps between
between the samples ?
• A: Don’t apply constraints to the data
• Apply it as model inputs instead
Cases
train test
(query ⊆ ranges)
relevant
Best
utilities
rest
x
x
S = all x sorted descending by score
queryi* =
query + ∪iSi
treatedi
k-NN
k-NN
i
q0* qi*
As is To be
Cases map features F to a utility
F= Controllables + others
if controllable(x) &&
b > r &&
b > min
then score(x) = log(b/r)
else score(x) = 0
fi
treatment
b = F(x | best) / F(best)
r = F(x | rest) / F(rest)
i
utility
spread
median
Cases
train test
(query ⊆ ranges)
relevant
Best
utilities
rest
x
x
S = all x sorted descending by score
queryi* =
query + ∪iSi
treatedi
k-NN
k-NN
i
q0* qi*
As is To be
Cases map features F to a utility
F= Controllables + others
if controllable(x) &&
b > r &&
b > min
then score(x) = log(b/r)
else score(x) = 0
fi
treatment
b = F(x | best) / F(best)
r = F(x | rest) / F(rest)
i
utility
spread
median
Cases
train test
(query ⊆ ranges)
relevant
Best
utilities
rest
x
x
S = all x sorted descending by score
queryi* =
query + ∪iSi
treatedi
k-NN
k-NN
i
q0* qi*
As is To be
Cases map features F to a utility
F= Controllables + others
if controllable(x) &&
b > r &&
b > min
then score(x) = log(b/r)
else score(x) = 0
fi
treatment
b = F(x | best) / F(best)
r = F(x | rest) / F(rest)
i
utility
spread
median
Just one test?
• What about looking for
stability in “N” repeats?
Cases
train test
(query ⊆ ranges)
relevant
Best
utilities
rest
x
x
S = all x sorted descending by score
queryi* =
query + ∪iSi
treatedi
k-NN
k-NN
i
q0* qi*
As is To be
Cases map features F to a utility
F= Controllables + others
if controllable(x) &&
b > r &&
b > min
then score(x) = log(b/r)
else score(x) = 0
fi
treatment
b = F(x | best) / F(best)
r = F(x | rest) / F(rest)
i
utility
spread
median
More tests1
Cases
train test
(query ⊆ ranges)
relevant
Best
utilities
rest
x
x
S = all x sorted descending by score
queryi* =
query + ∪iSi
treatedi
k-NN
k-NN
i
q0* qi*
As is To be
Cases map features F to a utility
F= Controllables + others
if controllable(x) &&
b > r &&
b > min
then score(x) = log(b/r)
else score(x) = 0
fi
treatment
b = F(x | best) / F(best)
r = F(x | rest) / F(rest)
i
utility
spread
median
More tests1
More models
2
Cases
train test
(query ⊆ ranges)
relevant
Best
utilities
rest
x
x
S = all x sorted descending by score
queryi* =
query + ∪iSi
treatedi
k-NN
k-NN
i
q0* qi*
As is To be
Cases map features F to a utility
F= Controllables + others
if controllable(x) &&
b > r &&
b > min
then score(x) = log(b/r)
else score(x) = 0
fi
treatment
b = F(x | best) / F(best)
r = F(x | rest) / F(rest)
i
utility
spread
median
More tests1
More models
2
More goals3
Cases
train test
(query ⊆ ranges)
relevant
Best
utilities
rest
x
x
S = all x sorted descending by score
queryi* =
query + ∪iSi
treatedi
k-NN
k-NN
i
q0* qi*
As is To be
Cases map features F to a utility
F= Controllables + others
if controllable(x) &&
b > r &&
b > min
then score(x) = log(b/r)
else score(x) = 0
fi
treatment
b = F(x | best) / F(best)
r = F(x | rest) / F(rest)
i
utility
spread
median
More tests1
More models
2
More goals3
More search4
Roadmap
•  Round 1:
– “W” : a very simple local lessons” finder
•  Discussion
– What’s wrong with “W” ?
•  Round 2:
– “NOVA”
– Results from NOVA
•  Conclusions
COCOMO
•  Time to build it (calendar months)
•  Effort to build it (total staff months)
COQUALMO
•  defects per 1000 lines of code
Estimate = model( p, t )
•  P = project options
•  T = tuning options
•  Normal practice: Adjust “t” using local data
•  NOVA: Stagger randomly all tunings even seen before
USC Cocomo suite (Boehm 1981, 2000)
More models
?
B = BFC
Goal #1:
•  better, faster, cheaper
Try to minimize:
•  Development time and
•  Development effort and
•  # defects
Goal #2
•  minimize risk exposure
Rushing to beat the competition
•  Get to market, soon as you can
•  Without too many defects
More goals
X = XPOS
Simulated Annealling
ISSAMP
ASTAR
BEAM
MaxWalkSat
SEESAW : MaxWalkSat + boundary mutation
•  Local favorite
•  Does best at reduction defects or effort or time
Not greedy search
More search engines
Data sets
•  OSP= orbital space plane GNC
•  OSP2 = second generation GNC
•  Flight = JPL flight systems
•  Ground = JPL ground systems
For each data set
•  Search N= 20 times (with SEESAW)
•  Record how often decisions are found
Four data sets, repeat N=20 times
More tests
Frequency%
of range in
20 repeats
If high, then
more in BFC
If low, then
usually in XPOS
Better, faster, cheaper Minimize risk exposure
(rushing to market)
(ignore all ranges
found < 50%)
If 50% then same
In BFC and XPOS
Mostly: if selected by one, rejected by the other
“Value”
(business context)
changes everything
And what of
defect removal
techniques?
Better, faster, cheaper Minimize risk exposure
(rushing to market)
Aa = automated analysis
Etat= execution testing and tools
Pr= peer review
Stopping defect introduction is better than defect removal.
Roadmap
•  Round 1:
– “W” : a very simple local lessons” finder
•  Discussion
– What’s wrong with “W” ?
•  Round 2:
– “NOVA”
– Results from NOVA
•  Conclusions
Conclusion
•  When making relative
assessments of cost/benefits of
SE technologies,
–  Context changes everything
–  Claims of relative cost benefits
of tools are context-dependent
•  The “local lessons effect”
–  Ideas that are useful in general
–  May not the most useful in
particular
•  Tools to find context-dependent
local lessons
–  “W”: case-based reasoner
(goal: reduce effort)
–  “NOVA”: more intricate tool
(goal: reduce effort and time and
defects)
•  Take home lessons:
–  Beware blanket claims of
“this is better”
–  Always define context where
you tested your tools
–  Compare ASE to non-ASE tools
The real world is a special case

Mais conteúdo relacionado

Semelhante a Understanding the Value of Software Engineering Technologies

Recsys matrix-factorizations
Recsys matrix-factorizationsRecsys matrix-factorizations
Recsys matrix-factorizationsDmitriy Selivanov
 
Humble introduction to category theory in haskell
Humble introduction to category theory in haskellHumble introduction to category theory in haskell
Humble introduction to category theory in haskellJongsoo Lee
 
Functional Operations - Susan Potter
Functional Operations - Susan PotterFunctional Operations - Susan Potter
Functional Operations - Susan Potterdistributed matters
 
TI1220 Lecture 6: First-class Functions
TI1220 Lecture 6: First-class FunctionsTI1220 Lecture 6: First-class Functions
TI1220 Lecture 6: First-class FunctionsEelco Visser
 
Poggi analytics - star - 1a
Poggi   analytics - star - 1aPoggi   analytics - star - 1a
Poggi analytics - star - 1aGaston Liberman
 
Why Haskell Matters
Why Haskell MattersWhy Haskell Matters
Why Haskell Mattersromanandreg
 
9-Functions.pptx
9-Functions.pptx9-Functions.pptx
9-Functions.pptxjaffarbikat
 
Examples of different polynomial graphs
Examples of different polynomial graphsExamples of different polynomial graphs
Examples of different polynomial graphsJessica Garcia
 
Introduction to comp.physics ch 3.pdf
Introduction to comp.physics ch 3.pdfIntroduction to comp.physics ch 3.pdf
Introduction to comp.physics ch 3.pdfJifarRaya
 
R Bootcamp Day 3 Part 1 - Statistics in R
R Bootcamp Day 3 Part 1 - Statistics in RR Bootcamp Day 3 Part 1 - Statistics in R
R Bootcamp Day 3 Part 1 - Statistics in ROlga Scrivner
 
machine_learning.pptx
machine_learning.pptxmachine_learning.pptx
machine_learning.pptxPanchami V U
 
Functional Programming, simplified
Functional Programming, simplifiedFunctional Programming, simplified
Functional Programming, simplifiedNaveenkumar Muguda
 
Introduction to haskell
Introduction to haskellIntroduction to haskell
Introduction to haskellLuca Molteni
 
Optimization Techniques.pdf
Optimization Techniques.pdfOptimization Techniques.pdf
Optimization Techniques.pdfanandsimple
 
20170317 functional programming in julia
20170317 functional programming in julia20170317 functional programming in julia
20170317 functional programming in julia岳華 杜
 
Generating and Analyzing Events
Generating and Analyzing EventsGenerating and Analyzing Events
Generating and Analyzing Eventsztellman
 

Semelhante a Understanding the Value of Software Engineering Technologies (20)

Recsys matrix-factorizations
Recsys matrix-factorizationsRecsys matrix-factorizations
Recsys matrix-factorizations
 
Humble introduction to category theory in haskell
Humble introduction to category theory in haskellHumble introduction to category theory in haskell
Humble introduction to category theory in haskell
 
Functional Operations - Susan Potter
Functional Operations - Susan PotterFunctional Operations - Susan Potter
Functional Operations - Susan Potter
 
TI1220 Lecture 6: First-class Functions
TI1220 Lecture 6: First-class FunctionsTI1220 Lecture 6: First-class Functions
TI1220 Lecture 6: First-class Functions
 
Mit6 094 iap10_lec03
Mit6 094 iap10_lec03Mit6 094 iap10_lec03
Mit6 094 iap10_lec03
 
Poggi analytics - star - 1a
Poggi   analytics - star - 1aPoggi   analytics - star - 1a
Poggi analytics - star - 1a
 
RLTopics_2021_Lect1.pdf
RLTopics_2021_Lect1.pdfRLTopics_2021_Lect1.pdf
RLTopics_2021_Lect1.pdf
 
Why Haskell Matters
Why Haskell MattersWhy Haskell Matters
Why Haskell Matters
 
9-Functions.pptx
9-Functions.pptx9-Functions.pptx
9-Functions.pptx
 
Lecture 3
Lecture 3Lecture 3
Lecture 3
 
Examples of different polynomial graphs
Examples of different polynomial graphsExamples of different polynomial graphs
Examples of different polynomial graphs
 
Introduction to comp.physics ch 3.pdf
Introduction to comp.physics ch 3.pdfIntroduction to comp.physics ch 3.pdf
Introduction to comp.physics ch 3.pdf
 
R Bootcamp Day 3 Part 1 - Statistics in R
R Bootcamp Day 3 Part 1 - Statistics in RR Bootcamp Day 3 Part 1 - Statistics in R
R Bootcamp Day 3 Part 1 - Statistics in R
 
machine_learning.pptx
machine_learning.pptxmachine_learning.pptx
machine_learning.pptx
 
Functional Programming, simplified
Functional Programming, simplifiedFunctional Programming, simplified
Functional Programming, simplified
 
Introduction to haskell
Introduction to haskellIntroduction to haskell
Introduction to haskell
 
Optimization Techniques.pdf
Optimization Techniques.pdfOptimization Techniques.pdf
Optimization Techniques.pdf
 
Claire98
Claire98Claire98
Claire98
 
20170317 functional programming in julia
20170317 functional programming in julia20170317 functional programming in julia
20170317 functional programming in julia
 
Generating and Analyzing Events
Generating and Analyzing EventsGenerating and Analyzing Events
Generating and Analyzing Events
 

Mais de CS, NcState

Talks2015 novdec
Talks2015 novdecTalks2015 novdec
Talks2015 novdecCS, NcState
 
GALE: Geometric active learning for Search-Based Software Engineering
GALE: Geometric active learning for Search-Based Software EngineeringGALE: Geometric active learning for Search-Based Software Engineering
GALE: Geometric active learning for Search-Based Software EngineeringCS, NcState
 
Big Data: the weakest link
Big Data: the weakest linkBig Data: the weakest link
Big Data: the weakest linkCS, NcState
 
Three Laws of Trusted Data Sharing: (Building a Better Business Case for Dat...
Three Laws of Trusted Data Sharing:(Building a Better Business Case for Dat...Three Laws of Trusted Data Sharing:(Building a Better Business Case for Dat...
Three Laws of Trusted Data Sharing: (Building a Better Business Case for Dat...CS, NcState
 
Lexisnexis june9
Lexisnexis june9Lexisnexis june9
Lexisnexis june9CS, NcState
 
Welcome to ICSE NIER’15 (new ideas and emerging results).
Welcome to ICSE NIER’15 (new ideas and emerging results).Welcome to ICSE NIER’15 (new ideas and emerging results).
Welcome to ICSE NIER’15 (new ideas and emerging results).CS, NcState
 
Icse15 Tech-briefing Data Science
Icse15 Tech-briefing Data ScienceIcse15 Tech-briefing Data Science
Icse15 Tech-briefing Data ScienceCS, NcState
 
Kits to Find the Bits that Fits
Kits to Find  the Bits that Fits Kits to Find  the Bits that Fits
Kits to Find the Bits that Fits CS, NcState
 
Ai4se lab template
Ai4se lab templateAi4se lab template
Ai4se lab templateCS, NcState
 
Automated Software Enging, Fall 2015, NCSU
Automated Software Enging, Fall 2015, NCSUAutomated Software Enging, Fall 2015, NCSU
Automated Software Enging, Fall 2015, NCSUCS, NcState
 
Requirements Engineering
Requirements EngineeringRequirements Engineering
Requirements EngineeringCS, NcState
 
172529main ken and_tim_software_assurance_research_at_west_virginia
172529main ken and_tim_software_assurance_research_at_west_virginia172529main ken and_tim_software_assurance_research_at_west_virginia
172529main ken and_tim_software_assurance_research_at_west_virginiaCS, NcState
 
Automated Software Engineering
Automated Software EngineeringAutomated Software Engineering
Automated Software EngineeringCS, NcState
 
Next Generation “Treatment Learning” (finding the diamonds in the dust)
Next Generation “Treatment Learning” (finding the diamonds in the dust)Next Generation “Treatment Learning” (finding the diamonds in the dust)
Next Generation “Treatment Learning” (finding the diamonds in the dust)CS, NcState
 
Tim Menzies, directions in Data Science
Tim Menzies, directions in Data ScienceTim Menzies, directions in Data Science
Tim Menzies, directions in Data ScienceCS, NcState
 
Dagstuhl14 intro-v1
Dagstuhl14 intro-v1Dagstuhl14 intro-v1
Dagstuhl14 intro-v1CS, NcState
 
The Art and Science of Analyzing Software Data
The Art and Science of Analyzing Software DataThe Art and Science of Analyzing Software Data
The Art and Science of Analyzing Software DataCS, NcState
 

Mais de CS, NcState (20)

Talks2015 novdec
Talks2015 novdecTalks2015 novdec
Talks2015 novdec
 
Future se oct15
Future se oct15Future se oct15
Future se oct15
 
GALE: Geometric active learning for Search-Based Software Engineering
GALE: Geometric active learning for Search-Based Software EngineeringGALE: Geometric active learning for Search-Based Software Engineering
GALE: Geometric active learning for Search-Based Software Engineering
 
Big Data: the weakest link
Big Data: the weakest linkBig Data: the weakest link
Big Data: the weakest link
 
Three Laws of Trusted Data Sharing: (Building a Better Business Case for Dat...
Three Laws of Trusted Data Sharing:(Building a Better Business Case for Dat...Three Laws of Trusted Data Sharing:(Building a Better Business Case for Dat...
Three Laws of Trusted Data Sharing: (Building a Better Business Case for Dat...
 
Lexisnexis june9
Lexisnexis june9Lexisnexis june9
Lexisnexis june9
 
Welcome to ICSE NIER’15 (new ideas and emerging results).
Welcome to ICSE NIER’15 (new ideas and emerging results).Welcome to ICSE NIER’15 (new ideas and emerging results).
Welcome to ICSE NIER’15 (new ideas and emerging results).
 
Icse15 Tech-briefing Data Science
Icse15 Tech-briefing Data ScienceIcse15 Tech-briefing Data Science
Icse15 Tech-briefing Data Science
 
Kits to Find the Bits that Fits
Kits to Find  the Bits that Fits Kits to Find  the Bits that Fits
Kits to Find the Bits that Fits
 
Ai4se lab template
Ai4se lab templateAi4se lab template
Ai4se lab template
 
Automated Software Enging, Fall 2015, NCSU
Automated Software Enging, Fall 2015, NCSUAutomated Software Enging, Fall 2015, NCSU
Automated Software Enging, Fall 2015, NCSU
 
Requirements Engineering
Requirements EngineeringRequirements Engineering
Requirements Engineering
 
172529main ken and_tim_software_assurance_research_at_west_virginia
172529main ken and_tim_software_assurance_research_at_west_virginia172529main ken and_tim_software_assurance_research_at_west_virginia
172529main ken and_tim_software_assurance_research_at_west_virginia
 
Automated Software Engineering
Automated Software EngineeringAutomated Software Engineering
Automated Software Engineering
 
Next Generation “Treatment Learning” (finding the diamonds in the dust)
Next Generation “Treatment Learning” (finding the diamonds in the dust)Next Generation “Treatment Learning” (finding the diamonds in the dust)
Next Generation “Treatment Learning” (finding the diamonds in the dust)
 
Tim Menzies, directions in Data Science
Tim Menzies, directions in Data ScienceTim Menzies, directions in Data Science
Tim Menzies, directions in Data Science
 
Goldrush
GoldrushGoldrush
Goldrush
 
Dagstuhl14 intro-v1
Dagstuhl14 intro-v1Dagstuhl14 intro-v1
Dagstuhl14 intro-v1
 
Know thy tools
Know thy toolsKnow thy tools
Know thy tools
 
The Art and Science of Analyzing Software Data
The Art and Science of Analyzing Software DataThe Art and Science of Analyzing Software Data
The Art and Science of Analyzing Software Data
 

Último

Making and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfMaking and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfChris Hunter
 
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Shubhangi Sonawane
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxVishalSingh1417
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfAyushMahapatra5
 
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...KokoStevan
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docxPoojaSen20
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17Celine George
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docxPoojaSen20
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxVishalSingh1417
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxnegromaestrong
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingTeacherCyreneCayanan
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.MateoGardella
 

Último (20)

Making and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfMaking and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdf
 
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docx
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.
 

Understanding the Value of Software Engineering Technologies

  • 1. Understanding the Value of Software Engineering Technologies Phillip Green, Tim Menzies, Steven Williams, Oussama El-Rasaws WVU, USA ASE’09. November. Auckland, New Zealand ?
  • 2. Many technologies are good •  Model checking is a good thing •  Runtime verification is a good thing •  Test generation is a good thing •  Mining OO patterns is a good thing. •  X is a good thing •  Y is a good thing •  Z is a … •  etc Automated SE is a “good thing”
  • 3. But which are better? •  Is “technology1” more cost- effective than “technology2”? •  What is a “technology”? –  Paper-based; e.g. •  orthogonal defect classification . –  Tool-based; e.g. •  functional programming languages •  execution and testing tools •  automated formal analysis –  Process-based; e.g. •  changing an organization’s hiring practices, •  an agile continual renegotiation of the requirements Better than others, in context of particular project?
  • 4. This talk •  When making relative assessments of cost/benefits of SE technologies, –  Context changes everything –  Claims of relative cost benefits of tools are context-dependent •  The “local lessons effect” –  Ideas that are useful in general –  May not the most useful in particular •  Tools to find context-dependent local lessons –  “W”: case-based reasoner (goal: reduce effort) –  “NOVA”: more intricate tool (goal: reduce effort and time and defects) •  Take home lessons: –  Beware blanket claims of “this is better” –  Always define context where you tested your tools –  Compare ASE to non-ASE tools The real world is a special case
  • 5. Roadmap •  Round 1: – “W” : a very simple local lessons” finder •  Discussion – What’s wrong with “W” ? •  Round 2: – “NOVA” – Results from NOVA •  Conclusions
  • 6. Roadmap •  Round 1: – “W” : a very simple local lessons” finder •  Discussion – What’s wrong with “W” ? •  Round 2: – “NOVA” – Results from NOVA •  Conclusions
  • 7. How to survive the Titanic
  • 8. “W”:Simpler (Bayesian) Contrast Set Learning (in linear time) •  “best” = target class •  “rest” = other classes •  x = any range (e.g. sex = female) •  f(x|c) = frequency of x in class c •  b = f( x | best ) / F(best) •  r = f( x | rest ) / F(rest) •  LOR= log(odds ratio) = log(b/r) –  ? normalize 0 to max = 1 to 100 –  e = 2.7183 … –  p = F(B) / (F(B) + F(R)) –  P(B) = 1 / (1 + e^(-1*ln(p/(1 - p)) - s )) Mozina: KDD’04 “W”: 1)  Discretize data and outcomes 2)  Count frequencies of ranges in classes 3)  Sort ranges by LOR 4) Greedy search on top ranked ranges
  • 9. Preliminaries “W” + CBR •  “Query” –  What kind of project you want to analyze; e.g. •  Analysts not so clever, •  High reliability system •  Small KLOC •  “Cases” –  Historical records, with their development effort •  Output: –  A recommendation on how to change our projects in order to reduce development effort
  • 10. Cases train test Cases map features F to a utility F= Controllables + others
  • 11. Cases train test Cases map features F to a utility F= Controllables + others (query ⊆ ranges) relevant k-NN
  • 12. Cases train test (query ⊆ ranges) relevant Best utilities rest x x b = F(x | best) / F(best) r = F(x | rest) / F(rest) k-NN Cases map features F to a utility F= Controllables + others
  • 13. Cases train test (query ⊆ ranges) relevant Best utilities rest x x S = all x sorted descending by score if controllable(x) && b > r && b > min then score(x) = log(b/r) else score(x) = 0 fi k-NN Cases map features F to a utility F= Controllables + others b = F(x | best) / F(best) r = F(x | rest) / F(rest)
  • 14. Cases train test (query ⊆ ranges) relevant Best utilities rest x x S = all x sorted descending by score queryi* = query + ∪iSi treatedi k-NN k-NN Cases map features F to a utility F= Controllables + others if controllable(x) && b > r && b > min then score(x) = log(b/r) else score(x) = 0 fi b = F(x | best) / F(best) r = F(x | rest) / F(rest)
  • 15. Cases train test (query ⊆ ranges) relevant Best utilities rest x x S = all x sorted descending by score queryi* = query + ∪iSi treatedi k-NN k-NN i utility spread Cases map features F to a utility F= Controllables + others if controllable(x) && b > r && b > min then score(x) = log(b/r) else score(x) = 0 fi b = F(x | best) / F(best) r = F(x | rest) / F(rest) median
  • 16. Cases train test (query ⊆ ranges) relevant Best utilities rest x x S = all x sorted descending by score queryi* = query + ∪iSi treatedi k-NN k-NN i q0* qi* As is To be Cases map features F to a utility F= Controllables + others if controllable(x) && b > r && b > min then score(x) = log(b/r) else score(x) = 0 fi treatment b = F(x | best) / F(best) r = F(x | rest) / F(rest) i utility spread median
  • 17. Results (distribution of development efforts in qi*) Cases from promisedata.org/data Median = 50% percentile Spread = 75% - 25% percentile Improvement = (X - Y) / X •  X = as is •  Y = to be •  more is better Usually: • spread ≥ 75% improvement • median ≥ 60% improvement 0% 50% 100% 150% -50% 0% 50% 100% 150% median improvement spreadimprovement Using cases from http://promisedata.org
  • 18. Treatments Suggested by “W” All different
  • 19. Roadmap •  Round 1: – “W” : a very simple local lessons” finder •  Discussion – What’s wrong with “W” ? •  Round 2: – “NOVA” – Results from NOVA •  Conclusions
  • 20. Cases train test (query ⊆ ranges) relevant Best utilities rest x x S = all x sorted descending by score queryi* = query + ∪iSi treatedi k-NN k-NN i q0* qi* As is To be Cases map features F to a utility F= Controllables + others if controllable(x) && b > r && b > min then score(x) = log(b/r) else score(x) = 0 fi treatment b = F(x | best) / F(best) r = F(x | rest) / F(rest) i utility spread median
  • 21. Cases train test (query ⊆ ranges) relevant Best utilities rest x x S = all x sorted descending by score queryi* = query + ∪iSi treatedi k-NN k-NN i q0* qi* As is To be Cases map features F to a utility F= Controllables + others if controllable(x) && b > r && b > min then score(x) = log(b/r) else score(x) = 0 fi treatment b = F(x | best) / F(best) r = F(x | rest) / F(rest) i utility spread median
  • 22. Cases train test (query ⊆ ranges) relevant Best utilities rest x x S = all x sorted descending by score queryi* = query + ∪iSi treatedi k-NN k-NN i q0* qi* As is To be Cases map features F to a utility F= Controllables + others if controllable(x) && b > r && b > min then score(x) = log(b/r) else score(x) = 0 fi treatment b = F(x | best) / F(best) r = F(x | rest) / F(rest) i utility spread median A greedy linear time search? • Need to use much better search algorithms • Simulated annealing, Beam, Astar, ISSAMP, MaxWalkSat • SEESAW (home brew)
  • 23. Cases train test (query ⊆ ranges) relevant Best utilities rest x x S = all x sorted descending by score queryi* = query + ∪iSi treatedi k-NN k-NN i q0* qi* As is To be Cases map features F to a utility F= Controllables + others if controllable(x) && b > r && b > min then score(x) = log(b/r) else score(x) = 0 fi treatment b = F(x | best) / F(best) r = F(x | rest) / F(rest) i utility spread median
  • 24. Cases train test (query ⊆ ranges) relevant Best utilities rest x x S = all x sorted descending by score queryi* = query + ∪iSi treatedi k-NN k-NN i q0* qi* As is To be Cases map features F to a utility F= Controllables + others if controllable(x) && b > r && b > min then score(x) = log(b/r) else score(x) = 0 fi treatment b = F(x | best) / F(best) r = F(x | rest) / F(rest) i utility spread median
  • 25. Cases train test (query ⊆ ranges) relevant Best utilities rest x x S = all x sorted descending by score queryi* = query + ∪iSi treatedi k-NN k-NN i q0* qi* As is To be Cases map features F to a utility F= Controllables + others if controllable(x) && b > r && b > min then score(x) = log(b/r) else score(x) = 0 fi treatment b = F(x | best) / F(best) r = F(x | rest) / F(rest) i utility spread median Just trying to reduce effort? • What about development time? • What about number of defects? • What about different business contexts? e.g. “racing to market” vs “mission-critical” apps
  • 26. Cases train test (query ⊆ ranges) relevant Best utilities rest x x S = all x sorted descending by score queryi* = query + ∪iSi treatedi k-NN k-NN i q0* qi* As is To be Cases map features F to a utility F= Controllables + others if controllable(x) && b > r && b > min then score(x) = log(b/r) else score(x) = 0 fi treatment b = F(x | best) / F(best) r = F(x | rest) / F(rest) i utility spread median
  • 27. Cases train test (query ⊆ ranges) relevant Best utilities rest x x S = all x sorted descending by score queryi* = query + ∪iSi treatedi k-NN k-NN i q0* qi* As is To be Cases map features F to a utility F= Controllables + others if controllable(x) && b > r && b > min then score(x) = log(b/r) else score(x) = 0 fi treatment b = F(x | best) / F(best) r = F(x | rest) / F(rest) i utility spread median
  • 28. Cases train test (query ⊆ ranges) relevant Best utilities rest x x S = all x sorted descending by score queryi* = query + ∪iSi treatedi k-NN k-NN i q0* qi* As is To be Cases map features F to a utility F= Controllables + others if controllable(x) && b > r && b > min then score(x) = log(b/r) else score(x) = 0 fi treatment b = F(x | best) / F(best) r = F(x | rest) / F(rest) i utility spread median Is nearest neighbor causing conclusion instability? • Q: How to smooth the bumps between between the samples ? • A: Don’t apply constraints to the data • Apply it as model inputs instead
  • 29. Cases train test (query ⊆ ranges) relevant Best utilities rest x x S = all x sorted descending by score queryi* = query + ∪iSi treatedi k-NN k-NN i q0* qi* As is To be Cases map features F to a utility F= Controllables + others if controllable(x) && b > r && b > min then score(x) = log(b/r) else score(x) = 0 fi treatment b = F(x | best) / F(best) r = F(x | rest) / F(rest) i utility spread median
  • 30. Cases train test (query ⊆ ranges) relevant Best utilities rest x x S = all x sorted descending by score queryi* = query + ∪iSi treatedi k-NN k-NN i q0* qi* As is To be Cases map features F to a utility F= Controllables + others if controllable(x) && b > r && b > min then score(x) = log(b/r) else score(x) = 0 fi treatment b = F(x | best) / F(best) r = F(x | rest) / F(rest) i utility spread median
  • 31. Cases train test (query ⊆ ranges) relevant Best utilities rest x x S = all x sorted descending by score queryi* = query + ∪iSi treatedi k-NN k-NN i q0* qi* As is To be Cases map features F to a utility F= Controllables + others if controllable(x) && b > r && b > min then score(x) = log(b/r) else score(x) = 0 fi treatment b = F(x | best) / F(best) r = F(x | rest) / F(rest) i utility spread median Just one test? • What about looking for stability in “N” repeats?
  • 32. Cases train test (query ⊆ ranges) relevant Best utilities rest x x S = all x sorted descending by score queryi* = query + ∪iSi treatedi k-NN k-NN i q0* qi* As is To be Cases map features F to a utility F= Controllables + others if controllable(x) && b > r && b > min then score(x) = log(b/r) else score(x) = 0 fi treatment b = F(x | best) / F(best) r = F(x | rest) / F(rest) i utility spread median More tests1
  • 33. Cases train test (query ⊆ ranges) relevant Best utilities rest x x S = all x sorted descending by score queryi* = query + ∪iSi treatedi k-NN k-NN i q0* qi* As is To be Cases map features F to a utility F= Controllables + others if controllable(x) && b > r && b > min then score(x) = log(b/r) else score(x) = 0 fi treatment b = F(x | best) / F(best) r = F(x | rest) / F(rest) i utility spread median More tests1 More models 2
  • 34. Cases train test (query ⊆ ranges) relevant Best utilities rest x x S = all x sorted descending by score queryi* = query + ∪iSi treatedi k-NN k-NN i q0* qi* As is To be Cases map features F to a utility F= Controllables + others if controllable(x) && b > r && b > min then score(x) = log(b/r) else score(x) = 0 fi treatment b = F(x | best) / F(best) r = F(x | rest) / F(rest) i utility spread median More tests1 More models 2 More goals3
  • 35. Cases train test (query ⊆ ranges) relevant Best utilities rest x x S = all x sorted descending by score queryi* = query + ∪iSi treatedi k-NN k-NN i q0* qi* As is To be Cases map features F to a utility F= Controllables + others if controllable(x) && b > r && b > min then score(x) = log(b/r) else score(x) = 0 fi treatment b = F(x | best) / F(best) r = F(x | rest) / F(rest) i utility spread median More tests1 More models 2 More goals3 More search4
  • 36. Roadmap •  Round 1: – “W” : a very simple local lessons” finder •  Discussion – What’s wrong with “W” ? •  Round 2: – “NOVA” – Results from NOVA •  Conclusions
  • 37. COCOMO •  Time to build it (calendar months) •  Effort to build it (total staff months) COQUALMO •  defects per 1000 lines of code Estimate = model( p, t ) •  P = project options •  T = tuning options •  Normal practice: Adjust “t” using local data •  NOVA: Stagger randomly all tunings even seen before USC Cocomo suite (Boehm 1981, 2000) More models ?
  • 38. B = BFC Goal #1: •  better, faster, cheaper Try to minimize: •  Development time and •  Development effort and •  # defects Goal #2 •  minimize risk exposure Rushing to beat the competition •  Get to market, soon as you can •  Without too many defects More goals X = XPOS
  • 39. Simulated Annealling ISSAMP ASTAR BEAM MaxWalkSat SEESAW : MaxWalkSat + boundary mutation •  Local favorite •  Does best at reduction defects or effort or time Not greedy search More search engines
  • 40. Data sets •  OSP= orbital space plane GNC •  OSP2 = second generation GNC •  Flight = JPL flight systems •  Ground = JPL ground systems For each data set •  Search N= 20 times (with SEESAW) •  Record how often decisions are found Four data sets, repeat N=20 times More tests
  • 41. Frequency% of range in 20 repeats If high, then more in BFC If low, then usually in XPOS Better, faster, cheaper Minimize risk exposure (rushing to market) (ignore all ranges found < 50%) If 50% then same In BFC and XPOS Mostly: if selected by one, rejected by the other “Value” (business context) changes everything
  • 42. And what of defect removal techniques? Better, faster, cheaper Minimize risk exposure (rushing to market) Aa = automated analysis Etat= execution testing and tools Pr= peer review Stopping defect introduction is better than defect removal.
  • 43. Roadmap •  Round 1: – “W” : a very simple local lessons” finder •  Discussion – What’s wrong with “W” ? •  Round 2: – “NOVA” – Results from NOVA •  Conclusions
  • 44. Conclusion •  When making relative assessments of cost/benefits of SE technologies, –  Context changes everything –  Claims of relative cost benefits of tools are context-dependent •  The “local lessons effect” –  Ideas that are useful in general –  May not the most useful in particular •  Tools to find context-dependent local lessons –  “W”: case-based reasoner (goal: reduce effort) –  “NOVA”: more intricate tool (goal: reduce effort and time and defects) •  Take home lessons: –  Beware blanket claims of “this is better” –  Always define context where you tested your tools –  Compare ASE to non-ASE tools The real world is a special case