Results 1 -
6 of
6
Validating Object-Oriented Design Metrics on a Commercial Java Application
, 2000
"... Many of the object-oriented metrics that have been developed by the research community are believed to measure some aspect of complexity. As such, they can serve as leading indicators of problematic classes, for example, those classes that are most fault-prone. If faulty classes can be detected earl ..."
Abstract
-
Cited by 6 (2 self)
- Add to MetaCart
Many of the object-oriented metrics that have been developed by the research community are believed to measure some aspect of complexity. As such, they can serve as leading indicators of problematic classes, for example, those classes that are most fault-prone. If faulty classes can be detected early in the development project's life cycle, mitigating actions can be taken, such as focused inspections. Prediction models using design metrics can be used to identify faulty classes early on. In this paper, we present a cognitive theory of object-oriented metrics and an empirical study which has as objectives to formally test this theory while validating the metrics and to build a post-release fault-proneness prediction model. The cognitive mechanisms which we apply in this study to object-oriented metrics are based on contemporary models of human memory. They are: familiarity, interference, and fan effects. Our empirical study was performed with data from a commercial Java application. We found that Depth of Inheritance Tree (DIT) is a good measure of familiarity and, as predicted, has a quadratic relationship with fault-proneness. Our hypotheses were confirmed for Import Coupling to other classes, Export Coupling and Number of Children metrics. The Ancestor based Import Coupling metrics were not associated with fault-proneness after controlling for the confounding effect of DIT. The prediction model constructed had a good accuracy. Finally, we formulated a cost savings model and applied it to our predictive model. This demonstrated a 42% reduction in post-release costs if the prediction model is used to identify the classes that should be inspected.
An eye-tracking methodology for characterizing program comprehension processes
- ETRA 2006
, 2006
"... ..."
Computer Code as a Medium for Human Communication: Are Programming Languages Improving?
"... Programming languages are not only useful to command computers, they also increasingly are a medium for human communication. I will use the framework of distributed cognition to discuss how knowledge is shared in a team of programmers and to show that computer code plays an important role in it. Th ..."
Abstract
- Add to MetaCart
Programming languages are not only useful to command computers, they also increasingly are a medium for human communication. I will use the framework of distributed cognition to discuss how knowledge is shared in a team of programmers and to show that computer code plays an important role in it. The resulting model of how programmers comprehend code suggests that common grounds play an important role in it. I propose two hypotheses concerning the means used by programmers to refer to common grounds from within their code. The hypotheses imply that modern languages, such as Scala, offer advantages as human communication mediums. I describe an experiment, using an eye-tracking device, that measures the performance of code comprehension. The hypotheses are tested by varying the degree of reference to common grounds.
Cognitive levels and Software Maintenance Sub-tasks
"... This paper describes a case study that was carried out to characterize the behaviour of professional programmers, working on in-vivo software maintenance tasks, in terms of the cognitive levels of Bloom’s taxonomy. Specifically, it evaluates if their behaviour on specific maintenance sub-tasks can b ..."
Abstract
- Add to MetaCart
This paper describes a case study that was carried out to characterize the behaviour of professional programmers, working on in-vivo software maintenance tasks, in terms of the cognitive levels of Bloom’s taxonomy. Specifically, it evaluates if their behaviour on specific maintenance sub-tasks can be associated with specific cognitive levels of the taxonomy. The findings suggest that some such relationships do exist. Indeed, several of the identified relationships are at the most cognitively-demanding levels of Bloom’s taxonomy. Allied with reports from other research in the domain of software maintenance, these relationships suggest that difficult sub-tasks within software maintenance are difficult, in part, because of the cognitive levels that programmers must work at when undertaking them. Thus, they suggest the nature of the support that should be offered to maintenance programmers involved in these tasks. 1.
Better Software Effort Estimation—A Matter of Skill or Environment?
"... Abstract — Estimating the effort of software development is fraught with difficulties, and it is clear that effort should be invested in improving the accuracy and the reliability (consistency) of effort estimates, as well as the assessment of estimate uncertainty. However, it is less clear where to ..."
Abstract
- Add to MetaCart
Abstract — Estimating the effort of software development is fraught with difficulties, and it is clear that effort should be invested in improving the accuracy and the reliability (consistency) of effort estimates, as well as the assessment of estimate uncertainty. However, it is less clear where to target such improvement efforts. We discuss the degree to which it is feasible to improve the expertise of the person(s) who estimate(s), and the environment in which the estimation is performed. The former hinges on what there is to say about the development of estimation expertise and the task characteristics of effort estimation. The latter hinges on what contextual support may be developed in terms of environment control and tools and methodology. We integrate several theories to make a framework for discussing software effort estimation and planning. On the basis of that discussion, we conclude that present guidelines almost exclusively concern the environment and its influence on broad psychological factors, that task-specific estimation expertise is too weak a signal in the noise of biases, and that strengthening this expertise requires new efforts in understanding the task-specific elements in software effort estimation and planning, as well as environmental measures (tools and methodologies) that support expert behavior and expert learning.

