Date of Award
Master of Science (MS)
Dr. Harvey Siy
Dr. Sanjukta Bhowmick
Dr. William Mahoney
As large software systems are highly complex, they can be difficult for a developer to understand. If a core subset of a software system could be extracted which contains the most important classes and connections of the larger system, studying this core would be useful for efficiently understanding the overall system. In this research we examine research into core/periphery structures in networks, primarily focusing on the use of k-core decomposition. The extracted dependencies of three open source Java software systems provide the inputs, with forty different versions of these systems analyzed in total. We derive inter-class dependencies from these releases and represent them as undirected graphs. We extract the k-core values by recursively pruning the least connected nodes within the networks, leaving an inner core. The resulting coreness values are analyzed against centrality metrics and high-level communities detected by the Louvain method. Both system level and component level evolution of coreness values for these systems are studied. The validity of this approach for identifying software system cores is discussed and analyzed.
Meyer, Phillip, "IDENTIFYING CORE COMPONENTS IN SOFTWARE SYSTEMS" (2012). Student Work. 2874.
Files over 3MB may be slow to open. For best results, right-click and select "save as..."
A Thesis Presented to the Department of Computer Science and the Faculty of the Graduate College University of Nebraska In Partial Fulfillment of the Requirements for the Degree Master of Science. Copyright 2012 Phillip Meyer.