My PhD Committee 
Daqing Hou, Advisor
  • Susan Conry
  • Robert Meyer
  • Chris Lynch
  • Tino Tamon 
Eclipse: News | Announce | DL
Patricia (Patty) Jablonski
Engineering Science, School of Engineering
Clarkson University, Potsdam, NY 13699
jablonpa@clarkson.edu
ACM | IEEE
Office: CAMP 115
Phone: (315) 268-3764
Curriculum Vitae
Codase  |  Eclipse Doc  |  Google Code Search  |  Java API  |  Koders  |  Krugle

Paper Publications

Related Software Tools

Related Textbooks

  1. A.V. Aho, M.S. Lam, R. Sethi, and J.D. Ullman, Compilers: Principles, Techniques, & Tools, Second Edition, Addison-Wesley, 2007.

  2. J. Arthorne and C. Laffra, Official Eclipse 3.0 FAQs, Addison-Wesley, 2004.

  3. J. Bloch, Effective Java: Programming Language Guide, Addison-Wesley, 2001.

  4. T. Budd, Understanding Object-Oriented Programming with JAVA, Updated Edition, Addison-Wesley, 2000.

  5. N. Chomsky, Aspects of the Theory of Syntax, MIT Press, 1965.

  6. E. Clayberg and D. Rubel, Eclipse: Building Commercial-Quality Plug-ins, Second Edition, Addison-Wesley, 2006.

  7. J. D'Anjou, S. Fairbrother, D. Kehn, J. Kellerman, and P. McCarthy, The Java Developer's Guide to ECLIPSE, Second Edition, Addison-Wesley, 2005.

  8. M. Fowler, Analysis Patterns: Reusable Object Models, Addison-Wesley, 1997.

  9. M. Fowler, Refactoring: Improving the Design of Existing Code, Addison-Wesley, 1999.

  10. J. Gosling, B. Joy, G. Steele, and G. Bracha, The Java Language Specification, Third Edition, Addison-Wesley, 2005.

  11. I. Horton, Ivor Horton's Beginning Java 2, SDK 1.4 Edition, Wrox Press, 2002.

  12. M. Huth and M. Ryan, Logic in Computer Science: Modelling and Reasoning about Systems, Second Edition, Cambridge University Press, 2004.

  13. E. Jendrock, J. Ball, D. Carson, I. Evans, S. Fordin, and K. Haase, The Java EE 5 Tutorial, Third Edition, Addison-Wesley, 2006.

  14. B.W. Kernighan and P.J. Plauger, The Elements of Programming Style, Second Edition, McGraw-Hill, 1978.

  15. B. Liskov and J. Guttag, Program Development in Java: Abstraction, Specification, and Object-Oriented Design, Addison-Wesley, 2001.

  16. H. Sharp, Y. Rogers, and J. Preece, Interaction Design: Beyond Human-Computer Interaction, Second Edition, John Wiley & Sons, 2007.

  17. M. Sipser, Introduction to the Theory of Computation, Second Edition, Thomson Course Technology, 2006.

  18. A. Steelman, Murach's Beginning Java 2, SDK 1.4, Mike Murach & Associates, 2002.

  19. A. Steelman and J. Murach, Murach's Java Servlets and JSP, Mike Murach & Associates, 2003.

  20. W. Strunk Jr. and E.B. White, The Elements of Style, Fourth Edition, Allyn and Bacon, 2000.

  21. B.E. Wampler, The Essence of Object-Oriented Programming with Java and UML, Addison-Wesley, 2002.

  22. J. Zobel, Writing for Computer Science, Second Edition, Springer, 2005.

