Interface slicing: a static program analysis tool for software engineering

Jon Beck · 1993

Program slicing is a source code analysis technique based on control flow and data flow analysis which abstracts generally non-sequential units of code, the units being statements, expressions, or an intermediate form such as quadruples, depending upon the specific technique. The abstraction is based on control- and data-flow rather than upon modularization. The applications of slicing include bug location, program comprehension, requirements verification, program variant integration, parallelization, program maintenance and modification, reusable component generation, dead code elimination, and approximation of module cohesion. The two main current variants of program slicing are static and dynamic slicing. This dissertation presents a new form of static program analysis, called interface slicing, which has potential applications in software reuse, repository-based software development, software maintenance including reverse engineering, and program code and executable size reduction. Interface slicing is derived from the ideas of conventional slicing, but has distinct mathematical basis and procedures. It is at a higher level of granularity than conventional slicing, operating on subprograms, types, and variables rather than upon statements or expressions. This dissertation defines and elaborates interface slicing, defining its mathematical basis, describing the technique for performing it, and describing program transformations which can be accomplished using it. Applications of interface slicing are described and discussed.

Read the paper · More papers on PaperTik