AURA: A Hybrid Approach to Identify

Size: px
Start display at page:

Download "AURA: A Hybrid Approach to Identify"

Transcription

1 : A Hybrid to Identify Wei Wu 1, Yann-Gaël Guéhéneuc 1, Giuliano Antoniol 2, and Miryung Kim 3 1 Ptidej Team, DGIGL, École Polytechnique de Montréal, Canada 2 SOCCER Lab, DGIGL, École Polytechnique de Montréal, Canada 3 ECED, The University of Texas at Austin, USA wuwei@iro.umontreal.ca, yann-gael.gueheneuc@polymtl.ca, antoniol@ieee.org, miryung@ece.utexas.edu

2 2 / 30 Compilation Error final Graphics2D g2 =...; final Rectangle2D dataarea =...; final CategoryPlot plot =...; final ChartRenderingInfo info =...;... final AbstractCategoryItemRenderer renderer = new BarRenderer().initialise(g2, dataarea, plot, info);... Typical Questions The developer would wonder: did the method signature change? if not, how should she now initialize a renderer: one equivalent method? many new methods? just not the way anymore?

3 3 / 30

4 4 / 30 (1/4) JHotDraw package CH.ifa.draw.application; public class DrawApplication... { protected JMenu createeditmenu() {... Version 5.2: menu.add(new CutCommand("Cut", view()), Version 5.2: new MenuShortcut( x )); Version 5.3: menu.add(new UndoableCommand( Version 5.3: new CutCommand("Cut", this)), Version 5.3: new MenuShortcut( x ));... (1) CutCommand.CutCommand(DrawingView...) CutCommand.CutCommand(Alignment, DrawingEditor) and UndoableCommand.UndoableCommand(Command)

5 5 / 30 (2/4) JEdit package org.gjt.sp.jedit; public class GUIUtilities { public static JMenu loadmenu(...) { Version 4.1: DirectoryMenu.DirectoryMenu(...); Version 4.1: MarkersMenu.MarkersMenu(); Version 4.1: RecentDirectoriesMenu.RecentDirectoriesMenu( Version 4.2: EnhancedMenu.EnhancedMenu(...);... (1) DirectoryMenu.DirectoryMenu(...) and MarkersMenu.MarkersMenu() and RecentDirectoriesMenu.RecentDirectoriesMenu( EnhancedMenu.EnhancedMenu(...)

6 6 / 30 (3/4) JFreeChart package org.jfree.data; public class DefaultBoxAndWhiskerDataset { Version : public static... createnumberarray(...) { Version :... Version : } Version :... Version :... (1) DefaultBoxAndWhiskerDataset.createNumberArray(

7 7 / 30 (4/4) Eclipse public ReplaceEdit[] getmodifications(string source) {... Version 3.1: return Indents.getChangeIndentEdits(...); Version 3.3: return IndentManipulation.getChangeIndentEdits( } Version 3.1: class Indents { Version 3.3: class IndentManipulation { void getchangeindentedits(...) {... Version 3.1: int length= Indents.computeIndentLength(...); Version 3.3: int length= this.indexofindent(...);... (1) Indents.getChangeIndentEdits(...) IndentManipulation.getChangeIndentEdits(...) (2) Indents.computeIndentLength(...) IndentManipulation.indexOfIndent(...)

8 8 / 30 Main We want an approach that offers: one-to-many replacements (JHotDraw); many-to-one replacements (JEdit); simply-deleted methods (JFreeChart); cascade replacements (Eclipse). Additional We also want an approach that is: automatic and does not require framework developers involvement (FDI); system/contex independent no thresholds.

9 9 / 30 Features es One-to- Many- Simply- No Fully No many to-one deleted FDI Auto- Thres- Rules Rules Rules matic holds Chow et al. [1] SemDiff [2] Godfrey et al. [3] CatchUp! [4] M. Kim et al. [5] S. Kim et al. [6] Schäfer et al. [8] Diff-CatchUp [9]

10 10 / 30 (1/4) Inspiration uses: Call dependency, as in previous work by: Dagenais and Robillard [2]; Godfrey et al. [3]; Schäfer et al. [8]; Text similarity, as in previous work by: M. Kim et al. [5]; S. Kim et al. [6]; Xing and Stroulia [9].

11 11 / 30 (2/4) Assumptions We only consider method(s) in the same framework, excluding other vendors frameworks. We only use the old and new releases of a framework, not any of its client programs. A target method t can be replaced by: no method if it has been simply-deleted; one or more candidate methods, set {c}; A rule is a conjunction of method replacements, while M. Kim et al. s change-rules [5] are groups of similar changes.

12 12 / 30 (3/4) Underlying Techniques We use transitive call dependency analyses: let A be the number of anchors, i.e., methods calling target methods, then the confidence value is: CV(t, c) = A(t, c)/a(t); let KR(t) be the key-replacement method of t, i.e., the method that is most similar to t from the candidate replacement methods whose names are equal to t s or with CV(t, c) = 100%, then the support value is: S(t, c) = { m m {all the methods in the new release} m KR(t) m c }.

13 13 / 30 (4/4) Underlying Techniques We use Lawrie et al. s technique [7] to tokenize and compare method signatures: most of return types, declaring classes, method names, and parameter lists; Levenshtein distance; longest common subsequence (LCS)

14 14 / 30 (1/2) Steps Our algorithm divide in 6 steps (see pages ): 1. Global Data Set Generation: generates target method set, anchor set and candidate replacement method set. 2. Target Methods Classification: divides methods into those called by an anchor from the others. 3. Candidate Replacement Method Set Generation: uses call dependency to build sets. 4. Confidence Value Computation: build one-to-one, many-to-one, and one-to-many rules. 5. Text Similarity Only Rule Generation: uses text similarity for methods not called by anchors. 6. Simply-deleted Method Rule Identification: builds list of deleted methods.

15 15 / 30 (2/2) Implementation is implemented in Java, as an Eclipse plug-in, available at experiments/icse10b.

16 16 / 30 Hypothesis will find more relevant change rules than the previous approaches with comparable precision, i.e., it will have a better recall than and similar precision to those of the previous approaches.

17 17 / 30 (1/2) Precision and Recall Precision = {relevant rules} {retrieved rules} {retrieved rules} Recall = {relevant rules} {retrieved rules} {relevant rules} Problem We cannot know {relevant rules} without an expensive and error-prone manual analysis.

18 18 / 30 (2/2) Δs of Precision (P) and Recall (R) We introduce the manually-build set: {correct rules} X = {relevant rules} X {retrieved rules}x Then: ΔP(A, B) = Precision A Precision B Precision B = {correct rules} A {retrieved rules} B {retrieved rules} A {correct rules} B 1 ΔR(A, B) = Recall A Recall B Recall B = {correct rules} A {correct rules} B {correct rules} B

19 19 / 30 (1/6) Considered Rules We noticed that large numbers of target methods are deleted in new releases: on average 31.93% of rules are simple-deleted rules we include simply-deleted rules. We convert many-to-one rules into as many one-to-one rules.

20 20 / 30 (2/6) Subject Systems We reuse systems analysed in previous work to benefit from the sets {correct rules} X built by their authors. Systems Releases # Methods JFreeChart , ,197 JHotDraw 5.2 1, ,265 JEdit 4.1 2, ,547 Struts 1.1 5, ,111 org.eclipse.jdt.core ,439 org.eclipse.jdt.ui ,237

21 21 / 30 (3/6) Small/Medium Systems We benefit from existing sets {correct rules} X and compare precision, recall, and deltas. Systems M. Kim et al. [5] ΔR ΔP JHotDraw # Correct rule Precision 92.38% 99.00% 19.49% -6.69% JEdit # Correct rule Precision 80.18% 93.00% 64.29% % JFreeChart # Correct rule Precision 80.73% 78.00% 75.86% 3.50% Systems Schäfer et al. [8] ΔR ΔP JHotDraw # Correct rule Precision 92.38% 88.00% 10.23% 4.98% Struts # Correct rule Precision 96.56% 85.70% 95.49% 11.50% Total Precision of 88.25% Average ΔR 53.07% ΔP -0.10%

22 22 / 30 (4/6) Large System {retrieved rules} > 4, 500 we use the number of errors in scope, i.e., the number of compilation errors related to method and type replacements: to build {correct rules} ; to reuse {correct rules} SemDiff. Systems SemDiff [2] org.eclipse. # Errors in Scope 4 jdt.debug.ui # Found Rules # Correct Rules 4 4 Mylyn # Errors in Scope # Found Rules 2 2 # Correct Rules 1 2 JBossIDE # Errors in Scope # Found Rules 8 8 # Correct Rules 8 8 Precision 92.86% %

23 23 / 30 (5/6) Threats to Validity The following threats affect our comparisons: construct validity: errors in the algorithm and bias in the manual validation of rules implementation and data available on-line; internal validity: confounding factors that could affect the results of the study exploratory study and systematic comparison of with the previous approaches.

24 24 / 30 (6/6) Threats to Validity The following threats also affect our comparisons: conclusion validity: relation between the treatment and the outcome of the study unbiased measures and data provided by the authors of previous approaches; reliability validity: possibility of replicating the study details in the paper and studied systems and data available on-line; external validity: possibility to generalize our the results of the study five systems of different size, domains, and evaluated by previous approaches.

25 25 / 30 (1/4) Strengths has the following advantages over previous work: combination of call-dependency and text-similarity analyses; multi-iteration algorithm; three text similarity measures; many-to-one, one-to-many, simply-deleted rules; no threshold.

26 26 / 30 (2/4) Limitations Still, has the following limitations: it cannot detect one-to-many and many-to-one change rules for target methods called by no other method; it only generates change rules for methods. it assumes no major changes to the internal implementation of anchors.

27 27 / 30 (3/4) Future Work Consequently, future work includes to: analyze systems in other programming languages; develop heuristics that generate change rules for types and fields using inheritance relations and polymorphism; combine with approaches that use other matching techniques; present results in first-order relational logic rules, as introduced by M. Kim et al. [5]; perform usability studies of the efficacy of.

28 28 / 30 (4/4) Any questions, comments?

29 29 / 30 (1/2) K. Chow and D. Notkin. Semi-automatic update of applications in response to library changes. In ICSM 96: Proceedings of the 1996 International Conference on Software Maintenance, page 359, Washington, DC, USA, IEEE Computer Society. B. Dagenais and M. P. Robillard. Recommending adaptive changes for framework evolution. In ICSE 08: Proceedings of the 30th international conference on Software engineering, pages , New York, NY, USA, ACM. M. W. Godfrey and L. Zou. Using origin analysis to detect merging and splitting of source code entities. IEEE Trans. Softw. Eng., 31(2): , J. Henkel and A. Diwan. Catchup!: capturing and replaying refactorings to support api evolution. In ICSE 05: Proceedings of the 27th international conference on Software engineering, pages , New York, NY, USA, ACM. M. Kim, D. Notkin, and D. Grossman. Automatic inference of structural changes for matching across program versions. In ICSE 07: Proceedings of the 29th international conference on Software Engineering, pages , Washington, DC, USA, Not Available IEEE Computer Society. S. Kim, K. Pan, and E. J. Whitehead, Jr. When functions change their names: Automatic detection of origin relationships. In WCRE 05: Proceedings of the 12th Working Conference on Reverse Engineering, pages , Washington, DC, USA, IEEE Computer Society.

30 30 / 30 (2/2) D. Lawrie, H. Feild, and D. Binkley. Syntactic identifier conciseness and consistency. In Sixth IEEE International Workshop on Source Code Analysis and Manipulation., pages , Sept T. Schäfer, J. Jonas, and M. Mezini. Mining framework usage changes from instantiation code. In ICSE 08: Proceedings of the 30th international conference on Software engineering, pages , New York, NY, USA, May ACM. Z. Xing and E. Stroulia. API-evolution support with diff-catchup. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 33(12): , December 2007.

Automatic Inference of Structural Changes for Matching Across Program Versions

Automatic Inference of Structural Changes for Matching Across Program Versions Automatic Inference of Structural Changes for Matching Across Program Versions Miryung Kim, David Notkin, Dan Grossman Computer Science & Engineering University of Washington Foo.mA() Foo.mB() Foo.mC()

More information

Recommending Adaptive Changes for Framework Evolution

Recommending Adaptive Changes for Framework Evolution Recommending Adaptive Changes for Framework Evolution BARTHÉLÉMY DAGENAIS and MARTIN P. ROBILLARD, McGill University In the course of a framework s evolution, changes ranging from a simple refactoring

More information

Template-based Reconstruction of Complex Refactorings

Template-based Reconstruction of Complex Refactorings Template-based Reconstruction of Complex Refactorings Kyle Prete, Napol Rachatasumrit, Nikita Sudan, Miryung Kim Electrical and Computer Engineering The University of Texas at Austin Problem: Refactoring

More information

Improving Origin Analysis with Weighting Functions

Improving Origin Analysis with Weighting Functions Improving Origin Analysis with Weighting Functions Lin Yang, Anwar Haque and Xin Zhan Supervisor: Michael Godfrey University of Waterloo Introduction Software systems must undergo modifications to improve

More information

Automatic Inference of Structural Changes for Matching Across Program Versions

Automatic Inference of Structural Changes for Matching Across Program Versions Automatic Inference of Structural Changes for Matching Across Program Versions Miryung Kim, David Notkin, Dan Grossman Computer Science & Engineering University of Washington Seattle WA, USA {miryung,

More information

ACUA: API Change and Usage Auditor

ACUA: API Change and Usage Auditor 204 4th IEEE International Working Conference on Source Code Analysis and Manipulation ACUA: API Change and Usage Auditor Wei Wu, Bram Adams, ann-gaël Guéhéneuc, Giuliano Antoniol DGIGL, École Polytechnique

More information

Matching Program Elements for Multi-Version Program Analyses

Matching Program Elements for Multi-Version Program Analyses Matching Program Elements for Multi-Version Program Analyses Miryung Kim, David Notkin University of Washington The Third International Workshop on Mining Software Repositories, Shanghai China, 2006 Multi-Version

More information

Systematic Source Code Transformations. Gustavo SANTOS

Systematic Source Code Transformations. Gustavo SANTOS Systematic Source Code Transformations Gustavo SANTOS Presentation Bachelor in Computer Science Master in Computer Science Short visit to RMoD team Funded by CAPES (Brazil) Science Without Borders program

More information

SOFTWARE reuse simplifies the design of new systems, but,

SOFTWARE reuse simplifies the design of new systems, but, 818 IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 33, NO. 12, DECEMBER 2007 API-Evolution Support with Diff-CatchUp Zhenchang Xing, Student Member, IEEE, and Eleni Stroulia, Member, IEEE Abstract Applications

More information

Identifying Changed Source Code Lines from Version Repositories

Identifying Changed Source Code Lines from Version Repositories Identifying Changed Source Code Lines from Version Repositories Gerardo Canfora, Luigi Cerulo, Massimiliano Di Penta RCOST Research Centre on Software Technology Department of Engineering - University

More information

Program Element Matching for Multi-Version Program Analyses

Program Element Matching for Multi-Version Program Analyses Program Element Matching for Multi-Version Program Analyses Miryung Kim, David Notkin Computer Science & Engineering University of Washington Seattle, WA {miryung,notkin@cs.washington.edu ABSTRACT Multi-version

More information

Sort-based Refactoring of Crosscutting Concerns to Aspects

Sort-based Refactoring of Crosscutting Concerns to Aspects Sort-based Refactoring of Crosscutting Concerns to Aspects Robin van der Rijst Delft University of Technology rvdrijst@gmail.com Marius Marin Accenture Marius.Marin@accenture.com Arie van Deursen Delft

More information

SERG. Sort-based Refactoring of Crosscutting Concerns to Aspects

SERG. Sort-based Refactoring of Crosscutting Concerns to Aspects Delft University of Technology Software Engineering Research Group Technical Report Series Sort-based Refactoring of Crosscutting Concerns to Aspects Robin van der Rijst, Marius Marin, and Arie van Deursen

More information

Refactoring Practice: How it is and How it Should be Supported

Refactoring Practice: How it is and How it Should be Supported Refactoring Practice: How it is and How it Should be Supported Zhenchang Xing and EleniStroulia Presented by: Sultan Almaghthawi 1 Outline Main Idea Related Works/Literature Alignment Overview of the Case

More information

A Heuristic-based Approach to Identify Concepts in Execution Traces

A Heuristic-based Approach to Identify Concepts in Execution Traces A Heuristic-based Approach to Identify Concepts in Execution Traces Fatemeh Asadi * Massimiliano Di Penta ** Giuliano Antoniol * Yann-Gaël Guéhéneuc ** * Ecole Polytechnique de Montréal, Canada ** Dept.

More information

Practical Refactoring-Based Framework Upgrade. Ilie Şavga, Michael Rudolf, Sebastian Götz, Uwe Aßmann GPCE'08: Nashville, Tennessee

Practical Refactoring-Based Framework Upgrade. Ilie Şavga, Michael Rudolf, Sebastian Götz, Uwe Aßmann GPCE'08: Nashville, Tennessee Practical Refactoring-Based Framework Upgrade Ilie Şavga, Michael Rudolf, Sebastian Götz, Uwe Aßmann 20.10.2008 GPCE'08: Nashville, Tennessee Restructuring a Sign John Thompson, hatter, makes and sells

More information

JSCTracker: A Tool and Algorithm for Semantic Method Clone Detection

JSCTracker: A Tool and Algorithm for Semantic Method Clone Detection JSCTracker: A Tool and Algorithm for Semantic Method Clone Detection Using Method IOE-Behavior Rochelle Elva and Gary T. Leavens CS-TR-12-07 October 15, 2012 Keywords: Automated semantic clone detection

More information

32. Practical Refactoring-Based Framework Upgrade with Comeback!

32. Practical Refactoring-Based Framework Upgrade with Comeback! Restructuring a Sign 32. Practical Refactoring-Based Upgrade with Comeback! John Thompson, hatter, makes and sells hats for ready money. Ilie Şavga, Michael Rudolf, Sebastian Götz, Uwe Aßmann 20.10.2008

More information

Practical Refactoring-Based Framework Upgrade. Ilie Şavga, Michael Rudolf, Sebastian Götz, Uwe Aßmann GPCE'08: Nashville, Tennessee

Practical Refactoring-Based Framework Upgrade. Ilie Şavga, Michael Rudolf, Sebastian Götz, Uwe Aßmann GPCE'08: Nashville, Tennessee Practical Refactoring-Based Framework Upgrade Ilie Şavga, Michael Rudolf, Sebastian Götz, Uwe Aßmann 20.10.2008 GPCE'08: Nashville, Tennessee Restructuring a Sign John Thompson, hatter, makes and sells

More information

CnP: Towards an Environment for the Proactive Management of Copy-and-Paste Programming

CnP: Towards an Environment for the Proactive Management of Copy-and-Paste Programming CnP: Towards an Environment for the Proactive Management of Copy-and-Paste Programming Daqing Hou, Patricia Jablonski, and Ferosh Jacob Electrical and Computer Engineering, Clarkson University, Potsdam,

More information

Mining Frequent Bug-Fix Code Changes

Mining Frequent Bug-Fix Code Changes Mining Frequent Bug-Fix Code Changes Haidar Osman, Mircea Lungu, Oscar Nierstrasz Software Composition Group University of Bern Bern, Switzerland {osman, lungu, oscar@iam.unibe.ch Abstract Detecting bugs

More information

Automatically Generating Refactorings to Suppport API Evolution

Automatically Generating Refactorings to Suppport API Evolution Automatically Generating Refactorings to Suppport API Evolution MIT CSAIL Page 1 Outline Library evolution Libraries evolve Clients often don t track library changes Contributions Mechanism to automatically

More information

Empirical Software Engineering. Empirical Software Engineering with Examples! is not a topic for examination. Classification.

Empirical Software Engineering. Empirical Software Engineering with Examples! is not a topic for examination. Classification. Empirical Software Engineering Empirical Software Engineering with Examples is not a topic for examination a sub-domain of software engineering focusing on experiments on software systems devise experiments

More information

Crash course on design patterns

Crash course on design patterns Crash course on design patterns Yann-Gaël Guéhéneuc guehene@emn.fr From Olivier Motelet s course (2001/10/17) École des Mines de Nantes, France Object Technology International, Inc., Canada Design patterns

More information

Automatic Detection of Refactorings for Libraries and Frameworks

Automatic Detection of Refactorings for Libraries and Frameworks Automatic Detection of Refactorings for Libraries and Frameworks Danny Dig, Can Comertoglu, Darko Marinov, Ralph Johnson Department of Computer Science University of Illinois at Urbana-Champaign 201 N.

More information

Empirical Software Engineering. Empirical Software Engineering with Examples. Classification. Software Quality. precision = TP/(TP + FP)

Empirical Software Engineering. Empirical Software Engineering with Examples. Classification. Software Quality. precision = TP/(TP + FP) Empirical Software Engineering Empirical Software Engineering with Examples a sub-domain of software engineering focusing on experiments on software systems devise experiments on software, in collecting

More information

A Detailed Examination of the Correlation Between Imports and Failure-Proneness of Software Components

A Detailed Examination of the Correlation Between Imports and Failure-Proneness of Software Components A Detailed Examination of the Correlation Between Imports and Failure-Proneness of Software Components Ekwa Duala-Ekoko and Martin P. Robillard School of Computer Science, McGill University Montréal, Québec,

More information

Analysing Anti-patterns Static Relationships with Design Patterns

Analysing Anti-patterns Static Relationships with Design Patterns Analysing Anti-patterns Static Relationships with Design Patterns Fehmi Jaafar, Yann-Gaël Guéhéneuc, and Sylvie Hamel PTIDEJ Team, DIRO, Université de Montréal, QC, Canada LBIT Team, DIRO, Université de

More information

How are Developers Treating License Inconsistency Issues? A Case Study on License Inconsistency Evolution in FOSS Projects

How are Developers Treating License Inconsistency Issues? A Case Study on License Inconsistency Evolution in FOSS Projects How are Developers Treating License Inconsistency Issues? A Case Study on License Inconsistency Evolution in FOSS Projects Yuhao Wu 1(B), Yuki Manabe 2, Daniel M. German 3, and Katsuro Inoue 1 1 Graduate

More information

Christoph Treude. Bimodal Software Documentation

Christoph Treude. Bimodal Software Documentation Christoph Treude Bimodal Software Documentation Software Documentation [1985] 2 Software Documentation is everywhere [C Parnin and C Treude Measuring API Documentation on Web Web2SE 11: 2nd Int l Workshop

More information

A Taxonomy and a First Study of Design Pattern Defects

A Taxonomy and a First Study of Design Pattern Defects A Taxonomy and a First Study of Design Pattern Defects Naouel Moha, Duc-loc Huynh, and Yann-Gaël Guéhéneuc Ptidej Team GEODES - Group of Open and Distributed Systems, Experimental Software Engineering

More information

An Efficient Approach for Requirement Traceability Integrated With Software Repository

An Efficient Approach for Requirement Traceability Integrated With Software Repository An Efficient Approach for Requirement Traceability Integrated With Software Repository P.M.G.Jegathambal, N.Balaji P.G Student, Tagore Engineering College, Chennai, India 1 Asst. Professor, Tagore Engineering

More information

Mining a Change-Based Software Repository

Mining a Change-Based Software Repository Mining a Change-Based Software Repository Romain Robbes Faculty of Informatics University of Lugano, Switzerland Abstract Although state-of-the-art software repositories based on versioning system information

More information

Efficient Regression Test Model for Object Oriented Software

Efficient Regression Test Model for Object Oriented Software Efficient Regression Test Model for Object Oriented Software Swarna Lata Pati College of Engg. & Tech, Bhubaneswar Abstract : This paper presents an efficient regression testing model with an integration

More information

Mining Crash Fix Patterns

Mining Crash Fix Patterns Mining Crash Fix Patterns Jaechang Nam and Ning Chen Department of Computer Science and Engineering The Hong Kong University of Science and Technology China {jcnam,ning@cse.ust.hk ABSTRACT During the life

More information

Are Refactorings Less Error-prone Than Other Changes?

Are Refactorings Less Error-prone Than Other Changes? Are Refactorings Less Error-prone Than Other Changes? Peter Weißgerber University of Trier Computer Science Department 54286 Trier, Germany weissger@uni-trier.de Stephan Diehl University of Trier Computer

More information

Predicting Bugs. by Analyzing History. Sunghun Kim Research On Program Analysis System Seoul National University

Predicting Bugs. by Analyzing History. Sunghun Kim Research On Program Analysis System Seoul National University Predicting Bugs by Analyzing History Sunghun Kim Research On Program Analysis System Seoul National University Around the World in 80 days Around the World in 8 years Predicting Bugs Severe consequences

More information

Can Better Identifier Splitting Techniques Help Feature Location?

Can Better Identifier Splitting Techniques Help Feature Location? Can Better Identifier Splitting Techniques Help Feature Location? Bogdan Dit, Latifa Guerrouj, Denys Poshyvanyk, Giuliano Antoniol SEMERU 19 th IEEE International Conference on Program Comprehension (ICPC

More information

Mining Software Repositories for Software Change Impact Analysis: A Case Study

Mining Software Repositories for Software Change Impact Analysis: A Case Study Mining Software Repositories for Software Change Impact Analysis: A Case Study Lile Hattori 1, Gilson dos Santos Jr. 2, Fernando Cardoso 2, Marcus Sampaio 2 1 Faculty of Informatics University of Lugano

More information

Inter-Project Dependencies in Java Software Ecosystems

Inter-Project Dependencies in Java Software Ecosystems Inter-Project Dependencies Inter-Project Dependencies in Java Software Ecosystems in Java Software Ecosystems Antonín Procházka 1, Mircea Lungu 2, Karel Richta 3 Antonín Procházka 1, Mircea Lungu 2, Karel

More information

ADVANCED SOFTWARE ENGINEERING CS561 Danny Dig

ADVANCED SOFTWARE ENGINEERING CS561 Danny Dig ADVANCED SOFTWARE ENGINEERING CS561 TUE/THU @4PM, Danny Dig QUIZ #1 - Write down your name - Grad Program (e.g., EECS PhD, EECS MS) and year of study - What are your expectations from the class? 2 Software

More information

APIEvolutionMiner: Keeping API Evolution under Control

APIEvolutionMiner: Keeping API Evolution under Control APIEvolutionMiner: Keeping API Evolution under Control André Hora, Anne Etien, Nicolas Anquetil, Stéphane Ducasse, Marco Tulio Valente RMoD team, Inria, Lille, France Email: firstname.lastname@inria.fr

More information

Using FCA to Suggest Refactorings to Correct Design Defects

Using FCA to Suggest Refactorings to Correct Design Defects Using FCA to Suggest Refactorings to Correct Design Defects Naouel Moha, Jihene Rezgui, Yann-Gaël Guéhéneuc, Petko Valtchev, and Ghizlane El Boussaidi GEODES, Department of Informatics and Operations Research

More information

International Journal for Management Science And Technology (IJMST)

International Journal for Management Science And Technology (IJMST) Volume 4; Issue 03 Manuscript- 1 ISSN: 2320-8848 (Online) ISSN: 2321-0362 (Print) International Journal for Management Science And Technology (IJMST) GENERATION OF SOURCE CODE SUMMARY BY AUTOMATIC IDENTIFICATION

More information

A Study of Repetitiveness of Code Changes in Software Evolution

A Study of Repetitiveness of Code Changes in Software Evolution A Study of Repetitiveness of Code Changes in Software Evolution Hoan Anh Nguyen, Anh Tuan Nguyen, Tung Thanh Nguyen, Tien N. Nguyen, and Hridesh Rajan Iowa State University Email: {hoan,anhnt,tung,tien,hridesh}@iastate.edu

More information

Adaptive Refactoring Using a Core-Based Clustering Approach

Adaptive Refactoring Using a Core-Based Clustering Approach Adaptive Refactoring Using a Core-Based Clustering Approach GABRIELA CZIBULA Babeş-Bolyai University Department of Computer Science 1, M. Kogălniceanu Street, Cluj-Napoca ROMANIA gabis@cs.ubbcluj.ro ISTVAN

More information

Analysis of Coding Patterns over Software Versions

Analysis of Coding Patterns over Software Versions Information and Media Technologies 0(): - (05) reprinted from: Computer Software (): 0- (05) Analysis of Coding Patterns over Software Versions Hironori Date, Takashi Ishio, Makoto Matsushita, Katsuro

More information

Analysing Anti-patterns Static Relationships with Design Patterns

Analysing Anti-patterns Static Relationships with Design Patterns ECEASST Analysing Anti-patterns Static Relationships with Design Patterns Fehmi Jaafar, Yann-Gaël Guéhéneuc, Sylvie Hamel, and Foutse Khomh Fehmi Jaafar School of Computing, Queen s University, Ontario,

More information

Quantifying and Assessing the Merge of Cloned Web-Based System: An Exploratory Study

Quantifying and Assessing the Merge of Cloned Web-Based System: An Exploratory Study Quantifying and Assessing the Merge of Cloned Web-Based System: An Exploratory Study Jadson Santos Department of Informatics and Applied Mathematics Federal University of Rio Grande do Norte, UFRN Natal,

More information

Finding Extract Method Refactoring Opportunities by Analyzing Development History

Finding Extract Method Refactoring Opportunities by Analyzing Development History 2017 IEEE 41st Annual Computer Software and Applications Conference Finding Extract Refactoring Opportunities by Analyzing Development History Ayaka Imazato, Yoshiki Higo, Keisuke Hotta, and Shinji Kusumoto

More information

Proceedings of the Eighth International Workshop on Software Clones (IWSC 2014)

Proceedings of the Eighth International Workshop on Software Clones (IWSC 2014) Electronic Communications of the EASST Volume 63 (2014) Proceedings of the Eighth International Workshop on Software Clones (IWSC 2014) Clones and Macro co-changes Angela Lozano, Fehmi Jaafar, Kim Mens,

More information

Structured Programming with goto Statements

Structured Programming with goto Statements Structured Programming with goto Statements Yann-Gaël Guéhéneuc Article by Donald E. Knuth Presented in course IFT6310 GEODES Ptidej Team OO Programs Quality Evaluation and Enhancement using Patterns Group

More information

Summarizing Evolutionary Trajectory by Grouping and Aggregating Relevant Code Changes

Summarizing Evolutionary Trajectory by Grouping and Aggregating Relevant Code Changes Summarizing Evolutionary Trajectory by Grouping and Aggregating Relevant Code Changes Qingtao Jiang, Xin Peng, Hai Wang, Zhenchang Xing, and Wenyun Zhao Software School, Fudan University, Shanghai, China

More information

(800) Toll Free (804) Fax Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days

(800) Toll Free (804) Fax   Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days Course Description This course introduces the Java programming language and how to develop Java applications using Eclipse 3.0. Students learn the syntax of the Java programming language, object-oriented

More information

Automatically Repairing Broken Workflows for Evolving GUI Applications

Automatically Repairing Broken Workflows for Evolving GUI Applications Automatically Repairing Broken Workflows for Evolving GUI Applications Sai Zhang University of Washington Joint work with: Hao Lü, Michael D. Ernst End-user s workflow A workflow = A sequence of UI actions

More information

How We Refactor, and How We Know It

How We Refactor, and How We Know It Emerson Murphy-Hill, Chris Parnin, Andrew P. Black How We Refactor, and How We Know It Urs Fässler 30.03.2010 Urs Fässler () How We Refactor, and How We Know It 30.03.2010 1 / 14 Refactoring Definition

More information

Detection a Design Pattern through Merge Static and Dynamic Analysis Using Altova and Lambdes Tools

Detection a Design Pattern through Merge Static and Dynamic Analysis Using Altova and Lambdes Tools Detection a Design Pattern through Merge Static and Dynamic Analysis Using Altova and Lambdes Tools Hamed J. Fawareh Department of Software Engineering,Zarqa University,Jaber Highway, Zarqa, Jordan. Orcid

More information

Mapping Bug Reports to Relevant Files and Automated Bug Assigning to the Developer Alphy Jose*, Aby Abahai T ABSTRACT I.

Mapping Bug Reports to Relevant Files and Automated Bug Assigning to the Developer Alphy Jose*, Aby Abahai T ABSTRACT I. International Journal of Scientific Research in Computer Science, Engineering and Information Technology 2018 IJSRCSEIT Volume 3 Issue 1 ISSN : 2456-3307 Mapping Bug Reports to Relevant Files and Automated

More information

Churrasco: Supporting Collaborative Software Evolution Analysis

Churrasco: Supporting Collaborative Software Evolution Analysis Churrasco: Supporting Collaborative Software Evolution Analysis Marco D Ambros a, Michele Lanza a a REVEAL @ Faculty of Informatics - University of Lugano, Switzerland Abstract Analyzing the evolution

More information

Chapter 3. Interactive Software Development Assistants Logic-based Software Representation. Logic-based Software Analysis

Chapter 3. Interactive Software Development Assistants Logic-based Software Representation. Logic-based Software Analysis Advanced Logic Programming Summer semester 2012 R O O T S Chapter 3. Logic-based Analysis Interactive Development Assistants Logic-based Representation Logic-based Analysis Logic-based Transformation Motivation

More information

Mining the Relationship between Anti-patterns Dependencies and Fault-Proneness

Mining the Relationship between Anti-patterns Dependencies and Fault-Proneness Mining the Relationship between Anti-patterns Dependencies and Fault-Proneness Fehmi Jaafar, Yann-Gaël Guéhéneuc, Sylvie Hamel and Foutse Khomh PTIDEJ Team, École Polytechnique de Montréal, QC, Canada

More information

UNSUPERVISED TRANSFORMATION OF PROCEDURAL PROGRAMS TO OBJECT-ORIENTED DESIGN. Istvan Gergely Czibula and Gabriela Czibula

UNSUPERVISED TRANSFORMATION OF PROCEDURAL PROGRAMS TO OBJECT-ORIENTED DESIGN. Istvan Gergely Czibula and Gabriela Czibula Acta Universitatis Apulensis, ISSN 1582-5329, 2011, Special Issue on Understanding Complex Systems, Eds. Barna Iantovics, Ladislav Hluchý and Roumen Kountchev UNSUPERVISED TRANSFORMATION OF PROCEDURAL

More information

SAFEREFACTOR Tool for Checking Refactoring Safety

SAFEREFACTOR Tool for Checking Refactoring Safety SAFEREFACTOR Tool for Checking Refactoring Safety Gustavo Soares 1, Diego Cavalcanti 1, Rohit Gheyi 1, Tiago Massoni 1, Dalton Serey 1,Márcio Cornélio 2 1 Department of Systems and Computing UFCG 2 Department

More information

JSCTracker: A Semantic Clone Detection Tool for Java Code Rochelle Elva and Gary T. Leavens

JSCTracker: A Semantic Clone Detection Tool for Java Code Rochelle Elva and Gary T. Leavens JSCTracker: A Semantic Clone Detection Tool for Java Code Rochelle Elva and Gary T. Leavens CS-TR-12-04 March 2012 Keywords: semantic clone detection, input-output behavior, effects, IOE behavior, Java

More information

Identification of Crosscutting Concerns: A Survey

Identification of Crosscutting Concerns: A Survey Identification of Crosscutting Concerns: A Survey Arvinder Kaur University School of IT GGSIP, University, Delhi arvinder70@gmail.com Kalpana Johari CDAC, Noida kalpanajohari@cdacnoida.in Abstract Modularization

More information

Impact of Dependency Graph in Software Testing

Impact of Dependency Graph in Software Testing Impact of Dependency Graph in Software Testing Pardeep Kaur 1, Er. Rupinder Singh 2 1 Computer Science Department, Chandigarh University, Gharuan, Punjab 2 Assistant Professor, Computer Science Department,

More information

An Exploratory Study on Interface Similarities in Code Clones

An Exploratory Study on Interface Similarities in Code Clones 1 st WETSoDA, December 4, 2017 - Nanjing, China An Exploratory Study on Interface Similarities in Code Clones Md Rakib Hossain Misu, Abdus Satter, Kazi Sakib Institute of Information Technology University

More information

LHDiff: A Language-Independent Hybrid Approach for Tracking Source Code Lines

LHDiff: A Language-Independent Hybrid Approach for Tracking Source Code Lines LHDiff: A Language-Independent Hybrid Approach for Tracking Source Code Lines Muhammad Asaduzzaman Chanchal K. Roy Kevin A. Schneider Massimiliano Di Penta Department of Computer Science, University of

More information

The goal of this project is to enhance the identification of code duplication which can result in high cost reductions for a minimal price.

The goal of this project is to enhance the identification of code duplication which can result in high cost reductions for a minimal price. Code Duplication New Proposal Dolores Zage, Wayne Zage Ball State University June 1, 2017 July 31, 2018 Long Term Goals The goal of this project is to enhance the identification of code duplication which

More information

Fine-grained Software Version Control Based on a Program s Abstract Syntax Tree

Fine-grained Software Version Control Based on a Program s Abstract Syntax Tree Master Thesis Description and Schedule Fine-grained Software Version Control Based on a Program s Abstract Syntax Tree Martin Otth Supervisors: Prof. Dr. Peter Müller Dimitar Asenov Chair of Programming

More information

How do Developers React to API Evolution? a Large-Scale Empirical Study

How do Developers React to API Evolution? a Large-Scale Empirical Study How do Developers React to API Evolution? a Large-Scale Empirical Study André Hora, Romain Robbes, Marco Tulio Valente, Nicolas Anquetil, Anne Etien, Stéphane Ducasse To cite this version: André Hora,

More information

Identifying Static Analysis Techniques for Finding Non-fix Hunks in Fix Revisions

Identifying Static Analysis Techniques for Finding Non-fix Hunks in Fix Revisions Identifying Static Analysis Techniques for Finding Non-fix Hunks in Fix Revisions Yungbum Jung, Hakjoo Oh, and Kwangkeun Yi Seoul National University {dreameye, pronto, kwang}@ropas.snu.ac.kr ABSTRACT

More information

Empirical Study on Impact of Developer Collaboration on Source Code

Empirical Study on Impact of Developer Collaboration on Source Code Empirical Study on Impact of Developer Collaboration on Source Code Akshay Chopra University of Waterloo Waterloo, Ontario a22chopr@uwaterloo.ca Parul Verma University of Waterloo Waterloo, Ontario p7verma@uwaterloo.ca

More information

Reusing Program Investigation Knowledge for Code Understanding

Reusing Program Investigation Knowledge for Code Understanding Reusing Program Investigation Knowledge for Code Understanding Martin P. Robillard and Putra Manggala School of Computer Science McGill University Montréal, QC, Canada {martin,pmangg}@cs.mcgill.ca Abstract

More information

Abstract. We define an origin relationship as follows, based on [12].

Abstract. We define an origin relationship as follows, based on [12]. When Functions Change Their Names: Automatic Detection of Origin Relationships Sunghun Kim, Kai Pan, E. James Whitehead, Jr. Dept. of Computer Science University of California, Santa Cruz Santa Cruz, CA

More information

NaCIN An Eclipse Plug-In for Program Navigation-based Concern Inference

NaCIN An Eclipse Plug-In for Program Navigation-based Concern Inference NaCIN An Eclipse Plug-In for Program Navigation-based Concern Inference Imran Majid and Martin P. Robillard School of Computer Science McGill University Montreal, QC, Canada {imajid, martin} @cs.mcgill.ca

More information

COMPARISON AND EVALUATION ON METRICS

COMPARISON AND EVALUATION ON METRICS COMPARISON AND EVALUATION ON METRICS BASED APPROACH FOR DETECTING CODE CLONE D. Gayathri Devi 1 1 Department of Computer Science, Karpagam University, Coimbatore, Tamilnadu dgayadevi@gmail.com Abstract

More information

Mining Change Histories for Unknown Systematic Edits

Mining Change Histories for Unknown Systematic Edits Mining Change Histories for Unknown Systematic Edits Tim Molderez, Reinout Stevens and Coen De Roover Software Languages Lab, Vrije Universiteit Brussel, Brussels, Belgium Email: {tmoldere, resteven, cderoove}@vub.be

More information

Chapter 16 Recommending Program Transformations. Automating Repetitive Software Changes

Chapter 16 Recommending Program Transformations. Automating Repetitive Software Changes Chapter 16 Recommending Program Transformations Automating Repetitive Software Changes Miryung Kim and Na Meng Abstract Adding features and fixing bugs in software often require systematic edits which

More information

Combining Probabilistic Ranking and Latent Semantic Indexing for Feature Identification

Combining Probabilistic Ranking and Latent Semantic Indexing for Feature Identification Combining Probabilistic Ranking and Latent Semantic Indexing for Feature Identification Denys Poshyvanyk, Yann-Gaël Guéhéneuc, Andrian Marcus, Giuliano Antoniol, Václav Rajlich 14 th IEEE International

More information

A Study on Inappropriately Partitioned Commits How Much and What Kinds of IP Commits in Java Projects?

A Study on Inappropriately Partitioned Commits How Much and What Kinds of IP Commits in Java Projects? How Much and What Kinds of IP Commits in Java Projects? Ryo Arima r-arima@ist.osaka-u.ac.jp Yoshiki Higo higo@ist.osaka-u.ac.jp Shinji Kusumoto kusumoto@ist.osaka-u.ac.jp ABSTRACT When we use code repositories,

More information

Towards Locating a Functional Concern Based on a Program Slicing Technique

Towards Locating a Functional Concern Based on a Program Slicing Technique Towards Locating a Functional Concern Based on a Program Slicing Technique Takashi Ishio 1,2, Ryusuke Niitani 2, Katsuro Inoue 2 1 Department of Computer Science University of British Columbia 2366 Main

More information

Employing Query Technologies for Crosscutting Concern Comprehension

Employing Query Technologies for Crosscutting Concern Comprehension Employing Query Technologies for Crosscutting Concern Comprehension Marius Marin Accenture The Netherlands Marius.Marin@accenture.com Abstract Common techniques for improving comprehensibility of software

More information

Exploring the Use of Automated API Migrating Techniques in Practice: An Experience Report on Android

Exploring the Use of Automated API Migrating Techniques in Practice: An Experience Report on Android Exploring the Use of Automated API Migrating Techniques in Practice: An Experience Report on Android Department of Computer Science and Software Engineering Concordia University, Montreal, Quebec, Canada

More information

Week. Lecture Topic day (including assignment/test) 1 st 1 st Introduction to Module 1 st. Practical

Week. Lecture Topic day (including assignment/test) 1 st 1 st Introduction to Module 1 st. Practical Name of faculty: Gaurav Gambhir Discipline: Computer Science Semester: 6 th Subject: CSE 304 N - Essentials of Information Technology Lesson Plan Duration: 15 Weeks (from January, 2018 to April, 2018)

More information

Specification and Automated Detection of Code Smells using OCL

Specification and Automated Detection of Code Smells using OCL Specification and Automated Detection of Code Smells using OCL Tae-Woong Kim 1, Tae-Gong Kim 2 and Jai-Hyun Seu 3 School of Computer Engineering, Inje University, Obang-dong 607, Gimhae, Gyeong-Nam, Korea

More information

Study of Component Based Software Engineering

Study of Component Based Software Engineering Study of Based Software Ishita Verma House No.4, Village Dayalpur Karawal Nagar Road Delhi-110094, India ish.v.16@gmail.com Abstract based engineering is an approach of development that emphasizes the

More information

Automatic Identification of Important Clones for Refactoring and Tracking

Automatic Identification of Important Clones for Refactoring and Tracking Automatic Identification of Important Clones for Refactoring and Tracking Manishankar Mondal Chanchal K. Roy Kevin A. Schneider Department of Computer Science, University of Saskatchewan, Canada {mshankar.mondal,

More information

Automatic Identification of Bug-Introducing Changes

Automatic Identification of Bug-Introducing Changes Automatic Identification of Bug-Introducing Changes Sunghun Kim 1, Thomas Zimmermann 2, Kai Pan 1, E. James Whitehead, Jr. 1 1 University of California, Santa Cruz, CA, USA {hunkim, pankai, ejw}@cs.ucsc.edu

More information

Code siblings: technical and legal implications of copying code between applications

Code siblings: technical and legal implications of copying code between applications Code siblings: technical and legal implications of copying code between applications Daniel M. German, Massimiliano Di Penta, Yann-Gaël Guéhéneuc, and Giuliano Antoniol University of Victoria, Victoria,

More information

Refactoring Support Based on Code Clone Analysis

Refactoring Support Based on Code Clone Analysis Refactoring Support Based on Code Clone Analysis Yoshiki Higo 1,Toshihiro Kamiya 2, Shinji Kusumoto 1 and Katsuro Inoue 1 1 Graduate School of Information Science and Technology, Osaka University, Toyonaka,

More information

Are the Classes that use Exceptions Defect Prone?

Are the Classes that use Exceptions Defect Prone? Are the Classes that use Exceptions Defect Prone? Cristina Marinescu LOOSE Research Group Politehnica University of Timişoara, Romania cristina.marinescu@cs.upt.ro ABSTRACT Exception hling is a mechanism

More information

IMPACT OF DEPENDENCY GRAPH IN SOFTWARE TESTING

IMPACT OF DEPENDENCY GRAPH IN SOFTWARE TESTING IMPACT OF DEPENDENCY GRAPH IN SOFTWARE TESTING Pardeep kaur 1 and Er. Rupinder Singh 2 1 Research Scholar, Dept. of Computer Science and Engineering, Chandigarh University, Gharuan, India (Email: Pardeepdharni664@gmail.com)

More information

Eclipse and Java 8. Daniel Megert Platform and JDT Lead Eclipse PMC Member IBM Rational Zurich Research Lab

Eclipse and Java 8. Daniel Megert Platform and JDT Lead Eclipse PMC Member IBM Rational Zurich Research Lab Eclipse and Java 8 Daniel Megert Platform and JDT Lead Eclipse PMC Member IBM Rational Zurich Research Lab Eclipse and Java 8 New Java language features Eclipse features for Java 8 (demo) Behind the scenes

More information

Imagine you ve written a piece of code but then accidentally deleted and lost it.

Imagine you ve written a piece of code but then accidentally deleted and lost it. Why Refactor? Imagine you ve written a piece of code but then accidentally deleted and lost it. Questions: How much time would it take you to reconstruct from scratch what you had the same amount, or more,

More information

Comparing Approaches to Analyze Refactoring Activity on Software Repositories

Comparing Approaches to Analyze Refactoring Activity on Software Repositories Comparing Approaches to Analyze Refactoring Activity on Software Repositories Gustavo Soares a,, Rohit Gheyi a, Emerson Murphy-Hill b, Brittany Johnson b a Department of Computing and Systems, Federal

More information

A New Family of Software Anti-Patterns: Linguistic Anti-Patterns

A New Family of Software Anti-Patterns: Linguistic Anti-Patterns A New Family of Software Anti-Patterns: Linguistic Anti-Patterns Venera Arnaoudova 1,2, Massimiliano Di Penta 3, Giuliano Antoniol 2, Yann-Gaël Guéhéneuc 1 1 Ptidej Team, DGIGL, École Polytechnique de

More information

Introduction to Programming Using Java (98-388)

Introduction to Programming Using Java (98-388) Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;

More information

The Evolution of Project Inter-Dependencies in a Software Ecosystem: the Case of Apache

The Evolution of Project Inter-Dependencies in a Software Ecosystem: the Case of Apache The Evolution of Project Inter-Dependencies in a Software Ecosystem: the Case of Apache Gabriele Bavota 1, Gerardo Canfora 1, Massimiliano Di Penta 1, Rocco Oliveto 2, Sebastiano Panichella 1 1 University

More information

The Journal of Systems and Software

The Journal of Systems and Software The Journal of Systems and Software 86 (2013) 1006 1022 Contents lists available at SciVerse ScienceDirect The Journal of Systems and Software j ourna l ho me page: www.elsevier.com/locate/jss Comparing

More information