+ All Categories
Home > Technology > SSBSE 2012 Keynote

SSBSE 2012 Keynote

Date post: 12-May-2015
Category:
Upload: massimiliano-penta
View: 625 times
Download: 0 times
Share this document with a friend
Popular Tags:
109
SBSE Meets Software Maintenance: Achievements and Open Problems Massimiliano Di Penta University of Sannio, Italy [email protected] Friday, September 28, 12
Transcript
Page 1: SSBSE 2012 Keynote

SBSE Meets Software Maintenance:

Achievements and Open Problems

Massimiliano Di PentaUniversity of Sannio, Italy

[email protected]

Friday, September 28, 12

Page 2: SSBSE 2012 Keynote

Aim

Friday, September 28, 12

Page 3: SSBSE 2012 Keynote

AimWhy SBSE is important for software maintenance

Friday, September 28, 12

Page 4: SSBSE 2012 Keynote

AimWhy SBSE is important for software maintenance

Tasks to which SBSE can be applied

Friday, September 28, 12

Page 5: SSBSE 2012 Keynote

AimWhy SBSE is important for software maintenance

Tasks to which SBSE can be applied

Challenges in supporting maintenance through SBSE

Friday, September 28, 12

Page 6: SSBSE 2012 Keynote

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

Page 7: SSBSE 2012 Keynote

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

Page 8: SSBSE 2012 Keynote

SBSE topics breakout

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

Friday, September 28, 12

Page 9: SSBSE 2012 Keynote

SBSE is not only Testing!

Friday, September 28, 12

Page 10: SSBSE 2012 Keynote

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

Page 11: SSBSE 2012 Keynote

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

Page 12: SSBSE 2012 Keynote

Why Software Maintenance

needs SSBSE?

Friday, September 28, 12

Page 13: SSBSE 2012 Keynote

Large space to explore...

Friday, September 28, 12

Page 14: SSBSE 2012 Keynote

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

Page 15: SSBSE 2012 Keynote

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

Page 17: SSBSE 2012 Keynote

Three objectives

Size vs. consumption vs. customer satisfaction

cust.satisf.

consumption

size

Friday, September 28, 12

Page 18: SSBSE 2012 Keynote

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

Page 19: SSBSE 2012 Keynote

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

Page 20: SSBSE 2012 Keynote

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

Page 21: SSBSE 2012 Keynote

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

Page 22: SSBSE 2012 Keynote

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

Challenges, difficulties, open problems

Friday, September 28, 12

Page 23: SSBSE 2012 Keynote

Challenge IManaging Maintenance

Activities

Friday, September 28, 12

Page 24: SSBSE 2012 Keynote

Some research problems

• Schedule maintenance activities over time

• Staff software tasks

• Release planning

• Bug triaging

Friday, September 28, 12

Page 25: SSBSE 2012 Keynote

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

Page 26: SSBSE 2012 Keynote

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

Page 27: SSBSE 2012 Keynote

Multi-objective project scheduling

Friday, September 28, 12

Page 28: SSBSE 2012 Keynote

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

Page 29: SSBSE 2012 Keynote

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

Page 30: SSBSE 2012 Keynote

So where can we get this data from?

Friday, September 28, 12

Page 31: SSBSE 2012 Keynote

Measure fitness through software repositories

MailsVersioning

Bugtracking

Mylyntraces

Capture expertise

Capture communication and mentoring skills

Identify emerging groups

RuntimeLogs

Friday, September 28, 12

Page 32: SSBSE 2012 Keynote

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

Page 33: SSBSE 2012 Keynote

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

Page 38: SSBSE 2012 Keynote

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

Page 39: SSBSE 2012 Keynote

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

Page 40: SSBSE 2012 Keynote

Challenge II - Supporting Program

ComprehensionFriday, September 28, 12

Page 41: SSBSE 2012 Keynote

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

Page 42: SSBSE 2012 Keynote

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

Page 43: SSBSE 2012 Keynote

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

Page 44: SSBSE 2012 Keynote

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

Friday, September 28, 12

Page 45: SSBSE 2012 Keynote

Ideally, high-level artifacts, models...

Friday, September 28, 12

Page 46: SSBSE 2012 Keynote

Ideally, high-level artifacts, models...

Friday, September 28, 12

Page 47: SSBSE 2012 Keynote

At least, you have source code...

Friday, September 28, 12

Page 48: SSBSE 2012 Keynote

At least, you have source code...

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

Page 49: SSBSE 2012 Keynote

Leveraging Natural Language Analysis of Software: Achievements,

Challenges, and Opportunities

Keynote by Lori Pollock @ICSM 2012

Friday, September 28, 12

Page 50: SSBSE 2012 Keynote

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

Page 51: SSBSE 2012 Keynote

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

Page 52: SSBSE 2012 Keynote

Identifier splitting expansion

Friday, September 28, 12

Page 53: SSBSE 2012 Keynote

Identifier splitting expansion

OpenFile

Friday, September 28, 12

Page 54: SSBSE 2012 Keynote

Identifier splitting expansion

OpenFile

Easy!

Open File

Friday, September 28, 12

Page 55: SSBSE 2012 Keynote

Identifier splitting expansion

OpenFile

Easy!

prmcntr

Open File

Friday, September 28, 12

Page 56: SSBSE 2012 Keynote

Identifier splitting expansion

OpenFile

Easy!

prmcntr

pr mcntr

Open File

Friday, September 28, 12

Page 57: SSBSE 2012 Keynote

Identifier splitting expansion

OpenFile

Easy!

prmcntr

pr mcntr

prm cntr

Open File

Friday, September 28, 12

Page 58: SSBSE 2012 Keynote

Identifier splitting expansion

OpenFile

Easy!

