@book{e99abf983d92471c9de42bc220a85585,

title = "An Introduction to Slice-Based Cohesion and Coupling Metrics",

abstract = "This report provides an overview of slice-based software metrics. It brings together information about the development of the metrics from Weiser{\textquoteright}s original idea that program slices may be used in the measurement of program complexity, with alternative slice-based measures proposed by other researchers. In particular, it details two aspects of slice-based metric calculation not covered elsewhere in the literature: output variables and worked examples of the calculations. First, output variables are explained, their use explored and standard reference terms and usage proposed. Calculating slice-based metrics requires a clear understanding of {\textquoteleft}output variables{\textquoteright} because they form the basis for extracting the program slices on which the calculations depend. This report includes a survey of the variation in the definition of output variables used by different research groups and suggests standard terms of reference for these variables. Our study identifies four elements which are combined in the definition of output variables. These are the function return value, modified global variables, modified reference parameters and variables printed or otherwise output by the module. Second, slice-based metric calculations are explained with the aid of worked examples, to assist newcomers to the field. Step-by-step calculations of slice-based cohesion and coupling metrics based on the vertices output by the static analysis tool CodeSurfer (R) are presented and compared with line-based calculations.",

keywords = "software metrics, slice-based metrics, cohesion metrics, coupling metrics, code analysis",

author = "Green, {P. D.} and P.C.R. Lane and A. Rainer and S. Scholz",

year = "2009",

language = "English",

series = "UH Technical Report",

publisher = "University of Hertfordshire",

}