SlideShare uma empresa Scribd logo
1 de 10
Baixar para ler offline
Clustering and Recommending
Collections of Code Relevant to Tasks


       Seonah Lee and Sungwon Kang
             September 28, 2011
Introduction           Task Relevance   Proposed Approach   Evaluation   Conclusion


  While performing software evolution tasks,

  Programmers seek for pieces of code
     which may related to a required change
     [Letovsky 1986] [Ko 2005]

  When reaching an impasse, programmers ask
     other programmers [Cherubini 2007]

  Asking another programmer causes
     communication overheads which decrease team
     productivity [Brooks 1974], [McConnel 2004]
ICSM ERA 2011                                                                         2
introduction
               Task Relevance          Proposed Approach Evaluation Conclusion


    Q: How to automatically recommend pieces of
       code relevant to tasks?
    Count the frequencies            Determine associations
       of pieces of code over a        between pieces of code
       period of time                   ROSE
        Mylyn                             [Zimmermann 2004]
            [Kersten 2006]             TeamTrack
                                          [DeLine 2005]

                                      Limited to recommending
       Required a programmer‘s
                                      co-changed / co-visited
       manual indication of a task
                                      pieces of code
                                                                             3
introduction
               Task Relevance            Proposed Approach Evaluation Conclusion


    Task Relevance
         Whether a code element is needed by a programmer
           who performs the evolution task

    Four degrees of the task relevance of a code
       element
         [S]     is needed to change
         [H]     is needed to understand
         [M]     can be useful for understanding the context
         [L]     exists in the same file that contains [S][H]&[M]

                                   code elements: i.e., methods, fields, classes …
  ICSM ERA 2011                                                                   4
introduction
               Task Relevance              Proposed Approach Evaluation Conclusion


    Two Principles to mine collections of code
       relevant to tasks

         Relevance by Frequency
           The code elements that programmers frequently visited are
            likely to be highly relevant to the tasks of the programmers

         Relevance by Context
           If a code element of a navigation sequence is highly relevant
            to a task, it is likely that the other code elements in the
            same navigation sequence are relevant to the same task


  ICSM ERA 2011                                                                  5
introduction Task Relevance
                              Proposed Approach Evaluation Conclusion
    To cluster collections of code relevant to tasks
         We consider visit frequency of code elements and
           navigation sequences of code elements


             Interaction Traces
                                                  Recommendation
          Segmentation
                    Micro-clustering               Collections of code
                                                        elements
                              Macro-clustering

  ICSM ERA 2011                                                          6