Related Work / References

  1. R. Al-Ekram, C. Kapser, R. Holt, and M. Godfrey, "Cloning by Accident: An Empirical Study of Source Code Cloning Across Software Systems", ACM SIGSOFT-IEEE International Symposium on Empirical Software Engineering (ISESE), 2005.  

  2. N. Anquetil and T. Lethbridge, "Assessing the Relevance of Identifier Names in a Legacy Software System", IBM Conference of the Centre for Advanced Studies on Collaborative Research (CASCON), 1998.

  3. T. Apiwattanapong, A. Orso, and M.J. Harrold, "A Differencing Algorithm for Object-Oriented Programs", ACM SIGSOFT-SIGART-IEEE International Conference on Automated Software Engineering (ASE), 2004.

  4. B.S. Baker, "Finding Clones with Dup: Analysis of an Experiment", IEEE Transactions on Software Engineering (TSE), 2007.

  5. B.S. Baker, "On Finding Duplication and Near-Duplication in Large Software Systems", IEEE Working Conference on Reverse Engineering (WCRE), 1995.

  6. T. Bakota, R. Ferenc, and T. Gyimothy, "Clone Smells in Software Evolution", IEEE International Conference on Software Maintenance (ICSM), 2007.

  7. M. Balint, T. Girba, and R. Marinescu, "How Developers Copy", IEEE International Conference on Program Comprehension (ICPC), 2006.

  8. T. Ball, S. Diehl, D. Notkin, and A. Zeller, "Multi-Version Program Analysis", Dagstuhl Seminar Proceedings, 2005.

  9. H.A. Basit, D.C. Rajapakse, and S. Jarzabek, "Beyond Templates: A Study of Clones in the STL and Some General Implications", ACM SIGSOFT-IEEE International Conference on Software Engineering (ICSE), 2005.

  10. S. Bates and S. Horwitz, "Incremental Program Testing Using Program Dependence Graphs", ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL), 1993.

  11. I.D. Baxter, A. Yahin, L. Moura, M. Sant'Anna, and L. Bier, "Clone Detection Using Abstract Syntax Trees", IEEE International Conference on Software Maintenance (ICSM), 1998. 

  12. S. Bellon, "Detection of Software Clones: Tool Comparison Experiment", Universitat Stuttgart.

  13. S. Bellon, R. Koschke, G. Antoniol, J. Krinke, and E. Merlo, "Comparison and Evaluation of Clone Detection Tools", IEEE Transactions on Software Engineering (TSE), 2007.

  14. D. Binkley, "Semantics Guided Regression Test Cost Reduction", IEEE Transactions on Software Engineering (TSE), 1997.

  15. D. Binkley, H. Feild, D. Lawrie, and M. Pighin, "Software Fault Prediction using Language Processing", IEEE Testing: Academic & Industrial Conference - Practice And Research Techniques (TAIC PART), 2007.

  16. D. Binkley, R. Capellini, L.R. Raszewski, and C. Smith, "An Implementation of and Experiment with Semantic Differencing", IEEE International Conference on Software Maintenance (ICSM), 2001.

  17. M. Boshernitsan, "Harmonia: A Flexible Framework for Constructing Interactive Language-Based Programming Tools", Technical Report CSD-01-1149, University of California, Berkeley, 2001.

  18. J. Brockman, "Intentional Programming: A Talk With Charles Simonyi", Edge Foundation, 2004.

  19. B. Caprile and P. Tonella, "Restructuring Program Identifier Names", IEEE International Conference on Software Maintenance (ICSM), 2000.

  20. B. Capson, W. Cherry, J. Devaan, C. Duncan, R.E. Fowkes, C.E. Graham, L.R. James, and T.W. McGuire Jr., "Method and System for Automatically Entering a Data Series into Contiguous Cells of an Electronic Spreadsheet Program or the Like", United States Patent 5701499, 1992.

  21. R. Caron, "Coding Techniques and Programming Practices", Microsoft Corporation, 2000.

  22. B. Carter, "On Choosing Identifiers", ACM SIGPLAN Notices, 1982.

  23. A. Chiu and D. Hirtle, "Beyond Clone Detection", Course Project, University of Waterloo, 2007.

  24. J.R. Cordy, T.R. Dean, and N. Synytskyy, "Practical Language-Independent Detection of Near-Miss Clones", IBM Conference of the Centre for Advanced Studies on Collaborative Research (CASCON), 2004.

  25. R. Cottrell, J.J.C. Chang, R.J. Walker, and J. Denzinger, "Determining Detailed Structural Correspondence for Generalization Tasks", European Software Engineering Conference (ESEC) and ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE), 2007.

  26. R. Cottrell, R.J. Walker, and J. Denzinger, "Jigsaw: A Tool for the Small-Scale Reuse of Source Code", ACM SIGSOFT-IEEE International Conference on Software Engineering (ICSE), 2008.

  27. R. Cottrell, R.J. Walker, and J. Denzinger, "Semi-automating Small-Scale Source Code Reuse via Structural Correspondence", ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE), 2008. (In Press)

  28. F.J. Damerau, "A Technique for Computer Detection and Correction of Spelling Errors", Communications of the ACM, 1964.

  29. F. Deissenboeck and M. Pizka, "Concise and Consistent Naming", Software Quality Journal, Springer, 2006.

  30. F. Detienne, "Reasoning from a Schema and From an Analog in Software Code Reuse", Workshop on Empirical Studies of Programmers (ESP), 1991.

  31. E. Duala-Ekoko and M.P. Robillard, "CloneTracker: Tool Support for Code Clone Management", ACM SIGSOFT-IEEE International Conference on Software Engineering (ICSE), 2008.

  32. E. Duala-Ekoko and M.P. Robillard, "Tracking Code Clones in Evolving Software", ACM SIGSOFT-IEEE International Conference on Software Engineering (ICSE), 2007.

  33. D. Engler, D.Y. Chen, S. Hallem, A. Chou, and B. Chelf, "Bugs as Deviant Behavior: A General Approach to Inferring Errors in Systems Code", ACM SIGOPS Symposium on Operating Systems Principles (SOSP), 2001.

  34. W.S. Evans, C.W. Fraser, and F. Ma, "Clone Detection via Structural Abstraction", IEEE Working Conference on Reverse Engineering (WCRE), 2007. 

  35. R. Falke, "Removing Near-Miss Software Clones", IEEE Working Conference on Reverse Engineering (WCRE), 2007.

  36. H. Feild, D. Binkley, and D. Lawrie, "An Empirical Comparison of Techniques for Extracting Concept Abbreviations from Identifiers", IASTED International Conference on Software Engineering and Applications (SEA), 2006.

  37. J. Ferrante, K.J. Ottenstein, and J.D. Warren, "The Program Dependence Graph and Its Use in Optimization", ACM Transactions on Programming Languages and Systems (TOPLAS), 1987.

  38. F. Fiorvanti, G. Migliarese, and P. Nesi, "Reengineering Analysis of Object-Oriented Systems via Duplication Analysis", ACM SIGSOFT-IEEE International Conference on Software Engineering (ICSE), 2001.

  39. P. Frenzel, R. Koschke, A.P.J. Breu, and K. Angstmann, "Extending the Reflection Method for Consolidating Software Variants into Product Lines", IEEE Working Conference on Reverse Engineering (WCRE), 2007.

  40. M. Gabel, L. Jiang, and Z. Su, "Scalable Detection of Semantic Clones", ACM SIGSOFT-IEEE International Conference on Software Engineering (ICSE), 2008.

  41. K. Gallagher and L. Layman, "Are Decomposition Slices Clones?", IEEE International Conference on Program Comprehension (ICPC), 2003.

  42. W.G. Griswold, "Coping with Crosscutting Software Changes Using Information Transparency", ACM SIGSOFT International Conference on Metalevel Architectures and Separation of Crosscutting Concerns (REFLECTION), 2001.

  43. W.G. Griswold and D. Notkin, "Computer-Aided vs. Manual Program Restructuring", ACM SIGSOFT Software Engineering Notes, 1992. (Summary)

  44. A.N. Habermann and D. Notkin, "Gandalf: Software Development Environments", IEEE Transactions on Software Engineering (TSE), 1986.

  45. S. Hayashi, M. Saeki, and M. Kurihara, "Supporting Refactoring Activities Using Histories of Program Modification", The Institute of Electronics, Information and Communication Engineers (IEICE), 2006.

  46. Y. Higo, T. Kamiya, S. Kusumoto, and K. Inoue, "Method and Implementation for Investigating Code Clones in a Software System", Information and Software Technology, Elsevier, 2006.

  47. R. Holmes and G.C. Murphy, "Using Structural Context to Recommend Source Code Examples", ACM SIGSOFT-IEEE International Conference on Software Engineering (ICSE), 2005. (Summary)

  48. R. Holmes and R.J. Walker, "Lightweight, Semi-Automated Enactment of Pragmatic-Reuse Plans", International Conference on Software Reuse (ICSR), 2008. (In Press)

  49. R. Holmes and R.J. Walker, "Supporting the Investigation and Planning of Pragmatic Reuse Tasks", ACM SIGSOFT-IEEE International Conference on Software Engineering (ICSE), 2007.

  50. R. Holmes and R.J. Walker, "Task-specific Source Code Dependency Investigation", IEEE International Workshop on Visualizing Software for Understanding and Analysis (VISSOFT), 2007.

  51. R. Holmes, R.J. Walker, and G.C. Murphy, "Strathcona Example Recommendation Tool", ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE), 2005.

  52. S. Horwitz, "Identifying the Semantic and Textual Differences Between Two Versions of a Program", ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), 1990.

  53. S. Horwitz and T. Reps, "The Use of Program Dependence Graphs in Software Engineering", ACM SIGSOFT-IEEE International Conference on Software Engineering (ICSE), 1992.

  54. D. Hou, "CPA-SEL: CnP: Practical Editing and Static Analysis Techniques for the Disciplined Management of Copy-paste Induced Code Clones", National Science Foundation (NSF) Submission, Clarkson University, 2007.

  55. E. Hughes, "Checking Spelling in Source Code", ACM SIGPLAN Notices, 2004.

  56. P. Jablonski, "Managing the Copy-and-Paste Programming Practice in Modern IDEs", ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2007.

  57. P. Jablonski, "Techniques for Detecting and Preventing Copy-and-Paste Errors during Software Development", Dissertation Proposal, Clarkson University, 2007.

  58. P. Jablonski and D. Hou, "CReN: A Tool for Tracking Copy-and-Paste Code Clones and Renaming Identifiers Consistently in the IDE", Eclipse Technology Exchange Workshop at OOPSLA (ETX), 2007.

  59. D. Jackson and D.A. Ladd, "Semantic Diff: A Tool for Summarizing the Effects of Modifications", IEEE International Conference on Software Maintenance (ICSM), 1994.

  60. S. Jarzabek and S. Li, "Unifying Clones with a Generative Programming Technique: A Case Study", Journal of Software Maintenance and Evolution: Research and Practice (JSME), John Wiley & Sons, 2006.

  61. L. Jiang, G. Misherghi, Z. Su, and S. Glondu, "DECKARD: Scalable and Accurate Tree-based Detection of Code Clones", ACM SIGSOFT-IEEE International Conference on Software Engineering (ICSE), 2007.

  62. L. Jiang, Z. Su, and E. Chiu, "Context-Based Detection of Clone-Related Bugs", European Software Engineering Conference (ESEC) and ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE), 2007.

  63. J.H. Johnson, "Identifying Redundancy in Source Code using Fingerprints", IBM Conference of the Centre for Advanced Studies on Collaborative Research (CASCON), 1993.

  64. J.H. Johnson, "Substring Matching for Clone Detection and Change Tracking", IEEE International Conference on Software Maintenance (ICSM), 1994.

  65. J.H. Johnson, "Visualizing Textual Redundancy in Legacy Source", IBM Conference of the Centre for Advanced Studies on Collaborative Research (CASCON), 1994.

  66. T. Kamiya, S. Kusumoto, and K. Inoue, "CCFinder: A Multilinguistic Token-based Code Clone Detection System for Large Scale Source Code", IEEE Transactions on Software Engineering (TSE), 2002.

  67. C. Kapser and M.W. Godfrey, "Aiding Comprehension of Cloning Through Categorization", ACM SIGSOFT-IEEE International Workshop on Principles of Software Evolution (IWPSE), 2004.

  68. C. Kapser and M.W. Godfrey, "'Cloning Considered Harmful' Considered Harmful", IEEE Working Conference on Reverse Engineering (WCRE), 2006. (Summary)

  69. C. Kapser and M.W. Godfrey, "Improved Tool Support for the Investigation of Duplication in Software", IEEE International Conference on Software Maintenance (ICSM), 2005.

  70. C. Kapser and M.W. Godfrey, "Toward a Taxonomy of Clones in Source Code: A Case Study", International Workshop on Evolution of Large-scale Industrial Software Applications (ELISA), 2003.

  71. C.J. Kapser and M.W. Godfrey, "Supporting the Analysis of Clones in Software Systems: A Case Study", Journal of Software Maintenance and Evolution: Research and Practice (JSME), John Wiley & Sons, 2005.

  72. C. Kelleher, D. Cosgrove, D. Culyba, C. Forlines, J. Pratt, and R. Pausch, "Alice2: Programming without Syntax Errors", ACM SIGCHI Symposium on User Interface Software and Technology (UIST), 2002.

  73. M. Kim, "Ethnographic Study of Copy and Paste Programming Practices in OOPL", Qualification Exam Report, University of Washington, 2003. (Summary)

  74. M. Kim, "Understanding and Aiding Code Evolution by Inferring Change Patterns", ACM SIGSOFT-IEEE International Conference on Software Engineering (ICSE), 2007. (Summary)

  75. M. Kim and D. Notkin, "Automatic Inference of Structural Changes for Matching Across Program Versions", ACM SIGSOFT-IEEE International Conference on Software Engineering (ICSE), 2007.

  76. M. Kim and D. Notkin, "Program Element Matching for Multi-Version Program Analyses", ACM SIGSOFT-IEEE International Workshop on Mining Software Repositories (MSR), 2006.

  77. M. Kim and D. Notkin, "Using a Clone Genealogy Extractor for Understanding and Supporting Evolution of Code Clones", ACM SIGSOFT-IEEE International Workshop on Mining Software Repositories (MSR), 2005.

  78. M. Kim, L. Bergman, T.A. Lau, and D. Notkin, "An Ethnographic Study of Copy and Paste Programming Practices in OOPL", ACM SIGSOFT-IEEE International Symposium on Empirical Software Engineering (ISESE), 2004. (Summary)

  79. M. Kim, V. Sazawal, D. Notkin, and G.C. Murphy, "An Empirical Study of Code Clone Genealogies", ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE), 2005.

  80. A.J. Ko and B.A. Myers, "Barista: An Implementation Framework for Enabling New Tools, Interaction Techniques and Views in Code Editors", ACM SIGCHI Conference on Human Factors in Computing Systems (CHI), 2006.

  81. A.J. Ko, H.H. Aung, and B.A. Myers, "Design Requirements for More Flexible Structured Editors from a Study of Programmers' Text Editing", ACM SIGCHI Conference on Human Factors in Computing Systems (CHI), 2005.

  82. A.J. Ko, H.H. Aung, and B.A. Myers, "Eliciting Design Requirements for Maintenance-Oriented IDEs: A Detailed Study of Corrective and Perfective Maintenance Tasks", ACM SIGSOFT-IEEE International Conference on Software Engineering (ICSE), 2005.

  83. R. Komondoor and S. Horwitz, "Semantics-Preserving Procedure Extraction", ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL), 2000.

  84. R. Komondoor and S. Horwitz, "Tool Demonstration: Finding Duplicated Code Using Program Dependencies", ACM SIGPLAN European Symposium on Programming (ESOP), 2001.

  85. R. Komondoor and S. Horwitz, "Using Slicing to Identify Duplication in Source Code", International Symposium on Static Analysis (SAS), 2001.

  86. R. Koschke, "Software Clone Detection Survey", Dagstuhl Seminar, 2006.

  87. R. Koschke, "Survey of Research on Software Clones", Dagstuhl Seminar Proceedings, 2006.

  88. R. Koschke, A. Lakhotia, E. Merlo, and A. Walenstein, "Duplication, Redundancy, and Similarity in Software", The International Conference and Research Center for Computer Science (Schloss Dagstuhl), 2006.

  89. J. Krinke, "A Study of Consistent and Inconsistent Changes to Code Clones", IEEE Working Conference on Reverse Engineering (WCRE), 2007.

  90. J. Krinke, "Identifying Similar Code with Program Dependence Graphs", IEEE Working Conference on Reverse Engineering (WCRE), 2001.

  91. J.B. Kruskal, "An Overview of Sequence Comparison: Time Warps, String Edits, and Macromolecules", SIAM Review, 1983.

  92. V. Kruskal, "Managing Multi-Version Programs with an Editor", IBM Journal of Research and Development, 1984.

  93. A. Kuhn and S. Ducasse, "Enriching Reverse Engineering with Semantic Clustering", IEEE Working Conference on Reverse Engineering (WCRE), 2005.

  94. A. Kuhn, S. Ducasse, and T. Girba, "Semantic Clustering: Identifying Topics in Source Code", Information and Software Technology, Elsevier, 2006.

  95. T. Kuhn and O. Thomann, "Abstract Syntax Tree", Eclipse Corner Article, 2006.

  96. B. Lague, D. Proulx, J. Mayrand, E.M. Merlo, and J. Hudepohl, "Assessing the Benefits of Incorporating Function Clone Detection in a Development Process", IEEE International Conference on Software Maintenance (ICSM), 1997.

  97. B.M. Lange and T.G. Moher, "Some Strategies of Reuse in an Object-Oriented Programming Environment", ACM SIGCHI Conference on Human Factors in Computing Systems (CHI), 1989.

  98. J. Laski and W. Szermer, "Identification of Program Modifications and its Applications in Software Maintenance", IEEE International Conference on Software Maintenance (ICSM), 1992.

  99. T. LaToza, "A Literature Review of Clone Detection Analysis", Carnegie Mellon University, 2005.

  100. D. Lawrie, C. Morrell, H. Feild, and D. Binkley, "Effective Identifier Names for Comprehension and Memory", Innovations in Systems and Software Engineering, Springer, 2007.

  101. D. Lawrie, C. Morrell, H. Feild, and D. Binkley, "What's in a Name? A Study of Identifiers", IEEE International Conference on Program Comprehension (ICPC), 2006.

  102. D. Lawrie, H. Feild, and D. Binkley, "An Empirical Study of Rules for Well-Formed Identifiers", Journal of Software Maintenance and Evolution: Research and Practice, John Wiley & Sons, 2007.

  103. D. Lawrie, H. Feild, and D. Binkley, "Extracting Meaning from Abbreviated Identifiers", IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM), 2007.

  104. D. Lawrie, H. Feild, and D. Binkley, "Quantifying Identifier Quality: An Analysis of Trends", Empirical Software Engineering, Springer, 2007.

  105. D. Lawrie, H. Feild, and D. Binkley, "Syntactic Identifier Conciseness and Consistency", IEEE International Workshop on Source Code Analysis and Manipulation (SCAM), 2006.

  106. N.G. Leveson, "Intent Specifications: An Approach to Building Human-Centered Specifications", IEEE Transactions on Software Engineering (TSE), 2000.

  107. C. Lewis, "Some Learnability Results for Analogical Generalization", University of Colorado at Boulder, 1988. (Summary)

  108. Z. Li, S. Lu, S. Myagmar, and Y. Zhou, "CP-Miner: A Tool for Finding Copy-paste and Related Bugs in Operating System Code", USENIX-ACM SIGOPS Symposium on Operating Systems Design and Implementation (OSDI), 2004.

  109. Z. Li, S. Lu, S. Myagmar, and Y. Zhou, "CP-Miner: Finding Copy-Paste and Related Bugs in Large-Scale Software Code", IEEE Transactions on Software Engineering (TSE), 2006.

  110. Z. Li and Y. Zhou, "PR-Miner: Automatically Extracting Implicit Programming Rules and Detecting Violations in Large Software Code", ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE), 2005. (Summary)

  111. B. Liblit, A. Aiken, A.X. Zheng, and M.I. Jordan, "Bug Isolation via Remote Program Sampling", ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), 2003.

  112. C. Liu, C. Chen, J. Han, and P. Yu, "GPLAG: Detection of Software Plagiarism by Program Dependence Graph Analysis", ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD), 2006.

  113. A. Lozano, M. Wermelinger, and B. Nuseibeh, "Evaluating the Harmfulness of Cloning: A Change Based Experiment", ACM SIGSOFT-IEEE International Workshop on Mining Software Repositories (MSR), 2007.

  114. D. Mandelin, L. Xu, R. Bodik, and D. Kimelman, "Jungloid Mining: Helping to Navigate the API Jungle", ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), 2005. (Summary)

  115. Z.A. Mann, "Three Public Enemies: Cut, Copy, and Paste", IEEE Computer Magazine, 2006.

  116. P. Miller, J. Pane, G. Meter, and S. Vorthmann, "Evolution of Novice Programming Environments: The Structure Editors of Carnegie Mellon University", Interactive Learning Environments (ILE), 1994.

  117. R.C. Miller and B.A. Myers, "Interactive Simultaneous Editing of Multiple Text Regions", USENIX Annual Technical Conference, 2001.

  118. H.L. Morgan, "Spelling Correction in Systems Programs", Communications of the ACM, 1970.

  119. S. Niezgoda and T.P. Way, "SNITCH: A Software Tool for Detecting Cut and Paste Plagiarism", ACM SIGCSE Technical Symposium on Computer Science Education, 2006.

  120. D. Notkin, "The GANDALF Project", The Journal of Systems and Software, Elsevier, 1985.

  121. S.P. Reiss, "PECAN: Program Development Systems that Support Multiple Views", IEEE Transactions on Software Engineering (TSE), 1985.

  122. S.P. Reiss, "Pecan: Program Development Systems that Support Multiple Views", ACM SIGSOFT-IEEE International Conference on Software Engineering (ICSE), 1984.

  123. M.B. Rosson and J.M. Carroll, "The Reuse of Uses in Smalltalk Programming", ACM Transactions on Computer-Human Interaction (TOCHI), 1996.

  124. C.K. Roy and J.R. Cordy, "A Survey on Software Clone Detection Research", Technical Report 2007-541, Queen's University, 2007.

  125. C.K. Roy and J.R. Cordy, "NICAD: Accurate Detection of Near-Miss Intentional Clones Using Flexible Pretty-Printing and Code Normalization", IEEE International Conference on Program Comprehension (ICPC), 2008.

  126. C.K. Roy and J.R. Cordy, "Scenario-Based Comparison of Clone Detection Techniques", IEEE International Conference on Program Comprehension (ICPC), 2008.

  127. N. Sahavechaphan and K. Claypool, "XSnippet: Mining For Sample Code", ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2006.

  128. S. Schleimer, D.S. Wilkerson, and A. Aiken, "Winnowing: Local Algorithms for Document Fingerprinting", ACM SIGMOD International Conference on Management of Data (SIGMOD) and Principles of Database Systems (PODS), 2003.

  129. M.M. Schrage, "Proxima - A Presentation-Oriented Editor for Structured Documents", PhD Thesis, Utrecht University, 2004.

  130. C. Simonyi, "Program Identifier Naming Conventions (Hungarian Notation)", Microsoft Corporation, 1999.

  131. C. Simonyi, M. Christerson, and S. Clifford, "Intentional Software", ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2006.

  132. R. Tairas, "Clone Detection Literature", The University of Alabama at Birmingham.

  133. T. Teitelbaum and T. Reps, "The Cornell Program Synthesizer: A Syntax-Directed Programming Environment", Communications of the ACM (CACM), 1981.

  134. R.M.H. Ting and J. Bailey, "Mining Minimal Contrast Subgraph Patterns", SIAM International Conference on Data Mining (SDM), 2006.

  135. M. Toomim, A. Begel, and S.L. Graham, "Managing Duplicated Code with Linked Editing", IEEE Symposium on Visual Languages – Human Centric Computing (VLHCC), 2004.

  136. Y. Ueda, T. Kamiya, S. Kusumoto, and K. Inoue, "Gemini: Maintenance Support Environment Based on Code Clone Analysis", IEEE International Symposium on Software Metrics (METRICS), 2002.

  137. J.R. Ullmann, "An Algorithm for Subgraph Isomorphism", Journal of the ACM (JACM), 1976. 

  138. T.A. Wagner and S.L. Graham, "Efficient and Flexible Incremental Parsing", ACM Transactions on Programming Languages and Systems (TOPLAS), 1998.

  139. V. Weckerle, "CPC: An Eclipse Framework for Automated Clone Life Cycle Tracking and Update Anomaly Detection", Master's Thesis, Free University of Berlin, 2008.

  140. T. Widmer, "Unleashing the Power of Refactoring", Eclipse Corner Article, 2007.

  141. Y. Xie and D. Engler, "Using Redundancies to Find Errors", IEEE Transactions on Software Engineering (TSE), 2003.

  142. Z. Xing and E. Stroulia, "Differencing Logical UML Models", Automated Software Engineering, Kluwer Academic Publishers, 2007.

  143. Z. Xing and E. Stroulia, "UMLDiff: An Algorithm for Object-Oriented Design Differencing", ACM SIGSOFT-SIGART-IEEE International Conference on Automated Software Engineering (ASE), 2005.

  144. W. Yang, "Identifying Syntactic Differences Between Two Programs", Software - Practice & Experience, John Wiley & Sons, 1991.

  145. F.K. Zadeck, "Incremental Data Flow Analysis in a Structured Program Editor", ACM SIGPLAN Symposium on Compiler Construction (SCC), 1984.

