TL;DR: This paper presents WebMetrics, an automated tool for software metrics collection that uses, as intermediate layer, a set of intuitive relations to describe the source code structure, stored in a database in order to calculate metrics directly by performing SQL queries.
Abstract: There is still no standardization of software measures and metrics extraction tools have to be updated frequently to handle the changes. A possible solution is represented by using an intermediate abstraction layer to decouple the information extraction process from the use of the information. In this way a metrics researcher do not have to deal with language parsing production concepts such as declarations, class specifiers, and base clauses. This paper presents WebMetrics, an automated tool for software metrics collection. The tool uses, as intermediate layer, a set of intuitive relations to describe the source code structure. These relations are stored in a database in order to calculate metrics directly by performing SQL queries. To test the architecture, we applied the tool to the source code of an opensource project in order to compute CK metrics suite.
TL;DR: Software project telemetry facilitates local, in-process decision making through metrics that range from internal product attributes such as size, complexity, and modularity to external process attributessuch as effort, productivity, and reliability.
Abstract: Conventional wisdom in the software engineering research community says that metrics can make project management more effective. Software metrics range from internal product attributes such as size, complexity, and modularity to external process attributes such as effort, productivity, and reliability. Software project telemetry facilitates local, in-process decision making.
TL;DR: The design and the implementation of a tool for collecting and analyzing product metrics in a non-invasive way and, without flexible and transparent tools, nearly impossible to collect data accurately.
TL;DR: This work proposes micro interaction metrics (MIMs), which are metrics that leverage developer interaction information that significantly improve overall defect prediction accuracy when combined with existing software measures, perform well in a cost-effective manner, and provide intuitive feedback that enables developers to recognize their own inefficient behaviors during software development.
Abstract: To facilitate software quality assurance, defect prediction metrics, such as source code metrics, change churns, and the number of previous defects, have been actively studied. Despite the common understanding that developer behavioral interaction patterns can affect software quality, these widely used defect prediction metrics do not consider developer behavior. We therefore propose micro interaction metrics (MIMs), which are metrics that leverage developer interaction information. The developer interactions, such as file editing and browsing events in task sessions, are captured and stored as information by Mylyn, an Eclipse plug-in. Our experimental evaluation demonstrates that MIMs significantly improve overall defect prediction accuracy when combined with existing software measures, perform well in a cost-effective manner, and provide intuitive feedback that enables developers to recognize their own inefficient behaviors during software development.
TL;DR: The research shows that it is possible to define an operational definition of TDD that is amenable to automated recognition, and illustrates the architectural and design issues that must be addressed in order to do so.
Abstract: Test-driven development (TDD) is a style of development named for its most visible characteristic: the design and implementation of test cases prior to the implementation of the code required to make them pass. Many claims have been made for TDD: that it can improve implementation as well as design quality, that it can improve productivity, that it results in 100% coverage, and so forth. However, research to validate these claims has yielded mixed and sometimes contradictory results. We believe that at least part of the reason for these results stems from differing interpretations of the TDD development style, along with an inability to determine whether programmers actually follow whatever definition of TDD is in use.
Zorro is a system designed to automatically determine whether a developer is complying with an operational definition of Test-Driven Development (TDD) practices. Automated recognition of TDD can benefit the software development community in a variety of ways, from inquiry into the "true nature" of TDD, to pedagogical aids to support the practice of test-driven development, to support for more rigorous empirical studies on the effectiveness of TDD in both laboratory and real world settings.
This paper describes the Zorro system, its operational definition of TDD, the analyses made possible by Zorro, two empirical evaluations of the system, and an attempted case study. Our research shows that it is possible to define an operational definition of TDD that is amenable to automated recognition, and illustrates the architectural and design issues that must be addressed in order to do so. Zorro has implications not only for the practice of TDD, but also for software engineering "micro-process" definition and recognition through its parent framework, Software Development Stream Analysis.