SlideShare una empresa de Scribd logo
1 de 44
Descargar para leer sin conexión
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

Más contenido relacionado

Similar a Understanding the Value of Software Engineering Technologies

TI1220 Lecture 6: First-class Functions
TI1220 Lecture 6: First-class FunctionsTI1220 Lecture 6: First-class Functions
TI1220 Lecture 6: First-class Functions
Eelco Visser
 
Poggi analytics - star - 1a
Poggi   analytics - star - 1aPoggi   analytics - star - 1a
Poggi analytics - star - 1a
Gaston Liberman
 
Examples of different polynomial graphs
Examples of different polynomial graphsExamples of different polynomial graphs
Examples of different polynomial graphs
Jessica Garcia
 

Similar 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
 

Más de CS, NcState

Lexisnexis june9
Lexisnexis june9Lexisnexis june9
Lexisnexis june9
CS, NcState
 
Ai4se lab template
Ai4se lab templateAi4se lab template
Ai4se lab template
CS, NcState
 
Automated Software Enging, Fall 2015, NCSU
Automated Software Enging, Fall 2015, NCSUAutomated Software Enging, Fall 2015, NCSU
Automated Software Enging, Fall 2015, NCSU
CS, NcState
 
Dagstuhl14 intro-v1
Dagstuhl14 intro-v1Dagstuhl14 intro-v1
Dagstuhl14 intro-v1
CS, NcState
 

Más 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

Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
AnaAcapella
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
QucHHunhnh
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
ciinovamais
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 

Último (20)

Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...
 
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
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docx
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701
 
Magic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxMagic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptx
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Asian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptxAsian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptx
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 

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