Miryung Kim

Miryung Kim

 

 

Miryung Kim is a Ph.D. candidate working with Dr. David Notkin at the University of Washington in Seattle. She earned her bachelor's degree at the Korea Advanced Institute of Science Technology in 2001 and her master's degree at the University of Washington in 2003. Her research interests are software evolution, mining software repositories, and human aspects of software development.

 

Logical Structural Diff

 

Job Application Materials

·        Curriculum Vitae

·        Research Statement

·        Teaching Statement

 

Research Projects

I am broadly interested in software engineering with specific interests in software evolution. I focus on the structure of code change as a path to better understanding software evolution and ultimately making it easier for programmers to change software. My Ph.D. research addresses key questions about code-level change. In particular, my first two projects focused on code duplication: I studied copy and paste programming practices by capturing and replaying edits in an IDE and I then built a clone genealogy extractor to study clone evolution in open source projects. By investigating the structure of modifications on code clones, we found that—in contrast to conventional wisdom—there are situations where clones provide value and it is better for them not to be refactored. 

My clone genealogy project led me to realize that matching corresponding code elements between program versions is a fundamental building block for analyzing a sequence of program versions; I wrote a survey paper on existing code matching techniques. Based on the fact that high-level changes are often systematic—e.g., moving a group of related classes and renaming a set of related APIs—I developed a novel rule-based change representation and a tool that determines method-level matches by inferring change-rules.

My experience of inferring high-level API changes led me to think about the role of a structure in understanding code change. While programmers often think about code change in terms of its structure, widely used tools such as CVS or diff represent it as line-level textual differences. To bridge this gap, I developed a new program delta that explicitly captures systematic changes to structural dependencies as logic rules. We believe that our logical structural diff can complement existing uses of diff such as understanding other programmers' code change.

·         Discovering and representing logical structure in code change

·         Automatic inference of structural changes for matching across program versions (ICSE '07)

·         An empirical study of code clone genealogies (FSE '05)

·         An ethnographic study of copy and paste programming practices (ISESE '04)

 

Publications 

 

·    Discovering and Representing Logical Structure in Code Change, Miryung Kim, Jonathan Beall, David Notkin, UW-CSE-TR 07-09-01, September, 2007 (pdf, poster, example output)

·       Automatic Inference of Structural Changes for Matching Across Program Versions, Miryung Kim, David Notkin, and Dan Grossman, the 29th International Conference on Software Engineering, Minneapolis, MN, USA (ICSE 2007, pdf, slides, matching results)

·       SoftGUESS: Visualization and Exploration of Code Clones in Context, Eytan Adar and Miryung Kim, the 29th International Conference on Software Engineering, Minneapolis, MN, USA (ICSE 2007, a formal research demo: pdf)

·       Understanding and Aiding Code Evolution by Inferring Change Patterns, Miryung Kim, the 29th International Conference on Software Engineering, Minneapolis, MN, USA, (ICSE 2007, a doctoral symposium poster: pdf)

·       Program Element Matching for Multi-Version Program Analyses, Miryung Kim and David Notkin, the 3rd International Workshop on Mining Software Repositories (MSR 2006, a survey of matching techniques: pdf)

·       An Empirical Study of Code Clone Genealogies, Miryung Kim, Vibha Sazawal, David Notkin, and Gail C. Murphy, the 10th European Software Engineering Conference and the 13th Foundations of Software Engineering (ESEC/FSE 2005, pdf, slides, clone genealogy data)

·       Using a Clone Genealogy Extractor for Understanding and Supporting Evolution of Code Clones, Miryung Kim and David Notkin, the 2nd International Workshop on Mining Software Repositories (MSR 2005, pdf)

·       An Ethnographic Study of Copy and Paste Programming Practices in OOPL, Miryung Kim, Lawrence Bergman, Tessa Lau, and David Notkin, International Symposium on Empirical Software Engineering, August, 2004 (ISESE 2004, pdf)

·       A Study of Evolution in the Presence of Source-Derived Partial Design Representations, Vibha Sazawal, Miryung Kim, and David Notkin, the 7th International Workshop on the Principles of Software Evolution in September, 2004 (IWPSE 2004, pdf)

·       Supporting Uses of Editing Process Patterns, Miryung Kim, Vibha Sazawal, and David Notkin, Workshop on Behavior Based User Interface Customization, co-located with the International Conference on Intelligent User Interface, January, 2004 (pdf)

 

Teaching

·         CSE 142 TA (intro to computer programming)

·         CSE 503 TA (graduate software engineering)

·   I taught a lecture about crosscutting concerns and aspects and a lecture about mining software repositories.

Short Bio

I am from Seoul, Korea. I attended Seoul Science High School for gifted students and earned my bachelor's degree in Division of Computer Science, Department of Electrical Engineering and Computer Science at the Korea Advanced Institute of Science and Technology in 2001. I graduated as the top of undergraduate students in KAIST and I received an award from the Secretary of Ministry of Science and Technology of Korea in 2001. When I was junior, I studied at the University of British Columbia, Canada as an exchange student.

 

Contact Information

·         Address:

Miryung Kim

Department of Computer Science and Engineering

University of Washington Box 352350

Seattle WA 98195-2350

·         Office Phone: (206) 685-2675

·         Email: please click on one of my publication to find my email address.