Tal Cohen

M.Sc. Research Thesis

Self-Calibration of Metrics of Java Methods

Towards the Discovery of the Common Programming Practice

Supervisor: Dr. Yossi Gil


Table of contents:


Abstract

Self-calibration is a new technique for the study of internal product metrics, sometime called "observations", and calibrating these against their frequency, or probability of occurring in common programming practice. Data gathering and analysis of the distribution of observations is an important prerequisite for predicting external qualities, and in particular software complexity. The main virtue of our technique is that it eliminates the use of absolute values in decision-making, and allows gauging local values in comparison with a scale computed from a standard and global database. Self-calibration strongly suggests that transformed metric values should be used for creating composite metrics. The transformed metrics are normally the log of the direct metric observations, and they are shown to be more meaningful than the original values.

Borrowing from the discipline of psychology, the research also suggests using method profiles as a visualizing and analysis technique which can be applied to the study of individual projects or categories of methods.

While both self-calibration and method profiles are very general and could in principle be applied to traditional programming languages, the focus of this research is on object-oriented languages using Java. The techniques are employed in a suite of ten numeric and five categorical metrics in a body of well over sixty thousand Java methods.


Seminar lecture slides

The slides are available as (not yet).

Final thesis paper


Software and resources used and developed in this project