Table of Contents
Advances in Software Engineering
Volume 2010, Article ID 913892, 2 pages

New Generation of Software Metrics

1University of Cagliari, 09124 Cagliari, Italy
2University of Rome “Tor Vergata”, 00133 Rome, Italy
3The University of Auckland, 1142 Auckland, New Zealand
4Tsinghua University, Beijing 100084, China

Received 30 December 2010; Accepted 30 December 2010

Copyright © 2010 Giulio Concas et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

Software measurement has always been an issue in software engineering. On one hand, engineering is about designing and building things and modeling, characterizing, monitoring, evaluating, defining, predicting, “prescripting”, controlling, and changing processes and their artifacts; additionally, measurement is essential to verify that the built artifacts comply with their requirements, to validate the product built versus its requirements and design and to keep the production process in control; the old management adage “you can't manage what you don't measure” is valid also in software development. On the other hand, because software is nonmaterial, it is a very difficult beast to measure. The compliance with requirements, which can vary greatly from system to system even in the same domain, is something difficult to “measure”, and it is almost impossible to devise metrics able to support such a measure that is repeatable across different systems. The development effort is perhaps easier to estimate and define across different software technologies and domains—after all it is always a matter of money—but it is still very difficult to measure in the ever changing languages, environments, and technologies.

The difficulty of measuring software is even more critical in present times due to the increasing size and criticality of software within all technological systems, and the frequent changes in architectural paradigms and process models. New development methods, such as agile and lean approaches, the large diffusion of Open Source Software (OSS) products, service oriented architectures, cloud computing and software-as-a-service business models, offshore development, ubiquitous computing, and the increasing integration of software and systems engineering, are examples of how software engineering is coping with the growing complexity of software and its applications. In this scenario, we need even more to be able to measure software products, processes, and competencies.

To this purpose, radically new approaches, methods, and tools are being proposed in the software metrics field. Whereas it is too early to talk of breakthrough innovations and of definitive or also acceptable solutions for the above-cited issues, progress is being made in some interesting directions. Among these, we may mention software product and process metrics derived from complex network theory and in general from theoretical physics studies; social network analysis applied to software products and to developers' relationships; measurement of size, effort, and quality of software developed in innovative ways, such as using agile and lean methodologies and open source projects; new metrics for service-oriented architectures and software-as-a service.

This special issue presents new and relevant research work along these directions. We received 19 submissions and accepted six of them after a thorough peer-review process. These papers cover a broad range of topics in the field of innovative metrics for software, including metrics for OSS maintenance effort and usability, social network analysis applied to software, metrics for model-driven design (MDD), metrics for refactoring, and metrics to assess developers' activity.

In the first paper, titled “The economics of community open source software projects: an empirical analysis of maintenance effort,” the authors, E. Capra et al. aim to empirically compare the growth entropy when maintaining OSS and traditional proprietary software applications. They utilize a sample of 4,289 open source application versions. Analyses are based on data obtained by applying a traditional effort estimation model. The open source projects are compared with data obtained from previous empirical software engineering researches. Findings indicate that open source applications show a slower growth of maintenance effort over time and, therefore, are less subject to the entropy effect.

The second paper, “Improvement of open source software usability: An empirical evaluation from developers’ perspective” by A. Raza et al. presents an empirical investigation to study the impact of five key factors on OSS usability from the developers’ point of view. This paper analyzes a data set of 106 OSS developments from 18 OSS projects of different size. The results from this study provide empirical evidence by showing that all the studied key factors significantly improve OSS usability.

In the paper “A quality model for conceptual models of MDD environments,” the authors, B. Marín et al. present a quality model, which not only encapsulates defect types that are related to conceptual models, but also takes advantage of current standards in order to automate defect detection in MDD environments. The detection of defects is a promising technique to evaluate software quality, which is emerging as a suitable alternative for MDD processes.

In “An empirical study of social networks metrics in object oriented software,” G. Concas et al. study the application to object-oriented software of new metrics, derived from Social Network Analysis. These metrics are compared with other traditional software metrics, like the Chidamber-Kemerer suite, and software graph metrics. They found that the empirical distributions systematically show fat-tails for all the metrics. These features appear to be typical properties of these software metrics.

In the paper “Exploring the eradication of code smells: an empirical and theoretical perspective,” S. Counsell et al. present three studies about Code Smells. Key findings of the study were that first, smells requiring application of simple refactoring interventions were eradicated in favor of smells requiring more complex refactoring interventions; second, a wide range of conflicts and anomalies soon emerged when trying to identify smelly code; an interesting result with respect to comment lines was also observed. Finally, the perceived effort to eradicate a smell may be a key factor in explaining why smell eradication is avoided by developers.

In the last paper “On the use of issue tracking annotations for improving developer activity metrics,” A. Meneely and L. A. Williams propose two annotations to enrich the measurement of collaboration among developers, and to be used in the issue of systems tracking. These annotations record the originator of the solution and the approver of the solution. They examined the online discussions about 602 issues concerning the OpenMRS healthcare web application. Applying social network analysis to the data, they found that approvers are likely to score high in measures of centrality and hierarchical clustering computed on the developers' social network.

We hope you will find this issue stimulating and useful and look forward for your evaluable feedback.

Giulio Concas
Giovanni Cantone
Ewan Tempero
Hongyu Zhang