A Survey of Dynamic Software Metrics <s> Gupta et al. Metrics <s> We examine the functional cohesion of procedures using a data slice abstraction. Our analysis identifies the data tokens that lie on more than one slice as the "glue" that binds separate components together. Cohesion is measured in terms of the relative number of glue tokens, tokens that lie on more than one data slice, and super-glue tokens, tokens that lie on all data slices in a procedure, and the adhesiveness of the tokens. The intuition and measurement scale factors are demonstrated through a set of abstract transformations. > <s> BIB001 </s> A Survey of Dynamic Software Metrics <s> Gupta et al. Metrics <s> Module cohesion describes the degree to which different actions performed by a module contribute towards a unified function. High module cohesion is a desirable property of a program. The program modifications during successive maintenance interventions can have negative effect on the structure of the program resulting in less cohesive modules. Therefore, metrics that measure module cohesion are important for software restructuring during maintenance. The existing static slice based module cohesion metrics significantly overestimate cohesion due to the limitations of static slicing. In this paper, we present a novel program execution based approach to measure module cohesion of legacy software. We define cohesion metrics based on definition-use pairs in the dynamic slices of the outputs. Our approach significantly improves the accuracy of cohesion measurement. We implemented our technique and measured module cohesion for several programs. Cohesion measurements using our technique were found to be more insightful than static slice based measurements. <s> BIB002
Gupta et al. BIB002 re-define module cohesion metrics SFC (Strong Functional Cohesion) and WFC (Weak Functional Cohesion) originally proposed by Bieman and Ott  BIB001 . Gupta et al. BIB002 initiate the dynamic cohesion measurement using program execution based approach on the basis of dynamic slicing (dynamic slice is the set of all statements whose execution had some effect on the value of a given variable). They use dynamic slices of outputs to measure module cohesion. They state that module cohesion metrics based on static slicing approach have got some inadequacies in cohesion measurement. The static measures significantly overestimate the levels of cohesion present in the software. Their approach addresses the drawbacks of static cohesion metrics by considering dynamic behaviour of the programs and designing metrics based on dynamic slices obtained through program execution. The dynamic cohesion metrics are defined on the basis of common definitions, common use and common definitionuse pairs in dynamic slices, which facilitate more precise cohesion measurement than existing static metrics. Authors define SFC as module cohesion obtained from common def-use pairs of each type common to the dynamic slices of all the output variables and WFC as module cohesion obtained from def-use pairs of each type found in dynamic slices of two or more output variables.