introduction Task Relevance
                                Proposed Approach Evaluation Conclusion
    To recommend collections of code relevant to
       tasks, we retrieve a collection that contains the
       greatest number of elements that a programmer
       has recently visited.
             a, b, c, a, b, d, b, d …

                                                            {c, d}


             (a, b, c), (a, b, d), (b, d…

                      { (a, 2), (b, 2), (c, 1) , (d, 1)}
                                                            { (b, 5), (a, 3), (d,3), (c, 2)}
                                     { (a, 2), (b, 2) …}    { (e, 2), (f, 4), (c, 2), (g, 1) }
                                      {(b, 2), (d, 2) …}

  ICSM ERA 2011                                                                                  7
introduction Task Relevance   Proposed Approach
                                                  Evaluation   Conclusion


  Simulate code recommendations with
     Experimental Data
       The interaction traces where twelve programmers
        performed four different tasks [Safer 2007]
       Training Set: 8 traces, Test Set: 4 traces


  Compare the state-of-art approach, TeamTracks
       Four degrees of the task relevance
       [S]: 23, [H]: 22, [M]: 21, [L] :20



ICSM ERA 2011                                                           8
introduction Task Relevance       Proposed Approach
                                                        Evaluation   Conclusion

                EXAMPLE: RECOMMENDATION RESULTS

  Rank      1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th
Ideal CG S2a H2b H2c H2d H2e H2f M2g M2h M2i M2j
 NavClus H2b H2d S2a H2c L2s M2o M2k M2m L2x L2y
 V.Team- - S2a -              -       -   H2b   -     H2d   -   -
  Tracks
 E.Team- H2b H2c L2s
  Tracks

 Cumulative Gain (CG)
   Sum the degrees of
      task relevance of the
      recommended
      elements by nth rank

ICSM ERA 2011                                                                 9
introduction Task Relevance   Proposed Approach   Evaluation
                                                               Conclusion

  We proposed NavClus, a novel approach that
     clusters collections of code that could be relevant
     to a programmer’s given task

  We demonstrated that NavClus recommends
     code elements relevant to tasks with high task
     relevancy



ICSM ERA 2011                                                           10

Mais conteúdo relacionado

Mais procurados

2007 03-16 modeling and static analysis of complex biological systems dsr
2007 03-16 modeling and static analysis of complex biological systems dsr2007 03-16 modeling and static analysis of complex biological systems dsr
2007 03-16 modeling and static analysis of complex biological systems dsr
Debora Da Rosa
 

Mais procurados (20)

Performance comparison of eg ldpc codes
Performance comparison of eg ldpc codesPerformance comparison of eg ldpc codes
Performance comparison of eg ldpc codes
 
AN EFFICIENT CODEBOOK INITIALIZATION APPROACH FOR LBG ALGORITHM
AN EFFICIENT CODEBOOK INITIALIZATION APPROACH FOR LBG ALGORITHMAN EFFICIENT CODEBOOK INITIALIZATION APPROACH FOR LBG ALGORITHM
AN EFFICIENT CODEBOOK INITIALIZATION APPROACH FOR LBG ALGORITHM
 
Understanding software metrics
Understanding software metricsUnderstanding software metrics
Understanding software metrics
 
Neural Machine Translation (D3L4 Deep Learning for Speech and Language UPC 2017)
Neural Machine Translation (D3L4 Deep Learning for Speech and Language UPC 2017)Neural Machine Translation (D3L4 Deep Learning for Speech and Language UPC 2017)
Neural Machine Translation (D3L4 Deep Learning for Speech and Language UPC 2017)
 
2007 03-16 modeling and static analysis of complex biological systems dsr
2007 03-16 modeling and static analysis of complex biological systems dsr2007 03-16 modeling and static analysis of complex biological systems dsr
2007 03-16 modeling and static analysis of complex biological systems dsr
 
Bert
BertBert
Bert
 
Open Problems in Automatically Refactoring Legacy Java Software to use New Fe...
Open Problems in Automatically Refactoring Legacy Java Software to use New Fe...Open Problems in Automatically Refactoring Legacy Java Software to use New Fe...
Open Problems in Automatically Refactoring Legacy Java Software to use New Fe...
 
Software Reuse and Object-Oriented Programming
Software Reuse and Object-Oriented ProgrammingSoftware Reuse and Object-Oriented Programming
Software Reuse and Object-Oriented Programming
 
Ab4102211213
Ab4102211213Ab4102211213
Ab4102211213
 
Software Design 1: Coupling & cohesion
Software Design 1: Coupling & cohesionSoftware Design 1: Coupling & cohesion
Software Design 1: Coupling & cohesion
 
Oop(object oriented programming)
Oop(object oriented programming)Oop(object oriented programming)
Oop(object oriented programming)
 
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)
 
High Speed Decoding of Non-Binary Irregular LDPC Codes Using GPUs (Paper)
High Speed Decoding of Non-Binary Irregular LDPC Codes Using GPUs (Paper)High Speed Decoding of Non-Binary Irregular LDPC Codes Using GPUs (Paper)
High Speed Decoding of Non-Binary Irregular LDPC Codes Using GPUs (Paper)
 
Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"
Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"
Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"
 
Rajesh - CV
Rajesh - CVRajesh - CV
Rajesh - CV
 
Functional Programming in Python
Functional Programming in PythonFunctional Programming in Python
Functional Programming in Python
 
Graph-to-Graph Transformer for Transition-based Dependency Parsing
Graph-to-Graph Transformer for Transition-based Dependency ParsingGraph-to-Graph Transformer for Transition-based Dependency Parsing
Graph-to-Graph Transformer for Transition-based Dependency Parsing
 
BERT
BERTBERT
BERT
 
Scala Crash Course
Scala Crash Course Scala Crash Course
Scala Crash Course
 
