10 research outputs found
Recommended from our members
A note on the style metric of Berry and Meekings
The "style metric" of Berry and Meekings is purported to quantify the lucidity of software written in the C programming language. We used a modification of this metric to try and identify error-prone software. Our results indicate that this metric seems to bear little relationship to the density of errors found in programs
Recommended from our members
Programming style authorship analysis
Detecting instances of software theft and plagiarism is a difficult problem. The statistical analysis of peculiar words or phrases known to be used by an author is a common method of settling authorship disputes in English literature. This paper presents a similar method for identifying authorship of programs. The method is based on typographic or layout style program characteristics. our experiments show that these characteristics can be used to determine authorship. The major benefits of the method are that it is simple and easy to automate.CR Categories and Subject Descriptors: D.2.3 [Coding], D.2.3 [Metrics], D.2.2 [Tools and Techniques]Keywords: Programming style, coding style, style analysis, typographic style, authorship identification, plagiarism detection
Recommended from our members
A paradigm for programming style research
Programming style guidelines and automated coding style analyzers have been developed without a solid experimental or theoretical basis. In this paper we make a distinction between typographic (layout) style characteristics and the underlying structural style content and then show through controlled studies that this distinction aids in assessing the influence of the various style factors. The benefits of this distinction are straightforward identification of specific style factors and a better understanding of their effect on program comprehension. The results of our studies have a direct impact on automated coding style assessment programs, programming standards, program maintainability, and code formatting tools.CR Categories and Subject Descriptors: D.2.3 [Coding], D.2.3 [Metrics], D.2.2 [Tools and Techniques]
KEYWORDS: Programming style, coding style, style guidelines, style analysis, complexity measures, typographic style, structural style
Recommended from our members
Investigating software complexity : knot count thresholds
This study concentrates on threshold values for the two most popular control flow metrics: McCabe's cyclomatic complexity and the knot count. We describe the results of an experimental study to empirically determine a threshold value for knot count for student programmers. The experiment was designed to measure the interaction between difficulty, as measured by knot count, and comprehension quiz scores. This experiment had two goals:
1. Show that there are threshold values for the knot count metric.
2. Discover knot count threshold values for students in Pascal and C
Recommended from our members
System architecture metrics: an evaluation
The research described in this dissertation is a study of the application of measurement, or metrics for software engineering. This is not in itself a new idea; the concept of measuring software was first mooted close on twenty years ago. However, examination of what is a considerable body of metrics work, reveals that incorporating measurement into software engineering is rather less straightforward than one might pre-suppose and despite the advancing years, there is still a lack of maturity.
The thesis commences with a dissection of three of the most popular metrics, namely Haistead's software science, McCabe's cyclomatic complexity and Henry and Kafura's information flow - all of which might be regarded as having achieved classic status. Despite their popularity these metrics are all flawed in at least three respects. First and foremost, in each case it is unclear exactly what is being measured: instead there being a preponderance of such metaphysical terms as complexIty and qualIty. Second, each metric is theoretically doubtful in that it exhibits anomalous behaviour. Third, much of the claimed empirical support for each metric is spurious arising from poor experimental design, and inappropriate statistical analysis. It is argued that these problems are not misfortune but the inevitable consequence of the ad hoc and unstructured approach of much metrics research: in particular the scant regard paid to the role of underlying models.
This research seeks to address these problems by proposing a systematic method for the development and evaluation of software metrics. The method is a goal directed, combination of formal modelling techniques, and empirical ealiat%or. The met\io s applied to the problem of developing metrics to evaluate software designs - from the perspective of a software engineer wishing to minimise implementation difficulties, faults and future maintenance problems. It highlights a number of weaknesses within the original model. These are tackled in a second, more sophisticated model which is multidimensional, that is it combines, in this case, two metrics. Both the theoretical and empirical analysis show this model to have utility in its ability to identify hardto- implement and unreliable aspects of software designs. It is concluded that this method goes some way towards the problem of introducing a little more rigour into the development, evaluation and evolution of metrics for the software engineer
Foundations of Empirical Software Engineering: The Legacy of Victor R. Basili
This book captures the main scientific contributions of Victor R. Basili, who has significantly shaped the field of empirical software engineering from its very start. He was the first to claim that software engineering needed to follow the model of other physical sciences and develop an experimental paradigm. By working on this postulate, he developed concepts that today are well known and widely used, including the Goal-Question-Metric method, the Quality-Improvement paradigm, and the Experience Factory. He is one of the few software pioneers who can aver that their research results are not just scientifically acclaimed but are also used as industry standards. On the occasion of his 65th birthday, celebrated with a symposium in his honor at the International Conference on Software Engineering in St. Louis, MO, USA in May 2005, Barry Boehm, Hans Dieter Rombach, and Marvin V. Zelkowitz, each a long-time collaborator of Victor R. Basili, selected the 20 most important research papers of their friend, and arranged these according to subject field. They then invited renowned researchers to write topical introductions. The result is this commented collection of timeless cornerstones of software engineering, hitherto available only in scattered publications
Recommended from our members
A taxonomic analysis of typographic programming style
Program comprehension is important in program testing, debugging, and maintenance. Programming style impacts program understanding. However, there has not been any systematic identification of individual style factors and their contribution to program comprehension. In this thesis we present a programming style taxonomy composed of three classes: typographic (program layout and commenting), control structures, and information structures. Each class is further subdivided into macro (whole program or system) and micro (module or statement) subclasses. The taxonomy reveals many conflicting and unsubstantiated rules in collections of style rules from various publications on programming style. Further, it provides plausible explanations for some of the inconsistent results in programming style research. This thesis concentrates on the isolation of typographic style factors and analysis of their affects on programmer comprehension. General principles of good macro- and microtypographic style are identified and the "book paradigm," a mechanism for implementing the principles, is presented. Four experiments, involving both student and professional programmers, demonstrate that the macro- and micro-typographic principles incorporated into the book paradigm significantly improved program comprehension and maintenance. These results have direct application to programming language design and programming tools such as pretty-printers, language directed editors, style analyzers, and source code control systems
Empirical Study of the Relationship Between Static Software Complexity Metrics and Dynamic Measurements of Pascal and C Programs
Over the past 10 to 15 years, several studies showing relationships among static complexity metrics have been performed. These include the number of lines of code, McCabe's cyclomatic complexity, Halstead's Software Science metrics, control flow metrics, and information flow metrics. Other studies have examined the relationships between static metrics and effort, clarity, productivity, quality, faults, and reliability. However, there have been very few studies that explore the relationship between static complexity metrics and dynamic measurements of programs. This exploratory, empirical study examines this relationship. The issues considered in this work include data collection procedures, the development of a counting strategy, the analysis of the static and dynamic measurements collected, and the examination of the significance between pairs of these measurements. A goal is to arrive at possible hypotheses to be tested in future, more extensive, controlled experiments. The results of this study show that there are significant correlations between some of the static and dynamic measurements.Computing and Information Science