SlideShare una empresa de Scribd logo
1 de 109
Descargar para leer sin conexión
SBSE Meets
        Software Maintenance:
   Achievements and Open Problems
                           Massimiliano Di Penta
                            University of Sannio, Italy
                             dipenta@unisannio.it

Friday, September 28, 12
Aim




Friday, September 28, 12
Aim
                           Why SBSE is important for software
                           maintenance




Friday, September 28, 12
Aim
                           Why SBSE is important for software
                           maintenance

                           Tasks to which SBSE can be applied




Friday, September 28, 12
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
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
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 Repository
                    http://crestweb.cs.ucl.ac.uk/resources/sbse_repository/
Friday, September 28, 12
SBSE is not only
                              Testing!


Friday, September 28, 12
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
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
Why
                      Software Maintenance
                          needs SSBSE?


Friday, September 28, 12
Large space to explore...




Friday, September 28, 12
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
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
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
Three objectives
                             cust.
                             satisf.




                           consumption


                                                 size


                    Size vs. consumption vs. customer satisfaction

Friday, September 28, 12
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
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
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
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 I
                     Managing 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 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
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
Multi-objective
                           project scheduling




Friday, September 28, 12
Handling specialized teams
                                        Database       GUI     Networking   Middleware
                                        Core

               10

                                       Compl. Time
               70                    (person months)
                               58   56
                8                               53
               50                                        49         48
  Staffing




                                                                            40           39
               40                                                                             37
    Staffing




                5

               20
               10
                3
                0


                0
                           1        2         3          4          5        6           7     8

                                                   Configuration
                                                         Configuration




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
                                                              Capture expertise
                     Versioning
                                             Mails
                                                              Capture
                                                              communication and
                                                              mentoring skills
                                                              Identify emerging
                                                     Mylyn

              Runtime
                                    Bug
                                  tracking
                                                     traces   groups
               Logs




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, USA
Friday, September 28, 12
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
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
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
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
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
                             Comprehension
Friday, September 28, 12
A keynote from ICPC 2007...
                                            Search Based Software Engineering for Program Comprehension
                                                                                         Mark Harman
                                                                                            CREST,
                                                                                     King’s College London
                                                                                  Strand, London, WC2R 2LS
                                                                                       United Kingdom


                                                               Abstract                            an initial survey of early work on Search Based Test-
                                                                                                   ing, Modularisation and Cost Estimation by Clark et
                                     Search Based Software Engineering (SBSE) is an ap-
                                                                                                   al. [19]. However, work on search based approaches to
                                     proach to software engineering in which search based
                                                                                                   software engineering problems dates back much further,
                                     optimization algorithms are used to identify optimal or
                                                                                                   with work on optimization for testing starting as early
                                     near optimal solutions and to yield insight. SBSE tech-
                                                                                                   as 1976, when Miller and Spooner [60] used classical op-
                                     niques can cater for multiple, possibly competing objec-
                                                                                                   timization techniques for test data generation. In 1992,
                                     tives and/or constraints and applications where the po-
                                                                                                   Xanthakis et al. were the first1 to apply meta heuristic
                                     tential solution space is large and complex. Such situa-
                                                                                                   search to software engineering, when they used search
                                     tions are common in software engineering, leading to an
                                                                                                   based optimization for test data generation [81].
                                     increasing interest in SBSE. This paper provides a brief
                                                                                                      Since the 2001 manifesto paper, there has been a
                                     overview of SBSE, explaining some of the ways in which
                                                                                                   great deal of activity in this area, with SBSE being
                                     it has already been applied to program–comprehension
                                                                                                   increasingly applied to a wide range of diverse areas
                                     related activities. The paper also outlines some possi-
                                                                                                   within software engineering. There have also been sev-
                                     ble future applications of and challenges for the further
                                                                                                   eral workshops, conferences and special issues on SBSE.
                                     application of SBSE to Program Comprehension.
                                                                                                      Search based optimization techniques have proved to
                                                                                                   be highly applicable in software engineering. For exam-
                                     1. Introduction                                               ple, in the past five years, Search Based Software En-
                                     Search Based Software Engineering (SBSE) aims to ap-          gineering has been applied to requirements engineering
                                     ply search based optimization algorithms to problems          [5, 82], project planning and cost estimation [2, 3, 44],
                                     drawn from software engineering. This approach to op-         testing [6, 7, 13, 16, 33, 48, 58, 78], automated main-
                                     timization is a natural one, because so many engineer-        tenance [14, 26, 32, 61, 62, 66, 71, 72], service-oriented
                                     ing applications are characterised by many complex and        software engineering [18], compiler optimization [20] and
                                     competing objectives in large search spaces. In these sit-    quality assessment [15, 43]. The application of op-
                                     uations, automated optimization techniques are natural        timization techniques to software testing has recently
                                                                                                   witnessed intense activity. In 2004 there was sufficient
                                     candidates.
                                        Search based optimization techniques are widely used       material to warrant a survey paper on this sub-area of
                                     in other engineering domains, for example mechanical          activity [57]. However, as the list of application areas
                                     engineering [46], chemical engineering [12], biomedical       above indicates, optimization can be applied right across
                                     engineering [67, 69, 79], civil engineering [4, 10, 27, 42]   the spectrum of software engineering activity.
                                     and electronic engineering [9, 22, 63]. Software engineer-       This paper accompanies the author’s keynote at the
                                     ing is coming of age as a mature engineering discipline.      15th International Conference on Program Comprehen-
                                     It is, therefore, natural to ask:                             sion. It explores ways in which SBSE ideas and tech-
                                                                                                   niques can be applied to problems in Program Com-
                                          “Why not apply search based optimization to              prehension. Following the explosion of work in search
                                          software engineering?”                                   based optimization for software engineering in general,
                                                                                                   this paper asks the more specific question:
                                        This question was posed by Harman and Jones in
                                     2001 [34], in a ‘manifesto paper’ that drew attention             “Why not apply search based optimization to
                                     to the huge potential of automated search based opti-             Program Comprehension?”
                                     mization for software engineering problems and also in          1 So   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
                                           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
