Metrics for quantifying evolutionary changes in Z specifications. Issue 9 (25th April 2013) - Bollin, Andreas
SUMMARY: This article proposes metrics for quantifying changes throughout the evolution of formal software specifications in long living systems. Formal specifications play an important role in the software development life‐cycle by supporting refinement and proof and by providing a basis for comprehension and maintenance activities. However, specifications also undergo evolutionary changes, and these changes are hard to assess because of a lack of suitable measures. This paper proposes and analyzes a set of measures for estimating aspects of a specification's complexity and quality. The measures are based on existing measures for source code, but they have been redefined in the scope of formal Z specifications. Geared towards Z, they are then evaluated concerning their expressiveness by a case study that comprises more than 65, 000 lines of specification text. Finally, the usability of the measures is demonstrated on the Z specification of the Web Service Definition Language during its evolution over a period of about 3 years. Copyright © 2013 John Wiley & Sons, Ltd. Abstract : Formal specifications play an important role in the software development life‐cycle by supporting refinement and proof, and by providing a basis for comprehension and maintenance activities. However, it is still not widely recognized that, during development, specifications also undergo evolutionary changes ‐ improving or diminishing their quality. This article therefore proposes a set of complexity and quality measures, and then makes use of these measures to demonstrate their expressiveness and usability in respect to deterioration effects of formal Z specifications.