SSBSE 2012 Keynote

Post on 12-May-2015

625 views 0 download

Tags:

transcript

SBSE Meets Software Maintenance:

Achievements and Open Problems

Massimiliano Di PentaUniversity of Sannio, Italy

dipenta@unisannio.it

Friday, September 28, 12

Aim

Friday, September 28, 12

AimWhy SBSE is important for software maintenance

Friday, September 28, 12

AimWhy SBSE is important for software maintenance

Tasks to which SBSE can be applied

Friday, September 28, 12

AimWhy SBSE is important for software maintenance

Tasks to which SBSE can be applied

Challenges in supporting maintenance through SBSE

Friday, September 28, 12

AimWhy 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

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

SBSE topics breakout

Source: SEBASE Repositoryhttp://crestweb.cs.ucl.ac.uk/resources/sbse_repository/

Friday, September 28, 12

SBSE is not only Testing!

Friday, September 28, 12

SBSE @ ICSM 2012Ameni 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

Maint. @ SSBSE 2012Roberto 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

Why Software Maintenance

needs SSBSE?

Friday, September 28, 12

Large space to explore...

Friday, September 28, 12

Presence of conflictingobjectives

Maintenance tasks have to fulfill some design goal / non-functional requirements

Design goals are likely conflictual

Performance

Mai

ntai

nabi

lity

Friday, September 28, 12

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

Three objectives

Size vs. consumption vs. customer satisfaction

cust.satisf.

consumption

size

Friday, September 28, 12

Maintenance Activities (std. IEEE 1219)

Plan changes, bug triaging, staff activitiesPlan

Analysis

Design

Implementation

Regression testing

System testing

Delivery

Balance across conflicting goals

Support to program comprehension

Support to change, automatic bug fixing self-change

(Regression) test generation, prioritization, test suite repairing

Dynamic binding, self-healing

Friday, September 28, 12

Maintenance Activities (std. IEEE 1219)

Plan changes, bug triaging, staff activitiesPlan

Analysis

Design

Implementation

Regression testing

System testing

Delivery

Balance across conflicting goals

Support to program comprehension

Support to change, automatic bug fixing self-change

(Regression) test generation, prioritization, test suite repairing

Dynamic binding, self-healing

Friday, September 28, 12

Two dimensionsLe

vel o

f aut

omat

ion

Presence of human-centric rationale

Project management

Regressiontesting

Support tochange

Self-repair

Self-evolving

Support toprogram

comprehension

Friday, September 28, 12

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

Where and how SBSE can help in software maintenance in its different phases

Challenges, difficulties, open problems

Friday, September 28, 12

Challenge IManaging Maintenance

Activities

Friday, September 28, 12

Some research problems

• Schedule maintenance activities over time

• Staff software tasks

• Release planning

• Bug triaging

Friday, September 28, 12

Some work in the areaJ. 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

Problem statementMaintenance phases

Rework

Abandonment

People distribution

WP1 WP2 … WPn

Project

WP1 WP2 WP3

WP11 WP12 WP31 WP32

Project WBS

WP Ordering

Friday, September 28, 12

Multi-objective project scheduling

Friday, September 28, 12

0

3

5

8

10

1 2 3 4 5 6 7 8

Staf

fing

Configuration

Database GUI Networking MiddlewareCore

Compl. Time (person months)

58 5653

49 4840 39 37

0

10

20

40

50

70

Configuration

Staffing

Handling specialized teams

Friday, September 28, 12

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

So where can we get this data from?

Friday, September 28, 12

Measure fitness through software repositories

MailsVersioning

Bugtracking

Mylyntraces

Capture expertise

Capture communication and mentoring skills

Identify emerging groups

RuntimeLogs

Friday, September 28, 12

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

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, USAFriday, September 28, 12

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

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

Challenge II - Supporting Program

ComprehensionFriday, September 28, 12

A keynote from ICPC 2007...Search Based Software Engineering for Program Comprehension

Mark HarmanCREST,

King’s College LondonStrand, London, WC2R 2LS

United Kingdom

Abstract

Search Based Software Engineering (SBSE) is an ap-proach to software engineering in which search basedoptimization algorithms are used to identify optimal ornear optimal solutions and to yield insight. SBSE tech-niques can cater for multiple, possibly competing objec-tives and/or constraints and applications where the po-tential solution space is large and complex. Such situa-tions are common in software engineering, leading to anincreasing interest in SBSE. This paper provides a briefoverview of SBSE, explaining some of the ways in whichit has already been applied to program–comprehensionrelated activities. The paper also outlines some possi-ble future applications of and challenges for the furtherapplication of SBSE to Program Comprehension.

1. Introduction

Search Based Software Engineering (SBSE) aims to ap-ply search based optimization algorithms to problemsdrawn from software engineering. This approach to op-timization is a natural one, because so many engineer-ing applications are characterised by many complex andcompeting objectives in large search spaces. In these sit-uations, automated optimization techniques are naturalcandidates.

Search based optimization techniques are widely usedin other engineering domains, for example mechanicalengineering [46], chemical engineering [12], biomedicalengineering [67, 69, 79], civil engineering [4, 10, 27, 42]and electronic engineering [9, 22, 63]. Software engineer-ing is coming of age as a mature engineering discipline.It is, therefore, natural to ask:

“Why not apply search based optimization tosoftware engineering?”

This question was posed by Harman and Jones in2001 [34], in a ‘manifesto paper’ that drew attentionto the huge potential of automated search based opti-mization for software engineering problems and also in

an initial survey of early work on Search Based Test-ing, Modularisation and Cost Estimation by Clark etal. [19]. However, work on search based approaches tosoftware engineering problems dates back much further,with work on optimization for testing starting as earlyas 1976, when Miller and Spooner [60] used classical op-timization techniques for test data generation. In 1992,Xanthakis et al. were the first1 to apply meta heuristicsearch to software engineering, when they used searchbased optimization for test data generation [81].

Since the 2001 manifesto paper, there has been agreat deal of activity in this area, with SBSE beingincreasingly applied to a wide range of diverse areaswithin software engineering. There have also been sev-eral workshops, conferences and special issues on SBSE.

Search based optimization techniques have proved tobe highly applicable in software engineering. For exam-ple, in the past five years, Search Based Software En-gineering has been applied to requirements engineering[5, 82], project planning and cost estimation [2, 3, 44],testing [6, 7, 13, 16, 33, 48, 58, 78], automated main-tenance [14, 26, 32, 61, 62, 66, 71, 72], service-orientedsoftware engineering [18], compiler optimization [20] andquality assessment [15, 43]. The application of op-timization techniques to software testing has recentlywitnessed intense activity. In 2004 there was su!cientmaterial to warrant a survey paper on this sub-area ofactivity [57]. However, as the list of application areasabove indicates, optimization can be applied right acrossthe spectrum of software engineering activity.

This paper accompanies the author’s keynote at the15th International Conference on Program Comprehen-sion. It explores ways in which SBSE ideas and tech-niques can be applied to problems in Program Com-prehension. Following the explosion of work in searchbased optimization for software engineering in general,this paper asks the more specific question:

“Why not apply search based optimization toProgram Comprehension?”

1So far as the author is aware.