Qtp (basics to advanced)
Qtp (basics to advanced)Qtp (basics to advanced)
Qtp (basics to advanced)
 

Destaque

Richard Kemmerer Keynote icsm11
Richard Kemmerer Keynote icsm11Richard Kemmerer Keynote icsm11
Richard Kemmerer Keynote icsm11
ICSM 2011
 
Lionel Briand ICSM 2011 Keynote
Lionel Briand ICSM 2011 KeynoteLionel Briand ICSM 2011 Keynote
Lionel Briand ICSM 2011 Keynote
ICSM 2011
 

Destaque (20)

Industry - Testing & Quality Assurance in Data Migration Projects
Industry - Testing & Quality Assurance in Data Migration Projects Industry - Testing & Quality Assurance in Data Migration Projects
Industry - Testing & Quality Assurance in Data Migration Projects
 
Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...
Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...
Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...
 
Dynamic Analysis - SCOTCH: Improving Test-to-Code Traceability using Slicing ...
Dynamic Analysis - SCOTCH: Improving Test-to-Code Traceability using Slicing ...Dynamic Analysis - SCOTCH: Improving Test-to-Code Traceability using Slicing ...
Dynamic Analysis - SCOTCH: Improving Test-to-Code Traceability using Slicing ...
 
ERA - A Comparison of Stemmers on Source Code Identifiers for Software Search
ERA - A Comparison of Stemmers on Source Code Identifiers for Software SearchERA - A Comparison of Stemmers on Source Code Identifiers for Software Search
ERA - A Comparison of Stemmers on Source Code Identifiers for Software Search
 
ERA - Tracking Technical Debt
ERA - Tracking Technical DebtERA - Tracking Technical Debt
ERA - Tracking Technical Debt
 
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
 
Richard Kemmerer Keynote icsm11
Richard Kemmerer Keynote icsm11Richard Kemmerer Keynote icsm11
Richard Kemmerer Keynote icsm11
 
Lionel Briand ICSM 2011 Keynote
Lionel Briand ICSM 2011 KeynoteLionel Briand ICSM 2011 Keynote
Lionel Briand ICSM 2011 Keynote
 
Postdoc Symposium - Abram Hindle
Postdoc Symposium - Abram HindlePostdoc Symposium - Abram Hindle
Postdoc Symposium - Abram Hindle
 
Industry - Estimating software maintenance effort from use cases an indu...
Industry - Estimating software maintenance effort from use cases an      indu...Industry - Estimating software maintenance effort from use cases an      indu...
Industry - Estimating software maintenance effort from use cases an indu...
 
Impact analysis - A Seismology-inspired Approach to Study Change Propagation
Impact analysis - A Seismology-inspired Approach to Study Change PropagationImpact analysis - A Seismology-inspired Approach to Study Change Propagation
Impact analysis - A Seismology-inspired Approach to Study Change Propagation
 
Traceability - Structural Conformance Checking with Design Tests: An Evaluati...
Traceability - Structural Conformance Checking with Design Tests: An Evaluati...Traceability - Structural Conformance Checking with Design Tests: An Evaluati...
Traceability - Structural Conformance Checking with Design Tests: An Evaluati...
 
Metrics - Using Source Code Metrics to Predict Change-Prone Java Interfaces
Metrics - Using Source Code Metrics to Predict Change-Prone Java InterfacesMetrics - Using Source Code Metrics to Predict Change-Prone Java Interfaces
Metrics - Using Source Code Metrics to Predict Change-Prone Java Interfaces
 
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
 
Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...
Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...
Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...
 
ERA - Measuring Maintainability of Spreadsheets in the Wild
ERA - Measuring Maintainability of Spreadsheets in the Wild ERA - Measuring Maintainability of Spreadsheets in the Wild
ERA - Measuring Maintainability of Spreadsheets in the Wild
 
Industry - Relating Developers' Concepts and Artefact Vocabulary in a Financ...
Industry -  Relating Developers' Concepts and Artefact Vocabulary in a Financ...Industry -  Relating Developers' Concepts and Artefact Vocabulary in a Financ...
Industry - Relating Developers' Concepts and Artefact Vocabulary in a Financ...
 
