AURA: A Hybrid Approach to Identify
|
|
- Caroline Parsons
- 5 years ago
- Views:
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 Miryung Kim, David Notkin, Dan Grossman Computer Science & Engineering University of Washington Foo.mA() Foo.mB() Foo.mC()
More informationRecommending 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 informationTemplate-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 informationImproving 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 informationAutomatic 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 informationACUA: 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 informationMatching 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 informationSystematic 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 informationSOFTWARE 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 informationIdentifying 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 informationProgram 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 informationSort-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 informationSERG. 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 informationRefactoring 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 informationA 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 informationPractical 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 informationJSCTracker: 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 information32. 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 informationPractical 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 informationCnP: 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 informationMining 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 informationAutomatically 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 informationEmpirical 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 informationCrash 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 informationAutomatic 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 informationEmpirical 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 informationA 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 informationAnalysing 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 informationHow 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 informationChristoph 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 informationA 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 informationAn 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 informationMining 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 informationEfficient 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 informationMining 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 informationAre 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 informationPredicting 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 informationCan 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 informationMining 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 informationInter-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 informationADVANCED 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 informationAPIEvolutionMiner: 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 informationUsing 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 informationInternational 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 informationA 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 informationAdaptive 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 informationAnalysis 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 informationAnalysing 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 informationQuantifying 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 informationFinding 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 informationProceedings 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 informationStructured 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 informationSummarizing 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
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 informationAutomatically 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 informationHow 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 informationDetection 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 informationMapping 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 informationChurrasco: 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 informationChapter 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 informationMining 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 informationUNSUPERVISED 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 informationSAFEREFACTOR 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 informationJSCTracker: 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 informationIdentification 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 informationImpact 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 informationAn 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 informationLHDiff: 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 informationThe 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 informationFine-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 informationHow 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 informationIdentifying 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 informationEmpirical 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 informationReusing 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 informationAbstract. 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 informationNaCIN 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 informationCOMPARISON 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 informationMining 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 informationChapter 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 informationCombining 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 informationA 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 informationTowards 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 informationEmploying 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 informationExploring 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 informationWeek. 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 informationSpecification 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 informationStudy 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 informationAutomatic 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 informationAutomatic 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 informationCode 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 informationRefactoring 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 informationAre 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 informationIMPACT 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 informationEclipse 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 informationImagine 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 informationComparing 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 informationA 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 informationIntroduction 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 informationThe 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 informationThe 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