Towards a metrics suite for object oriented design
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Defining and validating high-level design metrics
Defining and validating high-level design metrics
Cohesion and reuse in an object-oriented system
SSR '95 Proceedings of the 1995 Symposium on Software reusability
Object-oriented metrics: measures of complexity
Object-oriented metrics: measures of complexity
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
A cohesion measure for object-oriented classes
Software—Practice & Experience
A Unified Framework for Cohesion Measurement in Object-OrientedSystems
Empirical Software Engineering
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
Cohesion as Changeability Indicator in Object-Oriented Systems
CSMR '01 Proceedings of the Fifth European Conference on Software Maintenance and Reengineering
Improving Cohesion Metrics for Classes by Considering Dependent Instance Variables
IEEE Transactions on Software Engineering
Measuring class cohesion based on dependence analysis
Journal of Computer Science and Technology
The Conceptual Cohesion of Classes
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Improving the applicability of object-oriented class cohesion metrics
Information and Software Technology
Hi-index | 0.00 |
Several cohesion metrics measuring quality of object-oriented programs have been proposed recently. Typically some kind of bipartite usage graph is calculated between methods of a class and its variables, and interpretations of what constitutes methods, variables, usage relation and calculation method have served as sources of variation. By advancing the usage of instance variables by the instance methods to measure relatedness of the class properties, the values given by metrics depend on implementation choices -- how the contents of an object is presented as instance variable values. Another problem is that objects often consist of property sets that are only slightly related internally, but clients of objects make such connections between the property sets by advancing internally seemingly unrelated property sets simultaneously. In this paper, we propose forming cohesion graphs between the clients of a class and its abstract properties. Since abstract properties are usually not specified in program code, in practice we use the actual instance variables instead. Our approach complements the internal cohesion view with external views based on the external usage of class properties. We show results for some parts of the Java SDK 5.0 library.