Visual exploration support for cross-project porting
MetadataShow full item record
Maintaining multiple variants of software systems is extremely difficult because developers often port edits and bug fixes during software evolution. This challenge particularly applies to closely related families of open source projects, such as BSD projects (FreeBSD, NetBSD and OpenBSD) with extensive cross-project porting activities. Developers encounter increasing obstacles in maintaining projects, particularly because of the difficulty in understand- ing historical artifacts involved in cross-system porting. Maintainers face the primary challenge of keeping track of the sources of ported edits, as it can be extremely time-consuming to mine historical data and track the source and target of patches. In the worst-case scenario, the maintainer has to mine through all historical data to ascertain the sources of ported code. Although current version control systems like CVS and GIT preserve historical data, the developer cannot easily identify and understand cross-system porting activities. In this thesis, we address the aforementioned issues by designing and implementing software visualization support to analyze the long chain of cross- project porting activities for Open Source Softwares (OSS) and particularly for three BSD projects (FreeBSD, OpenBSD and NetBSD). We take into account the geographically distributed community of OSS developers and maintainers, hosting the visualization of the activities as a web application. This study aims to analyze the effects of visualization on cross-project porting activity awareness. To meet the study’s objective, we developed a web-based awareness tool, VIGNETTE, based on the results of REPERTOIRE  (which identifies the cross-project porting activities in BSD projects using release history). This study focuses on two research questions: (1) How can visualization help novice open-source developers and maintainers gain insights into cross- project (projects evolving from the same code base) porting activities? (2) How can the visualization show the following: (a) a file-level association between peer projects (porting activities in cross-project files with similar file names), (b) the pairwise frequency of porting (the porting activity count between two cross-projects in a year), (c) the patch-file association (same patch id applied to different cross-project files), and (d) the developer to developer association based on cross-project porting activities (number of times the cross-project developers was involved in a common porting activity)? We conducted a user study with graduate students in the role of novice open-source developers interested in learning about cross-project porting activities. The results of the initial study showed that VIGNETTE could be very useful in answering the questions about cross-project porting and in determining who was involved in a particular porting activity and when.