Identifier splitting
                               expansion




Friday, September 28, 12
Identifier splitting
                               expansion
                            OpenFile




Friday, September 28, 12
Identifier splitting
                               expansion
                            OpenFile           Open File
                                       Easy!




Friday, September 28, 12
Identifier splitting
                               expansion
                            OpenFile           Open File
                                       Easy!



              prmcntr



Friday, September 28, 12
Identifier splitting
                               expansion
                            OpenFile           Open File
                                       Easy!

                                 pr mcntr
              prmcntr



Friday, September 28, 12
Identifier splitting
                               expansion
                            OpenFile           Open File
                                       Easy!

                                 pr mcntr
              prmcntr            prm cntr



Friday, September 28, 12
Identifier splitting
                               expansion
                            OpenFile           Open File
                                       Easy!

                                 pr mcntr
              prmcntr            prm cntr
                                 prmc ntr

Friday, September 28, 12
Identifier splitting
                               expansion
                            OpenFile           Open File
                                       Easy!

                                 pr mcntr
              prmcntr            prm cntr
                                 prmc ntr      parameter control
Friday, September 28, 12
Identifier splitting
                               expansion
                            OpenFile           Open File
                                       Easy!

                                 pr mcntr
              prmcntr            prm cntr
                                               program control
                                 prmc ntr      parameter control
Friday, September 28, 12
Identifier splitting
                               expansion
                            OpenFile           Open File
                                       Easy!

                                 pr mcntr
                                               parameter counter
              prmcntr            prm cntr
                                               program control
                                 prmc ntr      parameter control
Friday, September 28, 12
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
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


                              no
                                    stop?

                                        yes
Friday, September 28, 12
Traditional modularization...
                           Create initial population


                             Evaluate individuals


                    Select individuals to reproduce


                               Recombination


                                   Mutation


                              no
                                    stop?

                                        yes
Friday, September 28, 12
Traditional modularization...
                           Create initial population


                             Evaluate individuals


                    Select individuals to reproduce

                                                       Modularization
                               Recombination             Quality
                                                         Metrics

                                   Mutation


                              no
                                    stop?

                                        yes
Friday, September 28, 12
Traditional modularization...
                           Create initial population


                             Evaluate individuals


                    Select individuals to reproduce

                                                       Modularization
                               Recombination             Quality
                                                         Metrics

                                   Mutation


                              no
                                    stop?

                                        yes
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 GA
                           Create initial population


                             Evaluate individuals


                       Select individuals to reproduce


                               Recombination


                                   Mutation


                              no
                                    stop?

                                        yes

