Special PLC Seminar on a topic in Software Engineering: Robert Dondero will talk Friday April 18, room 302, at 12:30. [next door to the usual PLC room] Pizza will be provided. If you plan to attend AND you do not usually attend the PLC lunch, e-mail cbell@cs.princeton.edu so we order enough food. Predicting Software Change Coupling Robert Dondero Abstract: This project was an exploratory study of techniques for predicting future change coupling among a program's source code files. Two source code files are change coupled if programmers edit them together frequently, and separately infrequently. Specifically, this project investigated the predictive power of three approaches: mining of software change logs, software similarity detection, and software proximity detection. "Software mining" extracts patterns from source code databases, that is, version control systems containing source code and change histories. This project explored whether identification of past change coupling among source code files can predict future change coupling among those files. "Software similarity detection" finds files that contain similar, alias cloned, code. This project explored whether identification of similar code among source code files can predict future change coupling among those files. Finally, "software proximity detection" finds files that reference each other heavily. This project explored whether identification of proximity among source code files can predict future change coupling among those files. This project performed the study applied a software miner (created specifically for this project), three preexisting similarity detectors, and two proximity detectors (created specifically for this project) to four large open source code databases at multiple points in time. It determined that software mining generally generated the best predictions of the three approaches, followed by similarity detection, followed by proximity detection. Excessive source code change coupling can be a serious maintenance problem. So the prediction of future change coupling is an important challenge in software engineering. The results of this project shed light on the abilities of the three approaches, both in the absolute and relative senses, to predict change coupling. So the results of this project hold promise for decreasing program maintenance costs.
participants (1)
-
Andrew W. Appel