Summer 2008

In Summer 2008, I stayed on campus to make progress on my research. I have started work on a plug-in, named LexId, that infers patterns across identifers in copy-and-pasted code. I also have submitted some re-worked papers. Our research group, Software Engineering Research Laboratory (SERL), now has a website with a Bugzilla and CVS server.

Spring 2008

In Spring 2008, the semester began with communication between me and Valentin Weckerle of the Free University of Berlin in Germany. Valentin notified me that he was just finishing his Master's Thesis on his tool, CPC. We've discussed the possibility of reusing at least parts of CPC in CnP in the future. Ferosh Jacob, a Masters student at Clarkson, started working on a tool that makes inferences based on commonalities and differences between the structure of clones (Abstract, Slides). And, I have written my first full research paper.

Fall 2007

In Fall 2007, I started the semester by presenting my PhD Proposal, which was accepted by my PhD committee on Wednesday, September 5, 2007. I have now met all of my Qualifying Examination requirements, officially making me a PhD Candidate. This semester, I also presented my research in ECE Seminar, the ETX Workshop and the Doctoral Symposium at OOPSLA, and CS Seminar (which is my best presentation ever). Todd Deshane and I also created a new, simple example: Test. And, CReN users can now join our Google Group/Mailing List.

Summer 2007

In Summer 2007, I took credits on campus in preparation for my PhD Proposal (Qualifying Exam) in August/September. This included completing a prototype of CnP, named CReN, that demonstrates its use in "consistent renaming". I also read more of the related work and started posting summaries above and keeping a list of Code Examples. I also have three examples from the related work converted into Java: Bug Isolation, CP-Miner, and GCC Fortran. Finally, I have submitted to a number of conferences this summer.