15th IEEE International Conference on Program Comprehension (ICPC'07)0-7695-2860-0/07 $20.00 © 2007

Friday, September 28, 12

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

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

What’s the primary source of information for program comprehension?

Friday, September 28, 12

Ideally, high-level artifacts, models...

Friday, September 28, 12

Ideally, high-level artifacts, models...

Friday, September 28, 12

At least, you have source code...

Friday, September 28, 12

At least, you have source code...

and source code is text!Friday, September 28, 12

Leveraging Natural Language Analysis of Software: Achievements,

Challenges, and Opportunities

Keynote by Lori Pollock @ICSM 2012

Friday, September 28, 12

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

IR process

• 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!

Lexicalanalysis

Stopwords

removal

Stemming/lemmatization

TermIndexing

AlgebraicmodelDocuments

Friday, September 28, 12

Identifier splitting expansion

Friday, September 28, 12

Identifier splitting expansion

OpenFile

Friday, September 28, 12

Identifier splitting expansion

OpenFile

Easy!

Open File

Friday, September 28, 12

Identifier splitting expansion

OpenFile

Easy!

prmcntr

Open File

Friday, September 28, 12

Identifier splitting expansion

OpenFile

Easy!

prmcntr

pr mcntr

Open File

Friday, September 28, 12

Identifier splitting expansion

OpenFile

Easy!

prmcntr

pr mcntr

prm cntr

Open File

Friday, September 28, 12

Identifier splitting expansion

OpenFile

Easy!

prmcntr

pr mcntr

prm cntr

prmc ntr

Open File

Friday, September 28, 12

Identifier splitting expansion

OpenFile

Easy!

prmcntr

pr mcntr

prm cntr

prmc ntr parameter control

Open File

Friday, September 28, 12

Identifier splitting expansion

OpenFile

Easy!

prmcntr

pr mcntr

prm cntr

prmc ntrprogram control

parameter control

Open File

Friday, September 28, 12

Identifier splitting expansion

OpenFile

Easy!

prmcntr

pr mcntr

prm cntr

prmc ntr

parameter counter

program control

parameter control

Open File

Friday, September 28, 12

Identifier splitting expansion

OpenFile

Easy!

prmcntr

pr mcntr

prm cntr

prmc ntr

program counter

parameter counter

program control

parameter control

Open File

Friday, September 28, 12

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

Challenge III Recommending

Changes

Friday, September 28, 12

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

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

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

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

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

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

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

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

Traditional modularization...Create initial population

Evaluate individuals

Select individuals to reproduce

Recombination

Mutation

stop?no

yes

Friday, September 28, 12

Traditional modularization...Create initial population

Evaluate individuals

Select individuals to reproduce

Recombination

Mutation

stop?no

yes

Friday, September 28, 12

Traditional modularization...Create initial population

Evaluate individuals

Select individuals to reproduce

Recombination

Mutation

stop?no

yes

ModularizationQuality Metrics

Friday, September 28, 12

Traditional modularization...Create initial population

Evaluate individuals

Select individuals to reproduce

Recombination

Mutation

stop?no

yes

ModularizationQuality Metrics

Friday, September 28, 12

Do the obtained refactoring make sense

for developers?...also discussed yesterday during the refactoring session @ICSM

Friday, September 28, 12

Hybrid interactive GACreate initial population

Evaluate individuals

Select individuals to reproduce

Recombination

Mutation

stop?no

yes

Friday, September 28, 12

Hybrid interactive GACreate initial population

Evaluate individuals

Select individuals to reproduce

Recombination

Mutation

stop?no

yes

Friday, September 28, 12

Hybrid interactive GACreate initial population

Evaluate individuals

Select individuals to reproduce

Recombination

Mutation

stop?no

yes

ModularizationQuality Metrics

Friday, September 28, 12

Hybrid interactive GACreate initial population

Evaluate individuals

Select individuals to reproduce

Recombination

Mutation

stop?no

yes

ModularizationQuality Metrics

HumanFeedback

Friday, September 28, 12

Hybrid interactive GACreate initial population

Evaluate individuals

Select individuals to reproduce

Recombination

Mutation

stop?no

yes

ModularizationQuality Metrics

HumanFeedback

Friday, September 28, 12

Issues in interactive GAToo 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

Challenge IVAutomatic, Run-time,

Self ChangingFriday, September 28, 12

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 automaticallyClaire 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

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

AS1 AS2

AS3

AS9

AS5

AS4

AS7

AS6

AS8

Reply

hotelSearch

getAddress

Receive

getCabPricegetShuttleTicketPrice

getDistance

getMetroCardPrice

getHotelInfo

checkFlight

getCarPrice

[enoughTime ] [not enoughTime ]

[bigDistance ][not bigDistance ]

CS1A

cost=15resp . time=10

CS2A

cost=15resp . time=10

CS3A

cost=30resp . time=10

CS4A

cost=20resp . time=13

CS6A

cost=15resp . time=30

CS5A

cost=5resp . time=18

CS9A

cost=10resp . time=16

CS7A

cost=15resp . time=13

CS8A

cost=15resp . time=4

CS1B

cost=10resp . time=12

CS2B

cost=15resp . time=12

CS4B

cost=15resp . time=30

CS6B

cost=16resp . time=20

Service automatic binding

Friday, September 28, 12

Estimating the aggregate QoS

cost=2 avail=0.9

cost=3 avail=0.8

cost=2+3=5avail=0.9 · 0.8=0.72

cost=2 avail 0.9

Estimated Iterations=5

cost=2 · 5=10avail=0.95=0.59

70%30%

cost=2 avail=0.9

cost=3 avail=0.8

cost=0.3 · 2+0.7 · 3=2.7avail=0.3 · 0.9+0.7 · 0.8=0.83

cost=2 avail 0.9r.time=3

cost=3 avail=0.8r.time=2

cost=2+3=5avail=0.9 · 0.8=0.72r.time=max(3,2)=3

Sequence Loop Fork (flow)Switch

QoS Attribute Sequence Switch Flow Loop

Time (T)

mPi=1

T (ti)

nPi=1

pai · T (ti) Max{T (ti)i2{1...p}} k · T (t)

Price (P)

mPi=1

P (ti)

nPi=1

pai · P (ti)

pPi=1

P (ti) k · P (t)

Availability (A)

mQi=1

A(ti)

nPi=1

pai ·A(ti)

pQi=1

A(ti) A(t)

k

Reliability (R)

mQi=1

R(ti)

nPi=1

pai ·R(ti)

pQi=1

R(ti) R(t)

k

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))

Friday, September 28, 12

0

10.0000

20.0000

30.0000

40.0000

initial estimate replan. value new estimate final value

Res

pons

e Ti

me

[s]

Run-TimeRe-binding

Re-binding introducesoverhead

Friday, September 28, 12

Beyond dynamic binding...Beyond automatic bug repair...

Friday, September 28, 12

“From off-line to continuous on-line maintenance”

Keynote by Mauro Pezzè @ ICSM 2012

Friday, September 28, 12

Various contexts...

Friday, September 28, 12

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

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

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

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

Example: GA vs. Dynamic Programming

GA has a median convergence time of 1650 s

DP of 0.93 S

DP decomposes the problem in sub-problemsmemorizing cohesion/coupling for different parts of the trace

Task: splitting execution traces in conceptually cohesive segments

Friday, September 28, 12

Conclusions

Friday, September 28, 12

Friday, September 28, 12

Friday, September 28, 12

Friday, September 28, 12

Friday, September 28, 12

Friday, September 28, 12

Taking out

Friday, September 28, 12

Taking outMaintenance is human-centric

Friday, September 28, 12

Taking outMaintenance is human-centric

Need to balance conflicting goals

Friday, September 28, 12

Taking outMaintenance is human-centric

Need to balance conflicting goals

Configuring analysis techniques crucial to achieve good performance

Friday, September 28, 12

Taking outMaintenance is human-centric

Need to balance conflicting goals

Performance and quality of solutions crucial for run-time applications

Configuring analysis techniques crucial to achieve good performance

Friday, September 28, 12