Friday, September 28, 12
Hybrid interactive GA
                           Create initial population


                             Evaluate individuals


                       Select individuals to reproduce


                               Recombination


                                   Mutation


                              no
                                    stop?

                                        yes

Friday, September 28, 12
Hybrid interactive GA
                           Create initial population


                             Evaluate individuals


                       Select individuals to reproduce


                               Recombination


                                   Mutation              Modularization
                                                           Quality
                                                           Metrics
                              no
                                    stop?

                                        yes

Friday, September 28, 12
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
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
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
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
Challenge IV
                           Automatic, Run-time,
                              Self Changing
Friday, 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 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
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
Service automatic binding
                                                                                  Receive
                                cost=10               cost=15
                             resp . time=12        resp . time=10                                                                      cost=15          cost=15
                                                                                                                                    resp . time=10   resp . time=12
                                  CS1B                 CS1A           getAddress                                checkFlight
                                                                                     AS1              AS2                              CS2A             CS2B
                              cost=30
                           resp . time=10                                            AS3

                              CS3A                                  hotelSearch                                                        cost=20          cost=15
                                                                                                                                    resp . time=13   resp . time=30
                                                                                                          getHotelInfo                 CS4A              CS4B
                                                                                               AS4


                           cost=5                                                                                                                        cost=15
                       resp . time=18                                                                                 getDistance
                                                                                                                                                      resp . time=13
                            CS5A                                                                                AS7
                                                         [enoughTime ]                 [not enoughTime ]                                                  CS7A

                                                                    AS5                AS6
                                                                                                                         [not bigDistance ]             cost=10
                                              getShuttleTicketPrice           getCabPrice [bigDistance ]                                             resp . time=16
                                                                                                                          AS9                            CS9A
                                                                                                          AS8
                                                                                            getCarPrice                       getMetroCardPrice
                        cost=15                cost=16
                     resp . time=30         resp . time=20                                                                                              cost=15
                                                                                                                                                     resp . time=4
                           CS6A                 CS6B
                                                                                                                                                       CS8A
                                                                                                      Reply




Friday, September 28, 12
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
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
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
     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
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 out
                           Maintenance is human-centric




Friday, September 28, 12
Taking out
                           Maintenance is human-centric


                           Need to balance conflicting goals




Friday, September 28, 12
Taking out
                           Maintenance is human-centric


                           Need to balance conflicting goals


                      Configuring analysis techniques crucial to
                      achieve good performance




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

Más contenido relacionado

La actualidad más candente

2011 pmo symposium Bridging the Agile-to-PMO Communication Gap
2011 pmo symposium Bridging the Agile-to-PMO Communication Gap2011 pmo symposium Bridging the Agile-to-PMO Communication Gap
2011 pmo symposium Bridging the Agile-to-PMO Communication GapBrent Barton
 
Cmmi svc july 2011
Cmmi svc   july 2011Cmmi svc   july 2011
Cmmi svc july 2011Jorge Boria
 
Smarter Computing Integrated Systems
Smarter Computing Integrated SystemsSmarter Computing Integrated Systems
Smarter Computing Integrated SystemsIBMGovernmentCA
 
Camp Dresser Mc Kee #2
Camp Dresser Mc Kee #2Camp Dresser Mc Kee #2
Camp Dresser Mc Kee #2billyhat
 
Ravit Danino HP - Roles and Collaboration in Agile
Ravit Danino HP - Roles and Collaboration in AgileRavit Danino HP - Roles and Collaboration in Agile
Ravit Danino HP - Roles and Collaboration in AgileAgileSparks
 
Gary brown
Gary brownGary brown
Gary brownNASAPMC
 
مناهج التعليم وصناعة البرمجيات
مناهج التعليم وصناعة البرمجياتمناهج التعليم وصناعة البرمجيات
مناهج التعليم وصناعة البرمجياتEiman Idris
 
IT Governance Assessment / Audit - Product Solution
IT Governance Assessment / Audit - Product SolutionIT Governance Assessment / Audit - Product Solution
IT Governance Assessment / Audit - Product SolutionArul Nambi
 
James Lyndsay - Testing in an agile environment
James Lyndsay - Testing in an agile environmentJames Lyndsay - Testing in an agile environment
James Lyndsay - Testing in an agile environmentDavid O'Dowd
 