Spring 2007

In Spring 2007, I started the initial development of the CnP tool, which is a plug-in written in Java for the Eclipse IDE. I learned the internals of Eclipse by studying its code base. For my EE564 class project, I focused on the incremental building provided by the Eclipse Builder. For my research, I started learning about the Copy and Paste actions as they relate to Eclipse's Java Editor and I continued studying parts of Eclipse's Java Compiler, including Abstract Syntax Trees (ASTs). I presented on the idea of this research during CS Seminar.

Fall 2006

In Fall 2006, my advisor Daqing Hou and I first defined this research topic into a paragraph abstract. I then worked on this topic more for my EE569 class project. In the absence of a suitable wiki and version control system, I simply kept a Research Blog of my progress. By the end of the semester, I completed a short "idea paper" that includes our goals and the expected contributions of this research and a summary of the related work in the field that deals with the detection of software clones and their errors.

Life Lessons And Getting A PhD


Flair  |  Fresh Ideas  |  Grad Eng  |  Integrator  |  JobPostings  |  The Sheet  |  Visitor's Guide

How Do You Know Me?

You might know me from a variety of things.

First, I was raised in the town of Amsterdam, NY. After that phase of my life, I moved to Potsdam, NY, where I've been a student at Clarkson University since 1998. Most of my journey since then can be found in my CV.

Todd Deshane and I have been together since July 2000. Todd Deshane is an author of the Running Xen book. Our Wedding is February 14, 2009.