Skip to Main Content
 

Global Search Box

 
 
 
 

ETD Abstract Container

Abstract Header

Supporting Software Engineering Via Lightweight Forward Static Slicing

Alomari, Hakam W.

Abstract Details

2012, PHD, Kent State University, College of Arts and Sciences / Department of Computer Science.
The dissertation introduces an efficient and highly scalable lightweight forward static slicing approach. The implementation of the approach is applied, in novel ways, to large-scale software systems. Program slicing is a commonly used approach for understanding and detecting the impact of changes to software. That is, given a variable and the location of that variable in a program, the other parts of the program that are affected by this variable can be determined. The approach has been used successfully for many years for various maintenance tasks. For example, slicing was used to help address the Y2K problem by identifying parts of a program that could be impacted by changes on date fields. However, current approaches to program slicing are based on computing the program dependency graph (PDG) and computing the PDG can be very computationally expensive and scales poorly. Additionally, current approaches assume the system being examined can be completely compiled. This is not always the case when a system is undergoing maintenance, in particular during a platform change. The approach taken here does not compute the complete PDG, instead it determines program dependencies locally as needed when computing a slice for a give variable. Due to the efficient nature of the approach it is used to address a number of applications and problems that, in practice cannot be (or are extremely costly) to address with current heavyweight slicing approaches. The dissertation addresses the following specific problems in novel ways. The scalability of the approach is demonstrated for large-scale systems, specifically all the slices for 17 years of versions of the Linux kernel (over 900 versions) is performed. The tool is highly scalable and can generate the slices for all variables of the Linux kernel in less than 15 minutes. How slices change over the history of software system is investigated and slice-based software metrics are introduced that reflect maintenance effort. These metrics are extracted directly from the source code without any other metadata. An approach to estimate the maintenance effort for open-source systems using the new slice-based metrics is also developed. Three different granularities of slice sizes are analyzed. Lastly, different maintenance activities performed during the lifetime of large software systems are modeled with the objective to provide empirical support for Lehman’s laws of software evolution.
Jonathan Maletic, PhD (Advisor)
Feodor Dragan, PhD (Committee Member)
Ruoming Jin, PhD (Committee Member)
Michael Collard, PhD (Committee Member)
John Portman, PhD (Committee Member)
Eugene Gartland, PhD (Committee Chair)
228 p.

Recommended Citations

Citations

  • Alomari, H. W. (2012). Supporting Software Engineering Via Lightweight Forward Static Slicing [Doctoral dissertation, Kent State University]. OhioLINK Electronic Theses and Dissertations Center. http://rave.ohiolink.edu/etdc/view?acc_num=kent1341996135

    APA Style (7th edition)

  • Alomari, Hakam. Supporting Software Engineering Via Lightweight Forward Static Slicing. 2012. Kent State University, Doctoral dissertation. OhioLINK Electronic Theses and Dissertations Center, http://rave.ohiolink.edu/etdc/view?acc_num=kent1341996135.

    MLA Style (8th edition)

  • Alomari, Hakam. "Supporting Software Engineering Via Lightweight Forward Static Slicing." Doctoral dissertation, Kent State University, 2012. http://rave.ohiolink.edu/etdc/view?acc_num=kent1341996135

    Chicago Manual of Style (17th edition)