Integrating Quality into Portfolio Management
Integrating Quality into Portfolio Management Integrating Quality into Portfolio Management
Integrating Quality into Portfolio Management Brent Barton
 
M 6 (Progeny)
M 6 (Progeny)M 6 (Progeny)
M 6 (Progeny)mcd202dc
 
Delivering Business Value By Applying Agile Principles To Business Continuity...
Delivering Business Value By Applying Agile Principles To Business Continuity...Delivering Business Value By Applying Agile Principles To Business Continuity...
Delivering Business Value By Applying Agile Principles To Business Continuity...Ken Collins
 
ESEconf2011 - Buschmann Frank: "What architects need to know"
ESEconf2011 - Buschmann Frank: "What architects need to know"ESEconf2011 - Buschmann Frank: "What architects need to know"
ESEconf2011 - Buschmann Frank: "What architects need to know"Aberla
 
XP-Manchester 2013 Software Architecture for Agile Developers Intro
XP-Manchester 2013 Software Architecture for Agile Developers IntroXP-Manchester 2013 Software Architecture for Agile Developers Intro
XP-Manchester 2013 Software Architecture for Agile Developers IntroChris F Carroll
 
Proposal 2 Release
Proposal 2 ReleaseProposal 2 Release
Proposal 2 ReleaseManageware
 

La actualidad más candente (20)

2011 pmo symposium Bridging the Agile-to-PMO Communication Gap
2011 pmo symposium Bridging the Agile-to-PMO Communication Gap2011 pmo symposium Bridging the Agile-to-PMO Communication Gap
2011 pmo symposium Bridging the Agile-to-PMO Communication Gap
 
Cmmi svc july 2011
Cmmi svc   july 2011Cmmi svc   july 2011
Cmmi svc july 2011
 
Smarter Computing Integrated Systems
Smarter Computing Integrated SystemsSmarter Computing Integrated Systems
Smarter Computing Integrated Systems
 
Snp T bone sapphire
Snp T bone sapphireSnp T bone sapphire
Snp T bone sapphire
 
Camp Dresser Mc Kee #2
Camp Dresser Mc Kee #2Camp Dresser Mc Kee #2
Camp Dresser Mc Kee #2
 
Ravit Danino HP - Roles and Collaboration in Agile
Ravit Danino HP - Roles and Collaboration in AgileRavit Danino HP - Roles and Collaboration in Agile
Ravit Danino HP - Roles and Collaboration in Agile
 
Gary brown
Gary brownGary brown
Gary brown
 
مناهج التعليم وصناعة البرمجيات
مناهج التعليم وصناعة البرمجياتمناهج التعليم وصناعة البرمجيات
مناهج التعليم وصناعة البرمجيات
 
Les outils de Devops IBM
Les outils de Devops IBMLes outils de Devops IBM
Les outils de Devops IBM
 
IT Governance Assessment / Audit - Product Solution
IT Governance Assessment / Audit - Product SolutionIT Governance Assessment / Audit - Product Solution
IT Governance Assessment / Audit - Product Solution
 
BDM AtTask Case Study
BDM AtTask Case StudyBDM AtTask Case Study
BDM AtTask Case Study
 
James Lyndsay - Testing in an agile environment
James Lyndsay - Testing in an agile environmentJames Lyndsay - Testing in an agile environment
James Lyndsay - Testing in an agile environment
 
Integrating Quality into Portfolio Management
Integrating Quality into Portfolio Management Integrating Quality into Portfolio Management
Integrating Quality into Portfolio Management
 
ROI Survival Guide: Making Dollar & Sense From Your OD Programs
ROI Survival Guide:  Making Dollar & Sense From Your OD ProgramsROI Survival Guide:  Making Dollar & Sense From Your OD Programs
ROI Survival Guide: Making Dollar & Sense From Your OD Programs
 
M 6 (Progeny)
M 6 (Progeny)M 6 (Progeny)
M 6 (Progeny)
 
Environmental stress screening
Environmental stress screeningEnvironmental stress screening
Environmental stress screening
 
Delivering Business Value By Applying Agile Principles To Business Continuity...
Delivering Business Value By Applying Agile Principles To Business Continuity...Delivering Business Value By Applying Agile Principles To Business Continuity...
Delivering Business Value By Applying Agile Principles To Business Continuity...
 
