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 softwareas-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 abovecited 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.
[1]
Laurie A. Williams,et al.
Improving developer activity metrics with issue tracking annotations
,
2010,
WETSoM '10.
[2]
Premkumar T. Devanbu,et al.
Latent social structure in open source projects
,
2008,
SIGSOFT '08/FSE-16.
[3]
Jesús M. González-Barahona,et al.
Applying Social Network Analysis to the Information in CVS Repositories
,
2004,
MSR.
[4]
Laurie A. Williams,et al.
Predicting failures with developer networks and social network analysis
,
2008,
SIGSOFT '08/FSE-16.
[5]
Eric S. Raymond,et al.
The cathedral and the bazaar - musings on Linux and Open Source by an accidental revolutionary
,
2001
.
[6]
Michael Gertz,et al.
Mining email social networks in Postgres
,
2006,
MSR '06.
[7]
Anita Sarma,et al.
Tesseract: Interactive visual exploration of socio-technical relationships in software development
,
2009,
2009 IEEE 31st International Conference on Software Engineering.
[8]
Laurie A. Williams,et al.
Secure open source collaboration: an empirical study of linus' law
,
2009,
CCS.