Spring 2007, 590N Seminar on Porting Changes Between Similar Programs


Organizer: Miryung Kim

12:00pm, Mon April 2,9,16,23,30, room CSE303


In this quarter, we plan to read several papers in Software Engineering, Programming Languages, and Systems to understand the problem space of maintaining similar but different versions of software. There are many examples of maintaining similar but different versions of software: program families, forked open source projects, device drivers in Linux, program versions targeted to different platforms, etc. While maintaining such related versions of software, programmers often need to port bug fixes and adapt patches from one version to another version of software. This maintenance process is often not straightforward because each version of software makes different assumptions about functionality, environment, platforms, etc.

We are going to focus on the following set of research questions in this quarter.

How can we characterize this problem space?
How do programmers diagnose that the same type of bug appears in the related or similar versions of software (or components)?
How do programmers port a patch (or apply a bug fix) for similar versions of software?
What are the existing approaches toward this problem?




4/2 Mon, Study of Collateral Evolution in Linux

Presenter: Miryung

Understanding Collateral Evolution in Linux Device Drivers, EuroSys 2006

Y. Padioleau, J. Lawall, G. Muller

A study paper that discusses the problem of collateral evolution in Linux device driver code.

4/9 Mon, Language for describing a patch

Presenter: Aaron and Matt

Patch (1) Considered Harmful, HotOS 2005

M. E. Fiuczynski, R. Grimm, Y. Coady, D. Walker

††††††††††† A position paper that describes an aspect-oriented language approach for manipulating patches in Linux


SmPL: A domain-specific language for specifying collateral evolutions in Linux device drivers, Electronic Notes in Theoretical Computer Science, Vol 166, Jan 2007

A domain specific language for describing patches.


4/16 Mon, A Tool-based Approach for Maintaining Similar Programs

Presenter: Ben Lerner

Tracking Code Clones in Evolving Software, ICSE 2007

E. Duala-Ekoko and M. Robillard

A tool based approach for managing fine-grained code clones.


4/23 Mon, Practical Maintenance of Product-Line Software

Presenter: Sam and Marius


Using Server Pages to Unify Clones in Web Applications: A Trade-off Analysis, ICSE 2007

D.C. Rajapakse and S. Jarzabek,


Industrial Experience with Building a Web Portal Product Line using a Lightweight, Reactive Approach, ESEC/FSE'05

U. Pattersson and S. Jarzabek



4/30 Mon, Source to Source Transformation Language

Presenter: Kate and Laura

JunGL: a scripting language for refactoring, ICSE 2006, Verbaere, Ettinger, and de Moor.

-         source to source transformation language used for describing refactoring transformations.

We may also discuss scheme macros that provide a powerful mechanism of source to source transformations.




If you are a presenter, you can choose one of the two following options.


  1. Prepare slides and present like regular 590p.


  1. Send an email to 590p mailing list about your review and just lead the discussion. The assigned leader should send his or her review to everyone _a day before_the seminar (which is Monday night). The suggested review format is the following:
    • addressed problem (one sentence)
    • summary (one paragraph)
    • contributions (2-3 points)
    • weaknesses (2-3 points)
    • questions and comments (2-3 points)

In the beginning of the meeting, the assigned leader presents some background information in the related area, summarizes the paper, and discusses key contributions and weaknesses. Letís make 590N more discussion focused. If you are presenting a paper, you are strongly encouraged to suggest research ideas spawning from the paper, share your own anecdote of porting changes among similar programs, and bring examples of similar problems that you observed in open source projects.


Other papers related to this topic


1. Empirical studies


Cloning Considered Harmful Considered Harmful, WCRE 2006, Kapser and Godfrey


Comprehending Reality: Practical Challenges to Software Maintenance Automation

(IWPC 2003) J. Coady


Industrial Experience with Building a Web Portal Product Line using a Lightweight, Reactive Approach, ESEC/FSE 2005, Petterson and Jarzabek.


Evolution in open source software: a case study, ICSM, 2000, Godfrey and Tu


Understanding component co-evolution with a study on Linux, Journal of Emprical Software Engineering, 2006, L. Yu


2. Code clone detectors


DECKARD: Scalable and Accurate Tree-based Detection of Code Clones, ICSE 2007, Jiang, et al.


Very-Large Scale Code Clone Analysis and Visualization of Open Source Programs Using Distributed CCFinder: D-CCFinder. ICSE 2007, Livieri et al.


CP-Miner: A Tool for Finding Copy-paste and Related Bugs in Operating System Code, OSDI 2004, Zhenmin Li, Shan Lu, Suvda Myagmar and Yuanyuan Zhou


3. Source to Source Transformation Language


The TXL source transformation language, Science of Computer Programming, 2006, J. Coady

4. Practical maintenance of product line software


Modeling Product Line Architectures through Change Sets and Relationships, ICSE 2007, S. Hendrickson, A. van der Hoek.


We are currently looking for papers on the topic of maintaining a set of platform dependent software components or a set of members in product line family.