ESEconf2011 - Buschmann Frank: "What architects need to know"
ESEconf2011 - Buschmann Frank: "What architects need to know"ESEconf2011 - Buschmann Frank: "What architects need to know"
ESEconf2011 - Buschmann Frank: "What architects need to know"
 
XP-Manchester 2013 Software Architecture for Agile Developers Intro
XP-Manchester 2013 Software Architecture for Agile Developers IntroXP-Manchester 2013 Software Architecture for Agile Developers Intro
XP-Manchester 2013 Software Architecture for Agile Developers Intro
 
Proposal 2 Release
Proposal 2 ReleaseProposal 2 Release
Proposal 2 Release
 

Destacado (8)

FSE 2012 talk: finding mentors in software projects
FSE 2012 talk: finding mentors in software projectsFSE 2012 talk: finding mentors in software projects
FSE 2012 talk: finding mentors in software projects
 
Dipenta msr2011-renaming
Dipenta msr2011-renamingDipenta msr2011-renaming
Dipenta msr2011-renaming
 
Dipenta msr2011-challenge
Dipenta msr2011-challenge Dipenta msr2011-challenge
Dipenta msr2011-challenge
 
Dipenta msr2011-csbf
Dipenta msr2011-csbfDipenta msr2011-csbf
Dipenta msr2011-csbf
 
Metrics
MetricsMetrics
Metrics
 
MSR 2015 Announcement
MSR 2015 AnnouncementMSR 2015 Announcement
MSR 2015 Announcement
 
Put Your Hands in the Mud: What Technique, Why, and How
Put Your Hands in the Mud: What Technique, Why, and HowPut Your Hands in the Mud: What Technique, Why, and How
Put Your Hands in the Mud: What Technique, Why, and How
 
Most Influential Paper - SANER 2017
Most Influential Paper - SANER 2017Most Influential Paper - SANER 2017
Most Influential Paper - SANER 2017
 

Similar a SSBSE 2012 Keynote

Quantify the Functional Requirements in Software System Engineering
Quantify the Functional Requirements in Software System EngineeringQuantify the Functional Requirements in Software System Engineering
Quantify the Functional Requirements in Software System EngineeringKarthika Parthasarathy
 
Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012
Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012
Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012TEST Huddle
 
Devnology back toschool software reengineering
Devnology back toschool software reengineeringDevnology back toschool software reengineering
Devnology back toschool software reengineeringDevnology
 
OO Development 1 - Introduction to Object-Oriented Development
OO Development 1 - Introduction to Object-Oriented DevelopmentOO Development 1 - Introduction to Object-Oriented Development
OO Development 1 - Introduction to Object-Oriented DevelopmentRandy Connolly
 
Agile Methodologies
Agile MethodologiesAgile Methodologies
Agile MethodologiesKenny Nguyen
 
Hazen michael
Hazen michaelHazen michael
Hazen michaelNASAPMC
 
You don’t need agile to avoid the seven deadly sins of pm
You don’t need agile to avoid the seven deadly sins of pmYou don’t need agile to avoid the seven deadly sins of pm
You don’t need agile to avoid the seven deadly sins of pmGlen Alleman
 
5 sins of all hands ppt
5 sins of all hands ppt5 sins of all hands ppt
5 sins of all hands pptSpike Gu
 
Software performance simulation strategies for high-level embedded system design
Software performance simulation strategies for high-level embedded system designSoftware performance simulation strategies for high-level embedded system design
Software performance simulation strategies for high-level embedded system designMr. Chanuwan
 
Towards Software Sustainability Guides for Industrial Software Systems
Towards Software Sustainability Guides for Industrial Software SystemsTowards Software Sustainability Guides for Industrial Software Systems
Towards Software Sustainability Guides for Industrial Software SystemsHeiko Koziolek
 
OO Development 2 - Software Development Methodologies
OO Development 2 - Software Development MethodologiesOO Development 2 - Software Development Methodologies
OO Development 2 - Software Development MethodologiesRandy Connolly
 
Application Lifecycle Management & VSTS
Application Lifecycle Management & VSTSApplication Lifecycle Management & VSTS
Application Lifecycle Management & VSTSMicrosoft Iceland
 
IBM Rational Software Conference 2009: Modeling, Architecture & Construction ...
IBM Rational Software Conference 2009: Modeling, Architecture & Construction ...IBM Rational Software Conference 2009: Modeling, Architecture & Construction ...
IBM Rational Software Conference 2009: Modeling, Architecture & Construction ...Kathy (Kat) Mandelstein
 
