1. SBSE Meets
Software Maintenance:
Achievements and Open Problems
Massimiliano Di Penta
University of Sannio, Italy
dipenta@unisannio.it
Friday, September 28, 12
3. Aim
Why SBSE is important for software
maintenance
Friday, September 28, 12
4. Aim
Why SBSE is important for software
maintenance
Tasks to which SBSE can be applied
Friday, September 28, 12
5. Aim
Why SBSE is important for software
maintenance
Tasks to which SBSE can be applied
Challenges in supporting maintenance
through SBSE
Friday, September 28, 12
6. Aim
Why SBSE is important for software
maintenance
Tasks to which SBSE can be applied
Challenges in supporting maintenance
through SBSE
Some possible solutions....
Friday, September 28, 12
7. Definition
The process of modifying a software system
or component after delivery to correct faults,
improve performance or other attributes, or
adapt to a changed environment.
IEEE Glossary of Software Engineering Terminology
Friday, September 28, 12
9. SBSE is not only
Testing!
Friday, September 28, 12
10. SBSE @ ICSM 2012
Ameni Ben Fadhel, Marouane Kessentini, Philip Langer
and Manuel Wimmer. Search-based Detection of High-
level Model Changes
Ali Ouni, Marouane Kessentini, Houari Sahraoui and
Mohamed Salah Hamdi. Search-based Refactoring:
Towards Semantics Preservation
Mathew Hall, Neil Walkinshaw and Phil McMinn.
Supervised Software Modularisation
However, if you look at many other papers,
some of the problems could have been nicely solved using
search based methods too!
Friday, September 28, 12
11. Maint. @ SSBSE 2012
Roberto Erick Lopez-Herrejon, Jose Galindo, David Benavides, Sergio
Segura and Alexander Egyed. Reverse Engineering Feature Models With
Evolutionary Algorithms: An Exploratory Study
Gergõ Balogh, Ádám Zoltán Végh and Árpád Beszédes. Prediction of
Software Development Modification Effort Enhanced by Genetic Algorithm
Alex Tomasi, Alessandro Marchetto and Chiara Di Francescomarino.
Domain-driven Optimization of Recovered Business Processes
Shadi Ghaith and Mel Ó Cinnéide. Improving Software Security using
Search-Based Refactoring
Mathew Hall and Phil McMinn. An Analysis of the Performance of the
Bunch Modularisation Algorithm s Hierarchy Generation Approach
Gabriele Bavota, Filomena Carnevale, Andrea De Lucia, Massimiliano Di
Penta and Rocco Oliveto. Putting the Developer in-the-loop: an Interactive
GA for Software Re-Modularization
Friday, September 28, 12
12. Why
Software Maintenance
needs SSBSE?
Friday, September 28, 12
14. Presence of conflicting
objectives
Maintenance tasks have to fulfill some design
goal / non-functional requirements
Design goals are likely conflictual
Maintainability
Performance
Friday, September 28, 12
15. Examples
• maintainability vs performance
• time to market vs reliability
• functionality vs power consumption
• functionality vs cost
• customers satisfaction vs resource
requirements
• portability vs performance
Friday, September 28, 12
16. Reducing power consumption
Customer’s satisfaction
Battery
consumption
Code size
Nasir Ali, Wei Wu, Giuliano Antoniol, Massimiliano Di
Penta,Yann-Gaël Guéhéneuc, Jane Huffman Hayes:
MoMS: Multi-objective miniaturization of software.
ICSM 2011: 153-162
Friday, September 28, 12
17. Three objectives
cust.
satisf.
consumption
size
Size vs. consumption vs. customer satisfaction
Friday, September 28, 12
18. Maintenance Activities
(std. IEEE 1219)
Plan Plan changes, bug triaging, staff activities
Analysis
Balance across conflicting goals
Design
Support to program comprehension
Implementation Support to change, automatic bug
fixing self-change
Regression
testing (Regression) test generation,
prioritization, test suite repairing
System testing
Delivery Dynamic binding, self-healing
Friday, September 28, 12
19. Maintenance Activities
(std. IEEE 1219)
Plan Plan changes, bug triaging, staff activities
Analysis
Balance across conflicting goals
Design
Support to program comprehension
Implementation Support to change, automatic bug
fixing self-change
Regression
testing (Regression) test generation,
prioritization, test suite repairing
System testing
Delivery Dynamic binding, self-healing
Friday, September 28, 12
20. Two dimensions
Regression Self- Self-
testing repair evolving
Level of automation
Support to
Support to
program
change
comprehension
Project
management
Presence of human-centric rationale
Friday, September 28, 12
21. Automation
vs. human-centric
• SBSE has been very successful in activities
that can be (almost) completely automated
• Think about test data generation, or non-
functional test
• Many maintenance activities are highly
human-centric
• Cannot fully and properly be captured by a
fitness function
Friday, September 28, 12
22. Where and how SBSE can help in software
maintenance in its different phases
Challenges, difficulties, open problems
Friday, September 28, 12
23. Challenge I
Managing Maintenance
Activities
Friday, September 28, 12
24. Some research
problems
• Schedule maintenance activities over time
• Staff software tasks
• Release planning
• Bug triaging
Friday, September 28, 12
25. Some work in the area
J. Francisco Chicano, Francisco Luna, Antonio J. Nebro, Enrique Alba: Using multi-objective metaheuristics to
solve the software project scheduling problem. GECCO 2011: 1915-1922
Ahilton Barreto, Márcio de Oliveira Barros, Cláudia Maria Lima Werner: Staffing a software project: A
constraint satisfaction and optimization-based approach. Computers & OR 35(10): 3073-3089 (2008)
Jian Ren, Mark Harman, Massimiliano Di Penta: Cooperative Co-evolutionary Optimization of Software
Project Staff Assignments and Job Scheduling. SSBSE 2011: 127-141
Massimiliano Di Penta, Mark Harman, Giuliano Antoniol: The use of search-based optimization techniques to
schedule and staff software projects: an approach and an empirical study. Softw., Pract. Exper. 41(5): 495-519
(2011)
Stefan Gueorguiev, Mark Harman, Giuliano Antoniol: Software project planning for robustness and
completion time in the presence of uncertainty using multi objective search based software engineering.
GECCO 2009: 1673-1680
Massimiliano Di Penta, Mark Harman, Giuliano Antoniol, Fahim Qureshi: The Effect of Communication
Overhead on Software Maintenance Project Staffing: a Search-Based Approach. ICSM 2007: 315-324
Chao C, Komada J, Liu Q, Muteja M, Alsalqan Y, Chang C. An application of genetic algorithms to software
project management. Proceedings of the Ninth International Advanced Science and Technology, Chicago, IL,
U.S.A., 1993; 247–252.
Chang CK, Christensen MJ, Zhang T. Genetic algorithms for project management. Annals of Software
Engineering 2001; 11(1):107–139.
Alba E, Chicano F. Software project management with GAs. Information Sciences 2007; 177(11):2380–2401.
Friday, September 28, 12
26. Problem statement
Project WBS Maintenance phases
Project
Abandonment
WP1 WP2 WP3
WP11 WP12 WP31 WP32
WP1 WP2 … WPn
WP
Ordering Rework
People distribution
Friday, September 28, 12
29. Issues and open
problems
• Project management is a human-centric
activity
• A mathematical model seldom captures
personal capabilities
• Skill, experience, synergy, capability to
cooperate with others
• Even if we capture such variables in a model,
how do we measure them?
Friday, September 28, 12
30. So where can we get
this data from?
Friday, September 28, 12
31. Measure fitness through
software repositories
Capture expertise
Versioning
Mails
Capture
communication and
mentoring skills
Identify emerging
Mylyn
Runtime
Bug
tracking
traces groups
Logs
Friday, September 28, 12
32. Capture skills
• Given an incoming change request, who will
be the most suitable developer for fixing it?
• See who, previously, fixed very similar
change requests
• Textual similarity between bug reports
John Anvik, Gail C. Murphy: Reducing the effort of bug report triage: Recommenders for
development-oriented decisions. ACM Trans. Softw. Eng. Methodol. 20(3): 10 (2011)
Friday, September 28, 12
33. Identify mentors ...
Messages
exchanged between
newcomers and
senior developers
used to identify
mentors
Similarly to what
ArnetMiner does
for academics
Gerardo Canfora, Massimiliano Di Penta, Rocco Oliveto, Sebastiano Panichella, "Who is going to
Mentor Newcomers in Open Source Projects?", To appear in Proceedings of FSE 2012, November
10-17 2012, North Carolina, USA
Friday, September 28, 12
34. Who induced fixes?
f 1.5 f 1.6 f 1.7 f 1.8
bug fixing
SZZ algorithm based on CVS annotate or SVN/Git blame
Jacek Sliwerski, Thomas Zimmermann, Andreas Zeller: When do changes induce fixes? MSR 2005
Sunghun Kim, Thomas Zimmermann, Kai Pan, E. James Whitehead Jr.: Automatic Identification of Bug-
Introducing Changes. ASE 2006: 81-90
Friday, September 28, 12
35. Who induced fixes?
f 1.5 f 1.6 f 1.7 f 1.8
bug fixing
SZZ algorithm based on CVS annotate or SVN/Git blame
Jacek Sliwerski, Thomas Zimmermann, Andreas Zeller: When do changes induce fixes? MSR 2005
Sunghun Kim, Thomas Zimmermann, Kai Pan, E. James Whitehead Jr.: Automatic Identification of Bug-
Introducing Changes. ASE 2006: 81-90
Friday, September 28, 12
36. Who induced fixes?
f 1.5 f 1.6 f 1.7 f 1.8
bug fixing
SZZ algorithm based on CVS annotate or SVN/Git blame
Jacek Sliwerski, Thomas Zimmermann, Andreas Zeller: When do changes induce fixes? MSR 2005
Sunghun Kim, Thomas Zimmermann, Kai Pan, E. James Whitehead Jr.: Automatic Identification of Bug-
Introducing Changes. ASE 2006: 81-90
Friday, September 28, 12
37. Who induced fixes?
f 1.5 f 1.6 f 1.7 f 1.8
bug intro bug intro bug fixing
SZZ algorithm based on CVS annotate or SVN/Git blame
Jacek Sliwerski, Thomas Zimmermann, Andreas Zeller: When do changes induce fixes? MSR 2005
Sunghun Kim, Thomas Zimmermann, Kai Pan, E. James Whitehead Jr.: Automatic Identification of Bug-
Introducing Changes. ASE 2006: 81-90
Friday, September 28, 12
38. Mine your fitness!
Software repositories provide you quite a lot
of data to build a fitness function
e.g., capturing people attitude to perform a
maintenance task, or to work together
Friday, September 28, 12
39. Beyond project staffing
• Make project scheduling and staffing that
self-adapt over time
• Developers availability, different
workloads, request for unplanned skills
• Evolutionary models should learn from
project managers’ experience
• Embedded in the fitness functions
Friday, September 28, 12
40. Challenge II -
Supporting Program
Comprehension
Friday, September 28, 12
42. What did Mark discuss?
• Optimized pretty-printing
• Search-based amorphous program slicing
• Optimizing code and design for program
comprehension
• Self-evolving visualizations
• Co-evolving program comprehension
• Linguistic evolution
• ...
Friday, September 28, 12
43. Comprehension-
oriented optimization
• Many problems are similar to those
encountered in modularization and
refactoring
• Different objective: comprehension
• Different persistence of produced artifacts:
may be used for a comprehension task only
• High interaction with humans
Friday, September 28, 12
44. What’s the primary
source of information for
program comprehension?
Friday, September 28, 12
47. At least, you have
source code...
Friday, September 28, 12
48. At least, you have
source code...
and source code is text!
Friday, September 28, 12
49. Leveraging Natural Language Analysis
of Software: Achievements,
Challenges, and Opportunities
Keynote by Lori Pollock @ICSM 2012
Friday, September 28, 12
50. Applications of
textual analysis
• Traceability link recovery
• Feature/concern location
• Code search
• Clone detection
• Building quality models / defect predictors
• Refactoring
• Redocumentation
• ....
How can search-based techniques be useful in this context?
Friday, September 28, 12
51. IR process
Stop
Lexical Stemming/ Term Algebraic
Documents words
analysis lemmatization Indexing model
removal
• Various choices for each step of the process
• Each technique requires a careful calibration
• E.g. number of concepts for LSI, number of
topics, α, β for LDA
• Choices are highly dependent on the
corpus and on the problem
• That’s a search problem too!
Friday, September 28, 12
54. Identifier splitting
expansion
OpenFile Open File
Easy!
Friday, September 28, 12
55. Identifier splitting
expansion
OpenFile Open File
Easy!
prmcntr
Friday, September 28, 12
56. Identifier splitting
expansion
OpenFile Open File
Easy!
pr mcntr
prmcntr
Friday, September 28, 12
57. Identifier splitting
expansion
OpenFile Open File
Easy!
pr mcntr
prmcntr prm cntr
Friday, September 28, 12
58. Identifier splitting
expansion
OpenFile Open File
Easy!
pr mcntr
prmcntr prm cntr
prmc ntr
Friday, September 28, 12
59. Identifier splitting
expansion
OpenFile Open File
Easy!
pr mcntr
prmcntr prm cntr
prmc ntr parameter control
Friday, September 28, 12
60. Identifier splitting
expansion
OpenFile Open File
Easy!
pr mcntr
prmcntr prm cntr
program control
prmc ntr parameter control
Friday, September 28, 12
61. Identifier splitting
expansion
OpenFile Open File
Easy!
pr mcntr
parameter counter
prmcntr prm cntr
program control
prmc ntr parameter control
Friday, September 28, 12
62. Identifier splitting
expansion
OpenFile Open File
Easy!
pr mcntr program counter
parameter counter
prmcntr prm cntr
program control
prmc ntr parameter control
Friday, September 28, 12
63. Identifier splitting/expansion
as a search based problem
• Search among possible words in dictionaries
• Context dictionary, English dictionary,
domain terms, known abbreviations/
acronyms
• Techniques: Dynamic Time Warping, Hill
Climbing
L. Guerrouj, P. Galinier,Y.G. Guéhéneuc, G. Antoniol, M. Di Penta - TRIS: a Fast and Accurate Identifiers
Splitting and Expansion Algorithm - To appear in proceedings of WCRE 2012, Oct. 2012
L. Guerrouj, M. Di Penta, G. Antoniol, and Y. G. Guéhéneuc. TIDIER: An identifier splitting approach using
speech recognition techniques, Journal of Software Maintenance - Research and Practice, p. 31, 2011.
Friday, September 28, 12
64. Challenge III
Recommending
Changes
Friday, September 28, 12
65. Recommendation
overload!
Maintenance-related recommenders provide useful
suggestions to developers
The number of possible improvement for a system
snapshot can be huge
Recommending all of them constitutes just overload
of information for the developer [Murphy 2007]
Friday, September 28, 12
66. How SBSE can help?
• Searching for a (near) optimal set of
recommendations
• With respect to what?
• Cost
• Performance
• Code quality...
• Security
• ... conflicting objectives, hence it’s a multi-objective
optimization problem
Friday, September 28, 12
67. Search-based
modularization/refactoring
Maximizing inter-package/
dependencies
Minimizing intra-package
dependencies
Minimizing CK metrics
...use other metric
profiles, e.g. security-
related
Friday, September 28, 12
68. Search-based
modularization/refactoring
Maximizing inter-package/
dependencies
Minimizing intra-package
dependencies
Minimizing CK metrics
...use other metric
profiles, e.g. security-
related
Friday, September 28, 12
69. Search-based
modularization/refactoring
Maximizing inter-package/
dependencies
Minimizing intra-package
dependencies
Minimizing CK metrics
...use other metric
profiles, e.g. security-
related
Friday, September 28, 12
70. Search-based
modularization/refactoring
Maximizing inter-package/
dependencies
Minimizing intra-package
dependencies
Minimizing CK metrics
...use other metric
profiles, e.g. security-
related
Friday, September 28, 12
71. Search-based
modularization/refactoring
Maximizing inter-package/
dependencies
Minimizing intra-package
dependencies
Minimizing CK metrics
...use other metric
profiles, e.g. security-
related
Friday, September 28, 12
72. Examples of work in
the area
Brian S. Mitchell, Spiros Mancoridis: On the Automatic Modularization of Software
Systems Using the Bunch Tool. IEEE Trans. Software Eng. 32(3): 193-208 (2006)
Kata Praditwong, Mark Harman, Xin Yao: Software Module Clustering as a Multi-
Objective Search Problem. IEEE Trans. Software Eng. 37(2): 264-282 (2011)
Mark Harman, Robert M. Hierons, Mark Proctor: A New Representation And
Crossover Operator For Search-based Optimization Of Software
Modularization. GECCO 2002: 1351-1358
Mark O'Keeffe, Mel Ó Cinnéide: Search-based refactoring: an empirical study.
Journal of Software Maintenance 20(5): 345-364 (2008)
Mark Kent O'Keeffe, Mel Ó Cinnéide: Search-based refactoring for software
maintenance. Journal of Systems and Software 81(4): 502-516 (2008)
Shadi Ghaith, Mel Ó Cinnéide: Improving Software Security Using Search-Based
Refactoring. SSBSE 2012: 121-135
Friday, September 28, 12
73. Traditional modularization...
Create initial population
Evaluate individuals
Select individuals to reproduce
Recombination
Mutation
no
stop?
yes
Friday, September 28, 12
74. Traditional modularization...
Create initial population
Evaluate individuals
Select individuals to reproduce
Recombination
Mutation
no
stop?
yes
Friday, September 28, 12
75. Traditional modularization...
Create initial population
Evaluate individuals
Select individuals to reproduce
Modularization
Recombination Quality
Metrics
Mutation
no
stop?
yes
Friday, September 28, 12
76. Traditional modularization...
Create initial population
Evaluate individuals
Select individuals to reproduce
Modularization
Recombination Quality
Metrics
Mutation
no
stop?
yes
Friday, September 28, 12
77. Do the obtained
refactoring make sense
for developers?
...also discussed yesterday during
the refactoring session @ICSM
Friday, September 28, 12
78. Hybrid interactive GA
Create initial population
Evaluate individuals
Select individuals to reproduce
Recombination
Mutation
no
stop?
yes
Friday, September 28, 12
79. Hybrid interactive GA
Create initial population
Evaluate individuals
Select individuals to reproduce
Recombination
Mutation
no
stop?
yes
Friday, September 28, 12
80. Hybrid interactive GA
Create initial population
Evaluate individuals
Select individuals to reproduce
Recombination
Mutation Modularization
Quality
Metrics
no
stop?
yes
Friday, September 28, 12
81. Hybrid interactive GA
Create initial population
Evaluate individuals
Select individuals to reproduce
Recombination
Mutation Modularization
Human
Quality
Feedback
Metrics
no
stop?
yes
Friday, September 28, 12
82. Hybrid interactive GA
Create initial population
Evaluate individuals
Select individuals to reproduce
Recombination
Mutation Modularization
Human
Quality
Feedback
Metrics
no
stop?
yes
Friday, September 28, 12
83. Want to learn more?
Mathew Hall, Neil Walkinshaw and Phil McMinn.
Supervised Software Modularisation. In Proceedings of
ICSM 2012
...and... wait for the next session of SSBSE 2012!
Gabriele Bavota, Filomena Carnevale, Andrea De Lucia,
Massimiliano Di Penta, Rocco Oliveto: Putting the
Developer in-the-Loop: An Interactive GA for Software
Re-modularization. SSBSE 2012: 75-89
Friday, September 28, 12
84. Issues in interactive GA
Too many interactions required high effort required
• Learn the fitness function
• Use a mixed interactive and non-interactive, with
periodic feedback
• Achieve a tradeoff between number of feedbacks
(cost) and quality of results (effectiveness)
How to experiment/evaluate it?
• Simulate the human feedback
• Run a user study
Friday, September 28, 12
85. Challenge IV
Automatic, Run-time,
Self Changing
Friday, September 28, 12
86. Achievements: automatic
program repair
• Use of GP to modify code so that test suite passes
• Not really automatic enacted, but it produces a
patch for a bug automatically
Claire Le Goues, Michael Dewey-Vogt, Stephanie Forrest, Westley Weimer: A systematic
study of automated program repair: Fixing 55 out of 105 bugs for $8 each. ICSE 2012: 3-13
Claire Le Goues, ThanhVu Nguyen, Stephanie Forrest, Westley Weimer: GenProg: A
Generic Method for Automatic Software Repair. IEEE Trans. Software Eng. 38(1): 54-72
(2012)
Andrea Arcuri: Evolutionary repair of faulty software. Appl. Soft Comput. 11(4): 3494-3514
(2011)
Westley Weimer, ThanhVu Nguyen, Claire Le Goues, Stephanie Forrest: Automatically
finding patches using genetic programming. ICSE 2009: 364-374
Friday, September 28, 12
87. Achievements:
QoS-aware binding
Liangzhao Zeng, Boualem Benatallah, Anne H. H. Ngu, Marlon Dumas,
Jayant Kalagnanam, Henry Chang: QoS-Aware Middleware for Web
Services Composition. IEEE Trans. Software Eng. 30(5): 311-327
(2004)
Gerardo Canfora, Massimiliano Di Penta, Raffaele Esposito, Maria
Luisa Villani: A framework for QoS-aware binding and re-binding of
composite web services. Journal of Systems and Software 81(10):
1754-1769 (2008)
Gerardo Canfora, Massimiliano Di Penta, Raffaele Esposito, Maria
Luisa Villani: An approach for QoS-aware service composition based
on genetic algorithms. GECCO 2005: 1069-1075
Gerardo Canfora, Massimiliano Di Penta, Raffaele Esposito, Francesco
Perfetto, Maria Luisa Villani: Service Composition (re)Binding Driven
by Application-Specific QoS. ICSOC 2006: 141-152
Friday, September 28, 12
89. Estimating the aggregate QoS
QoS Attribute Sequence Switch Flow Loop
P
m P
n
Time (T) T (ti ) pai · T (ti ) M ax{T (ti )i2{1...p} } k · T (t)
i=1 i=1
Pm Pn p
P
Price (P) P (ti ) pai · P (ti ) P (ti ) k · P (t)
i=1 i=1 i=1
Q
m Pn p
Q
Availability (A) A(ti ) pai · A(ti ) A(ti ) A(t)k
i=1 i=1 i=1
Q
m Pn p
Q
Reliability (R) R(ti ) pai · R(ti ) R(ti ) R(t)k
i=1 i=1 i=1
Custom Attr. (F) fS (F (ti )i2{1...m} ) fB ((pai , F (ti ))i2{1...n} ) fF (F (ti )i2{1...p} ) fL (k, F (t))
Estimated cost=2 cost=3
30% 70%
Iterations=5 avail 0.9 avail=0.8
cost=2
r.time=3 r.time=2
avail=0.9 cost=2 cost=3
avail=0.9 avail=0.8
cost=3 cost=2
avail=0.8 avail 0.9
cost=2+3=5 cost=2 · 5=10 cost=0.3 · 2+0.7 · 3=2.7
avail=0.95=0.59 cost=2+3=5
avail=0.9 · 0.8=0.72 avail=0.3 · 0.9+0.7 · 0.8=0.83 avail=0.9 · 0.8=0.72
r.time=max(3,2)=3
Sequence Loop Switch Fork (flow)
Friday, September 28, 12
90. Run-Time
Re-binding
40.0000
30.0000
Response Time [s]
20.0000
10.0000
0
initial estimate replan. value new estimate final value
Re-binding introduces
overhead
Friday, September 28, 12
94. Run-time replacement
of failing behavior
• Identification of sequences of methods that
can replace failing sequences with
equivalent behavior
• This can be done at design time but...
• It can be a search-based problem too!
Friday, September 28, 12
95. Open problems...
• Humans are not in the loop, hence the provided
solution must be reliable enough
• Applicable possibly without a human check
• Techniques like GA do not guarantee a
convergence
• For most of the SBSE applications, we did not
care (a lot) about time needed to find a solution
• In run-time adaptation we do
Friday, September 28, 12
96. Parallelize it!
Metaheuristics such as GA are intrinsically parallel,
however (nearly) all implementation do not exploit such a
parallelism
Multi core and GPU provide great opportunities to
improve the performances of your search-based technique
See tutorial by Simon Poulding tomorrow!
Friday, September 28, 12
97. Carefully select the
technique to be used
Recall the trace segmentation problem
Often the most obvious technique is not the best one
Also.. sometimes you don’t even need a search-based
optimization technique!
Friday, September 28, 12
98. Example: GA vs.
Dynamic Programming
Task: splitting execution traces in conceptually cohesive segments
GA has a median
convergence time
of 1650 s
DP of 0.93 S
DP decomposes the problem in sub-problems
memorizing cohesion/coupling for different parts of the trace
Friday, September 28, 12
106. Taking out
Maintenance is human-centric
Friday, September 28, 12
107. Taking out
Maintenance is human-centric
Need to balance conflicting goals
Friday, September 28, 12
108. Taking out
Maintenance is human-centric
Need to balance conflicting goals
Configuring analysis techniques crucial to
achieve good performance
Friday, September 28, 12
109. Taking out
Maintenance is human-centric
Need to balance conflicting goals
Configuring analysis techniques crucial to
achieve good performance
Performance and quality of solutions crucial
for run-time applications
Friday, September 28, 12