prmcntr

pr mcntr

prm cntr

prmc ntr

Open File

Friday, September 28, 12

Page 59: SSBSE 2012 Keynote

Identifier splitting expansion

OpenFile

Easy!

prmcntr

pr mcntr

prm cntr

prmc ntr parameter control

Open File

Friday, September 28, 12

Page 60: SSBSE 2012 Keynote

Identifier splitting expansion

OpenFile

Easy!

prmcntr

pr mcntr

prm cntr

prmc ntrprogram control

parameter control

Open File

Friday, September 28, 12

Page 61: SSBSE 2012 Keynote

Identifier splitting expansion

OpenFile

Easy!

prmcntr

pr mcntr

prm cntr

prmc ntr

parameter counter

program control

parameter control

Open File

Friday, September 28, 12

Page 62: SSBSE 2012 Keynote

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

Page 63: SSBSE 2012 Keynote

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

Page 64: SSBSE 2012 Keynote

Challenge III Recommending

Changes

Friday, September 28, 12

Page 65: SSBSE 2012 Keynote

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

Page 66: SSBSE 2012 Keynote

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

Page 67: SSBSE 2012 Keynote

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

Page 68: SSBSE 2012 Keynote

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

Page 69: SSBSE 2012 Keynote

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

Page 70: SSBSE 2012 Keynote

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

Page 71: SSBSE 2012 Keynote

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

Page 72: SSBSE 2012 Keynote

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

Page 73: SSBSE 2012 Keynote

Traditional modularization...Create initial population

Evaluate individuals

Select individuals to reproduce

Recombination

Mutation

stop?no

yes

Friday, September 28, 12

Page 74: SSBSE 2012 Keynote

Traditional modularization...Create initial population

Evaluate individuals

Select individuals to reproduce

Recombination

Mutation

stop?no

yes

Friday, September 28, 12

Page 75: SSBSE 2012 Keynote

Traditional modularization...Create initial population

Evaluate individuals

Select individuals to reproduce

Recombination

Mutation

stop?no

yes

ModularizationQuality Metrics

Friday, September 28, 12

Page 76: SSBSE 2012 Keynote

Traditional modularization...Create initial population

Evaluate individuals

Select individuals to reproduce

Recombination

Mutation

stop?no

yes

ModularizationQuality Metrics

Friday, September 28, 12

Page 77: SSBSE 2012 Keynote

Do the obtained refactoring make sense

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

Friday, September 28, 12

Page 78: SSBSE 2012 Keynote

Hybrid interactive GACreate initial population

Evaluate individuals

Select individuals to reproduce

Recombination

Mutation

stop?no

yes

Friday, September 28, 12

Page 79: SSBSE 2012 Keynote

Hybrid interactive GACreate initial population

Evaluate individuals

Select individuals to reproduce

Recombination

Mutation

stop?no

yes

Friday, September 28, 12

Page 80: SSBSE 2012 Keynote

Hybrid interactive GACreate initial population

Evaluate individuals

Select individuals to reproduce

Recombination

Mutation

stop?no

yes

ModularizationQuality Metrics

Friday, September 28, 12

Page 81: SSBSE 2012 Keynote

Hybrid interactive GACreate initial population

Evaluate individuals

Select individuals to reproduce

Recombination

Mutation

stop?no

yes

ModularizationQuality Metrics

HumanFeedback

Friday, September 28, 12

Page 82: SSBSE 2012 Keynote

Hybrid interactive GACreate initial population

Evaluate individuals

Select individuals to reproduce

Recombination

Mutation

stop?no

yes

ModularizationQuality Metrics

HumanFeedback

Friday, September 28, 12

Page 84: SSBSE 2012 Keynote

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

Page 85: SSBSE 2012 Keynote

Challenge IVAutomatic, Run-time,

Self ChangingFriday, September 28, 12

Page 86: SSBSE 2012 Keynote

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

Page 87: SSBSE 2012 Keynote

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

Page 88: SSBSE 2012 Keynote

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

Page 89: SSBSE 2012 Keynote

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

Page 90: SSBSE 2012 Keynote

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

Page 91: SSBSE 2012 Keynote

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

Friday, September 28, 12

Page 92: SSBSE 2012 Keynote

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

Keynote by Mauro Pezzè @ ICSM 2012

Friday, September 28, 12

Page 93: SSBSE 2012 Keynote

Various contexts...

Friday, September 28, 12

Page 94: SSBSE 2012 Keynote

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

Page 95: SSBSE 2012 Keynote

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

Page 96: SSBSE 2012 Keynote

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

Page 97: SSBSE 2012 Keynote

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

Page 98: SSBSE 2012 Keynote

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

Page 99: SSBSE 2012 Keynote

Conclusions

Friday, September 28, 12

Page 100: SSBSE 2012 Keynote

Friday, September 28, 12

Page 101: SSBSE 2012 Keynote

Friday, September 28, 12

Page 102: SSBSE 2012 Keynote

Friday, September 28, 12

Page 103: SSBSE 2012 Keynote

Friday, September 28, 12

Page 104: SSBSE 2012 Keynote

Friday, September 28, 12

Page 105: SSBSE 2012 Keynote

Taking out

Friday, September 28, 12

Page 106: SSBSE 2012 Keynote

Taking outMaintenance is human-centric

Friday, September 28, 12

Page 107: SSBSE 2012 Keynote

Taking outMaintenance is human-centric

Need to balance conflicting goals

Friday, September 28, 12

Page 108: SSBSE 2012 Keynote

Taking outMaintenance is human-centric

Need to balance conflicting goals

Configuring analysis techniques crucial to achieve good performance

Friday, September 28, 12

Page 109: SSBSE 2012 Keynote

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


Recommended