Cpm500 d _alleman__tpm lesson 3 (v1)
Cpm500 d _alleman__tpm lesson 3 (v1)Cpm500 d _alleman__tpm lesson 3 (v1)
Cpm500 d _alleman__tpm lesson 3 (v1)Glen Alleman
 

Similar a SSBSE 2012 Keynote (20)

Quantify the Functional Requirements in Software System Engineering
Quantify the Functional Requirements in Software System EngineeringQuantify the Functional Requirements in Software System Engineering
Quantify the Functional Requirements in Software System Engineering
 
Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012
Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012
Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012
 
Devnology back toschool software reengineering
Devnology back toschool software reengineeringDevnology back toschool software reengineering
Devnology back toschool software reengineering
 
OO Development 1 - Introduction to Object-Oriented Development
OO Development 1 - Introduction to Object-Oriented DevelopmentOO Development 1 - Introduction to Object-Oriented Development
OO Development 1 - Introduction to Object-Oriented Development
 
Agile development
Agile developmentAgile development
Agile development
 
Heizer 07
Heizer 07Heizer 07
Heizer 07
 
1841 1843
1841 18431841 1843
1841 1843
 
1841 1843
1841 18431841 1843
1841 1843
 
MDE first glance
MDE first glanceMDE first glance
MDE first glance
 
Agile Methodologies
Agile MethodologiesAgile Methodologies
Agile Methodologies
 
Hazen michael
Hazen michaelHazen michael
Hazen michael
 
You don’t need agile to avoid the seven deadly sins of pm
You don’t need agile to avoid the seven deadly sins of pmYou don’t need agile to avoid the seven deadly sins of pm
You don’t need agile to avoid the seven deadly sins of pm
 
5 sins of all hands ppt
5 sins of all hands ppt5 sins of all hands ppt
5 sins of all hands ppt
 
Feasible
FeasibleFeasible
Feasible
 
Software performance simulation strategies for high-level embedded system design
Software performance simulation strategies for high-level embedded system designSoftware performance simulation strategies for high-level embedded system design
Software performance simulation strategies for high-level embedded system design
 
Towards Software Sustainability Guides for Industrial Software Systems
Towards Software Sustainability Guides for Industrial Software SystemsTowards Software Sustainability Guides for Industrial Software Systems
Towards Software Sustainability Guides for Industrial Software Systems
 
OO Development 2 - Software Development Methodologies
OO Development 2 - Software Development MethodologiesOO Development 2 - Software Development Methodologies
OO Development 2 - Software Development Methodologies
 
Application Lifecycle Management & VSTS
Application Lifecycle Management & VSTSApplication Lifecycle Management & VSTS
Application Lifecycle Management & VSTS
 
IBM Rational Software Conference 2009: Modeling, Architecture & Construction ...
IBM Rational Software Conference 2009: Modeling, Architecture & Construction ...IBM Rational Software Conference 2009: Modeling, Architecture & Construction ...
IBM Rational Software Conference 2009: Modeling, Architecture & Construction ...
 
Cpm500 d _alleman__tpm lesson 3 (v1)
Cpm500 d _alleman__tpm lesson 3 (v1)Cpm500 d _alleman__tpm lesson 3 (v1)
Cpm500 d _alleman__tpm lesson 3 (v1)
 

Último

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 

Último (20)

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 

