This document summarizes limitations with a simple case-based reasoning tool called "W" for assessing the relative costs and benefits of software engineering technologies based on context. Key limitations discussed include: using a greedy search instead of more sophisticated search algorithms; only optimizing for effort reduction rather than other factors like time or defects; instability due to nearest neighbor classification; and lack of validation through repeated tests. The discussion suggests ways to address these, such as using different search techniques, optimizing multiple factors, applying constraints as model inputs rather than data, and testing stability over multiple repeats.
Software Engineering Solutions that Create Long-Term Business ValueInfopulse
Infopulse offers high-class software engineering services for a variety of industries worldwide, ensuring in-depth expertise in all kinds of programming technologies and platforms, personalized approach to each customer's need, and ability to suggest the most optimal solution in every separate business case. Check out the presentation for more details.
A Framework for Synergy, Collaboration, Exploration, Creativity, Discovery & Innovation. A Team activity to balance need, function & cost.
bsauter@workbench20.com
www.workbench20.com
Software Engineering Solutions that Create Long-Term Business ValueInfopulse
Infopulse offers high-class software engineering services for a variety of industries worldwide, ensuring in-depth expertise in all kinds of programming technologies and platforms, personalized approach to each customer's need, and ability to suggest the most optimal solution in every separate business case. Check out the presentation for more details.
A Framework for Synergy, Collaboration, Exploration, Creativity, Discovery & Innovation. A Team activity to balance need, function & cost.
bsauter@workbench20.com
www.workbench20.com
Technical operations is plagued with an unhealthy infatuation of typically untested, imperative code with a high reliance on shared mutable state using dynamically typed languages such as Ruby, Python, Bash, and - ugh - remember Perl? :) In an age where building reliable infrastructure to elastically scale applications and services are paramount to business success, we need to start rethinking the infrastructure engineer’s toolkit and guiding principles. This talk will take a look at applying various functional techniques to building and automating infrastructure. From functional package management and congruent configuration to declarative cloud provisioning we’ll see just how practical these techniques typically used in functional programming for applications can be used to help build more robust and predictable infrastructures. While specific code examples will be given, the emphasis of the talk will be on guiding principles and functional design.
Fortran is a general-purpose programming language, mainly intended for mathematical computations in
science applications
this chapter is the third chapter
Science has escaped the lab and is roaming free in the world. People use software to understand the world . What tools are needed to support that work?
More Related Content
Similar to Understanding the Value of Software Engineering Technologies
Technical operations is plagued with an unhealthy infatuation of typically untested, imperative code with a high reliance on shared mutable state using dynamically typed languages such as Ruby, Python, Bash, and - ugh - remember Perl? :) In an age where building reliable infrastructure to elastically scale applications and services are paramount to business success, we need to start rethinking the infrastructure engineer’s toolkit and guiding principles. This talk will take a look at applying various functional techniques to building and automating infrastructure. From functional package management and congruent configuration to declarative cloud provisioning we’ll see just how practical these techniques typically used in functional programming for applications can be used to help build more robust and predictable infrastructures. While specific code examples will be given, the emphasis of the talk will be on guiding principles and functional design.
Fortran is a general-purpose programming language, mainly intended for mathematical computations in
science applications
this chapter is the third chapter
Science has escaped the lab and is roaming free in the world. People use software to understand the world . What tools are needed to support that work?
GALE: Geometric active learning for Search-Based Software EngineeringCS, NcState
Multi-objective evolutionary algorithms (MOEAs) help software engineers find novel solutions to complex problems. When automatic tools explore too many options, they are slow to use and hard to comprehend. GALE is a near-linear time MOEA that builds a piecewise approximation to the surface of best solutions along the Pareto frontier. For each piece, GALE mutates solutions towards the better end. In numerous case studies, GALE finds comparable solutions to standard methods (NSGA-II, SPEA2) using far fewer evaluations (e.g. 20 evaluations, not 1,000). GALE is recommended when a model is expensive to evaluate, or when some audience needs to browse and understand how an MOEA has made its conclusions.
Three Laws of Trusted Data Sharing:(Building a Better Business Case for Dat...CS, NcState
Discussions about sharing
- Too much fear
- Not enough about benefits
Can we learn more from sharing that hoarding ?
- Yes (results from SE)
Three laws of trusted data sharing:
- For SE quality prediction..
- Better models from shared privatized data that from all raw data
Q: does this work for other kinds of data?
A: don’t know… yet
172529main ken and_tim_software_assurance_research_at_west_virginiaCS, NcState
SA @ WV(software assurance research at West Virginia)
Kenneth McGill
NASA IV&V Facility Research Lead
304.367.8300
Kenneth.McGill@ivv.nasa.gov
Dr. Tim Menzies Ph.D. (WVU)
Software Engineering Research Chair
tim@menzies.us
Next Generation “Treatment Learning” (finding the diamonds in the dust)CS, NcState
Q: How have dummies (like me) managed to gain (some) control over a (seemingly) complex world?
A:The world is simpler than we think.
◆ Models contain clumps
◆ A few collar variables decide which clumps to use.
Read| The latest issue of The Challenger is here! We are thrilled to announce that our school paper has qualified for the NATIONAL SCHOOLS PRESS CONFERENCE (NSPC) 2024. Thank you for your unwavering support and trust. Dive into the stories that made us stand out!
Unit 8 - Information and Communication Technology (Paper I).pdfThiyagu K
This slides describes the basic concepts of ICT, basics of Email, Emerging Technology and Digital Initiatives in Education. This presentations aligns with the UGC Paper I syllabus.
Francesca Gottschalk - How can education support child empowerment.pptxEduSkills OECD
Francesca Gottschalk from the OECD’s Centre for Educational Research and Innovation presents at the Ask an Expert Webinar: How can education support child empowerment?
Operation “Blue Star” is the only event in the history of Independent India where the state went into war with its own people. Even after about 40 years it is not clear if it was culmination of states anger over people of the region, a political game of power or start of dictatorial chapter in the democratic setup.
The people of Punjab felt alienated from main stream due to denial of their just demands during a long democratic struggle since independence. As it happen all over the word, it led to militant struggle with great loss of lives of military, police and civilian personnel. Killing of Indira Gandhi and massacre of innocent Sikhs in Delhi and other India cities was also associated with this movement.
Normal Labour/ Stages of Labour/ Mechanism of LabourWasim Ak
Normal labor is also termed spontaneous labor, defined as the natural physiological process through which the fetus, placenta, and membranes are expelled from the uterus through the birth canal at term (37 to 42 weeks
Synthetic Fiber Construction in lab .pptxPavel ( NSTU)
Synthetic fiber production is a fascinating and complex field that blends chemistry, engineering, and environmental science. By understanding these aspects, students can gain a comprehensive view of synthetic fiber production, its impact on society and the environment, and the potential for future innovations. Synthetic fibers play a crucial role in modern society, impacting various aspects of daily life, industry, and the environment. ynthetic fibers are integral to modern life, offering a range of benefits from cost-effectiveness and versatility to innovative applications and performance characteristics. While they pose environmental challenges, ongoing research and development aim to create more sustainable and eco-friendly alternatives. Understanding the importance of synthetic fibers helps in appreciating their role in the economy, industry, and daily life, while also emphasizing the need for sustainable practices and innovation.
Model Attribute Check Company Auto PropertyCeline George
In Odoo, the multi-company feature allows you to manage multiple companies within a single Odoo database instance. Each company can have its own configurations while still sharing common resources such as products, customers, and suppliers.
Acetabularia Information For Class 9 .docxvaibhavrinwa19
Acetabularia acetabulum is a single-celled green alga that in its vegetative state is morphologically differentiated into a basal rhizoid and an axially elongated stalk, which bears whorls of branching hairs. The single diploid nucleus resides in the rhizoid.
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...Levi Shapiro
Letter from the Congress of the United States regarding Anti-Semitism sent June 3rd to MIT President Sally Kornbluth, MIT Corp Chair, Mark Gorenberg
Dear Dr. Kornbluth and Mr. Gorenberg,
The US House of Representatives is deeply concerned by ongoing and pervasive acts of antisemitic
harassment and intimidation at the Massachusetts Institute of Technology (MIT). Failing to act decisively to ensure a safe learning environment for all students would be a grave dereliction of your responsibilities as President of MIT and Chair of the MIT Corporation.
This Congress will not stand idly by and allow an environment hostile to Jewish students to persist. The House believes that your institution is in violation of Title VI of the Civil Rights Act, and the inability or
unwillingness to rectify this violation through action requires accountability.
Postsecondary education is a unique opportunity for students to learn and have their ideas and beliefs challenged. However, universities receiving hundreds of millions of federal funds annually have denied
students that opportunity and have been hijacked to become venues for the promotion of terrorism, antisemitic harassment and intimidation, unlawful encampments, and in some cases, assaults and riots.
The House of Representatives will not countenance the use of federal funds to indoctrinate students into hateful, antisemitic, anti-American supporters of terrorism. Investigations into campus antisemitism by the Committee on Education and the Workforce and the Committee on Ways and Means have been expanded into a Congress-wide probe across all relevant jurisdictions to address this national crisis. The undersigned Committees will conduct oversight into the use of federal funds at MIT and its learning environment under authorities granted to each Committee.
• The Committee on Education and the Workforce has been investigating your institution since December 7, 2023. The Committee has broad jurisdiction over postsecondary education, including its compliance with Title VI of the Civil Rights Act, campus safety concerns over disruptions to the learning environment, and the awarding of federal student aid under the Higher Education Act.
• The Committee on Oversight and Accountability is investigating the sources of funding and other support flowing to groups espousing pro-Hamas propaganda and engaged in antisemitic harassment and intimidation of students. The Committee on Oversight and Accountability is the principal oversight committee of the US House of Representatives and has broad authority to investigate “any matter” at “any time” under House Rule X.
• The Committee on Ways and Means has been investigating several universities since November 15, 2023, when the Committee held a hearing entitled From Ivory Towers to Dark Corners: Investigating the Nexus Between Antisemitism, Tax-Exempt Universities, and Terror Financing. The Committee followed the hearing with letters to those institutions on January 10, 202
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Dr. Vinod Kumar Kanvaria
Exploiting Artificial Intelligence for Empowering Researchers and Faculty,
International FDP on Fundamentals of Research in Social Sciences
at Integral University, Lucknow, 06.06.2024
By Dr. Vinod Kumar Kanvaria
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
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
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
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
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
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