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

ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYKayeClaireEstoconing
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfMr Bounab Samir
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxMaryGraceBautista27
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management systemChristalin Nelson
 
Culture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptxCulture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptxPoojaSen20
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...Postal Advocate Inc.
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management SystemChristalin Nelson
 
FILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipinoFILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipinojohnmickonozaleda
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptxSherlyMaeNeri
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfphamnguyenenglishnb
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Seán Kennedy
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptxmary850239
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 

Último (20)

ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptx
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management system
 
Culture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptxCulture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptx
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management System
 
FILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipinoFILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipino
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptx
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx
 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 

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