Reliability and Quality - Predicting post-release defects using pre-release f...
Reliability and Quality - Predicting post-release defects using pre-release f...Reliability and Quality - Predicting post-release defects using pre-release f...
Reliability and Quality - Predicting post-release defects using pre-release f...
 
Faults and Regression Testing - Fault interaction and its repercussions
Faults and Regression Testing - Fault interaction and its repercussionsFaults and Regression Testing - Fault interaction and its repercussions
Faults and Regression Testing - Fault interaction and its repercussions
 
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
 

Semelhante a ERA - Clustering and Recommending Collections of Code Relevant to Task

Open source evolution analysis
Open source evolution analysisOpen source evolution analysis
Open source evolution analysis
Izzat Alsmadi
 
Finding Bad Code Smells with Neural Network Models
Finding Bad Code Smells with Neural Network Models Finding Bad Code Smells with Neural Network Models
Finding Bad Code Smells with Neural Network Models
IJECEIAES
 
Overlapping optimization with parsing through metagrammars
Overlapping optimization with parsing through metagrammarsOverlapping optimization with parsing through metagrammars
Overlapping optimization with parsing through metagrammars
IAEME Publication
 

Semelhante a ERA - Clustering and Recommending Collections of Code Relevant to Task (20)

Open source evolution analysis
Open source evolution analysisOpen source evolution analysis
Open source evolution analysis
 
A preliminary study on using code smells to improve bug localization
A preliminary study on using code smells to improve bug localizationA preliminary study on using code smells to improve bug localization
A preliminary study on using code smells to improve bug localization
 
Changes and Bugs: Mining and Predicting Development Activities
Changes and Bugs: Mining and Predicting Development ActivitiesChanges and Bugs: Mining and Predicting Development Activities
Changes and Bugs: Mining and Predicting Development Activities
 
Extending Rotor with Structural Reflection to support Reflective Languages
Extending Rotor with Structural Reflection to support Reflective LanguagesExtending Rotor with Structural Reflection to support Reflective Languages
Extending Rotor with Structural Reflection to support Reflective Languages
 
Finding Bad Code Smells with Neural Network Models
Finding Bad Code Smells with Neural Network Models Finding Bad Code Smells with Neural Network Models
Finding Bad Code Smells with Neural Network Models
 
STATICMOCK : A Mock Object Framework for Compiled Languages
STATICMOCK : A Mock Object Framework for Compiled Languages STATICMOCK : A Mock Object Framework for Compiled Languages
STATICMOCK : A Mock Object Framework for Compiled Languages
 
Software Abstractions for Parallel Hardware
Software Abstractions for Parallel HardwareSoftware Abstractions for Parallel Hardware
Software Abstractions for Parallel Hardware
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
 
A Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere toolsA Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere tools
 
A FRAMEWORK STUDIO FOR COMPONENT REUSABILITY
A FRAMEWORK STUDIO FOR COMPONENT REUSABILITYA FRAMEWORK STUDIO FOR COMPONENT REUSABILITY
A FRAMEWORK STUDIO FOR COMPONENT REUSABILITY
 
Objective-C
Objective-CObjective-C
Objective-C
 
CMPT470-usask-guest-lecture
CMPT470-usask-guest-lectureCMPT470-usask-guest-lecture
CMPT470-usask-guest-lecture
 
C24011018
C24011018C24011018
C24011018
 
Software Architecture: introduction to the abstraction
Software Architecture: introduction to the abstractionSoftware Architecture: introduction to the abstraction
Software Architecture: introduction to the abstraction
 
Task Complexity Metrics - Ben Colborn
Task Complexity Metrics - Ben ColbornTask Complexity Metrics - Ben Colborn
Task Complexity Metrics - Ben Colborn
 
Compiler gate question key
Compiler gate question keyCompiler gate question key
Compiler gate question key
 
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
 
STRICT-SANER2015
STRICT-SANER2015STRICT-SANER2015
STRICT-SANER2015
 
Overlapping optimization with parsing through metagrammars
Overlapping optimization with parsing through metagrammarsOverlapping optimization with parsing through metagrammars
Overlapping optimization with parsing through metagrammars
 

