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?
Schedule
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.
A position paper that describes an aspect-oriented language approach for manipulating patches in Linux
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,
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.
Presentation
If you are a presenter, you can choose one of the two following options.
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.