SSBSE 2012 Keynote

  • 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
  • 8. SBSE topics breakout Source: SEBASE Repository http://crestweb.cs.ucl.ac.uk/resources/sbse_repository/ 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
  • 13. Large space to explore... 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
  • 27. Multi-objective project scheduling Friday, September 28, 12
  • 28. Handling specialized teams Database GUI Networking Middleware Core 10 Compl. Time 70 (person months) 58 56 8 53 50 49 48 Staffing 40 39 40 37 Staffing 5 20 10 3 0 0 1 2 3 4 5 6 7 8 Configuration Configuration 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
  • 41. A keynote from ICPC 2007... Search Based Software Engineering for Program Comprehension Mark Harman CREST, King’s College London Strand, London, WC2R 2LS United Kingdom Abstract an initial survey of early work on Search Based Test- ing, Modularisation and Cost Estimation by Clark et Search Based Software Engineering (SBSE) is an ap- al. [19]. However, work on search based approaches to proach to software engineering in which search based software engineering problems dates back much further, optimization algorithms are used to identify optimal or with work on optimization for testing starting as early near optimal solutions and to yield insight. SBSE tech- as 1976, when Miller and Spooner [60] used classical op- niques can cater for multiple, possibly competing objec- timization techniques for test data generation. In 1992, tives and/or constraints and applications where the po- Xanthakis et al. were the first1 to apply meta heuristic tential solution space is large and complex. Such situa- search to software engineering, when they used search tions are common in software engineering, leading to an based optimization for test data generation [81]. increasing interest in SBSE. This paper provides a brief Since the 2001 manifesto paper, there has been a overview of SBSE, explaining some of the ways in which great deal of activity in this area, with SBSE being it has already been applied to program–comprehension increasingly applied to a wide range of diverse areas related activities. The paper also outlines some possi- within software engineering. There have also been sev- ble future applications of and challenges for the further eral workshops, conferences and special issues on SBSE. application of SBSE to Program Comprehension. Search based optimization techniques have proved to be highly applicable in software engineering. For exam- 1. Introduction ple, in the past five years, Search Based Software En- Search Based Software Engineering (SBSE) aims to ap- gineering has been applied to requirements engineering ply search based optimization algorithms to problems [5, 82], project planning and cost estimation [2, 3, 44], drawn from software engineering. This approach to op- testing [6, 7, 13, 16, 33, 48, 58, 78], automated main- timization is a natural one, because so many engineer- tenance [14, 26, 32, 61, 62, 66, 71, 72], service-oriented ing applications are characterised by many complex and software engineering [18], compiler optimization [20] and competing objectives in large search spaces. In these sit- quality assessment [15, 43]. The application of op- uations, automated optimization techniques are natural timization techniques to software testing has recently witnessed intense activity. In 2004 there was sufficient candidates. Search based optimization techniques are widely used material to warrant a survey paper on this sub-area of in other engineering domains, for example mechanical activity [57]. However, as the list of application areas engineering [46], chemical engineering [12], biomedical above indicates, optimization can be applied right across engineering [67, 69, 79], civil engineering [4, 10, 27, 42] the spectrum of software engineering activity. and electronic engineering [9, 22, 63]. Software engineer- This paper accompanies the author’s keynote at the ing is coming of age as a mature engineering discipline. 15th International Conference on Program Comprehen- It is, therefore, natural to ask: sion. It explores ways in which SBSE ideas and tech- niques can be applied to problems in Program Com- “Why not apply search based optimization to prehension. Following the explosion of work in search software engineering?” based optimization for software engineering in general, this paper asks the more specific question: This question was posed by Harman and Jones in 2001 [34], in a ‘manifesto paper’ that drew attention “Why not apply search based optimization to to the huge potential of automated search based opti- Program Comprehension?” mization for software engineering problems and also in 1 So 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
  • 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
  • 45. Ideally, high-level artifacts, models... Friday, September 28, 12
  • 46. Ideally, high-level artifacts, models... 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
  • 52. Identifier splitting expansion Friday, September 28, 12
  • 53. Identifier splitting expansion OpenFile 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
  • 88. Service automatic binding Receive cost=10 cost=15 resp . time=12 resp . time=10 cost=15 cost=15 resp . time=10 resp . time=12 CS1B CS1A getAddress checkFlight AS1 AS2 CS2A CS2B cost=30 resp . time=10 AS3 CS3A hotelSearch cost=20 cost=15 resp . time=13 resp . time=30 getHotelInfo CS4A CS4B AS4 cost=5 cost=15 resp . time=18 getDistance resp . time=13 CS5A AS7 [enoughTime ] [not enoughTime ] CS7A AS5 AS6 [not bigDistance ] cost=10 getShuttleTicketPrice getCabPrice [bigDistance ] resp . time=16 AS9 CS9A AS8 getCarPrice getMetroCardPrice cost=15 cost=16 resp . time=30 resp . time=20 cost=15 resp . time=4 CS6A CS6B CS8A Reply 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
  • 91. Beyond dynamic binding... Beyond automatic bug repair... Friday, September 28, 12
  • 92. “From off-line to continuous on-line maintenance” Keynote by Mauro Pezzè @ ICSM 2012 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