Último

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 

Último (20)

Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Your enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4jYour enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4j
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 

ERA - Clustering and Recommending Collections of Code Relevant to Task

  • 1. Clustering and Recommending Collections of Code Relevant to Tasks Seonah Lee and Sungwon Kang September 28, 2011
  • 2. Introduction Task Relevance Proposed Approach Evaluation Conclusion  While performing software evolution tasks,  Programmers seek for pieces of code which may related to a required change [Letovsky 1986] [Ko 2005]  When reaching an impasse, programmers ask other programmers [Cherubini 2007]  Asking another programmer causes communication overheads which decrease team productivity [Brooks 1974], [McConnel 2004] ICSM ERA 2011 2
  • 3. introduction Task Relevance Proposed Approach Evaluation Conclusion  Q: How to automatically recommend pieces of code relevant to tasks?  Count the frequencies  Determine associations of pieces of code over a between pieces of code period of time  ROSE  Mylyn  [Zimmermann 2004]  [Kersten 2006]  TeamTrack  [DeLine 2005] Limited to recommending Required a programmer‘s co-changed / co-visited manual indication of a task pieces of code 3
  • 4. introduction Task Relevance Proposed Approach Evaluation Conclusion  Task Relevance  Whether a code element is needed by a programmer who performs the evolution task  Four degrees of the task relevance of a code element  [S] is needed to change  [H] is needed to understand  [M] can be useful for understanding the context  [L] exists in the same file that contains [S][H]&[M] code elements: i.e., methods, fields, classes … ICSM ERA 2011 4
  • 5. introduction Task Relevance Proposed Approach Evaluation Conclusion  Two Principles to mine collections of code relevant to tasks  Relevance by Frequency  The code elements that programmers frequently visited are likely to be highly relevant to the tasks of the programmers  Relevance by Context  If a code element of a navigation sequence is highly relevant to a task, it is likely that the other code elements in the same navigation sequence are relevant to the same task ICSM ERA 2011 5
  • 6. introduction Task Relevance Proposed Approach Evaluation Conclusion  To cluster collections of code relevant to tasks  We consider visit frequency of code elements and navigation sequences of code elements Interaction Traces Recommendation Segmentation Micro-clustering Collections of code elements Macro-clustering ICSM ERA 2011 6
  • 7. introduction Task Relevance Proposed Approach Evaluation Conclusion  To recommend collections of code relevant to tasks, we retrieve a collection that contains the greatest number of elements that a programmer has recently visited. a, b, c, a, b, d, b, d … {c, d} (a, b, c), (a, b, d), (b, d… { (a, 2), (b, 2), (c, 1) , (d, 1)} { (b, 5), (a, 3), (d,3), (c, 2)} { (a, 2), (b, 2) …} { (e, 2), (f, 4), (c, 2), (g, 1) }  {(b, 2), (d, 2) …} ICSM ERA 2011 7
  • 8. introduction Task Relevance Proposed Approach Evaluation Conclusion  Simulate code recommendations with Experimental Data  The interaction traces where twelve programmers performed four different tasks [Safer 2007]  Training Set: 8 traces, Test Set: 4 traces  Compare the state-of-art approach, TeamTracks  Four degrees of the task relevance  [S]: 23, [H]: 22, [M]: 21, [L] :20 ICSM ERA 2011 8
  • 9. introduction Task Relevance Proposed Approach Evaluation Conclusion EXAMPLE: RECOMMENDATION RESULTS Rank 1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th Ideal CG S2a H2b H2c H2d H2e H2f M2g M2h M2i M2j NavClus H2b H2d S2a H2c L2s M2o M2k M2m L2x L2y V.Team- - S2a - - - H2b - H2d - - Tracks E.Team- H2b H2c L2s Tracks Cumulative Gain (CG)  Sum the degrees of task relevance of the recommended elements by nth rank ICSM ERA 2011 9
  • 10. introduction Task Relevance Proposed Approach Evaluation Conclusion  We proposed NavClus, a novel approach that clusters collections of code that could be relevant to a programmer’s given task  We demonstrated that NavClus recommends code elements relevant to tasks with high task relevancy ICSM ERA 2011 10