Is There Evolution Before Birth? Deterioration Effects of Formal Z Specifications

Formal specifications are not an exception for aging. Furthermore, they stay valid resources only in the case when they have been kept up to date during all evolutionary changes taking place. As specifications are then not just written once, an interesting aspect is whether they do also deteriorate or not. In order to answer this question, this paper addresses the issues on various kinds of changes in the development of formal specifications and how they could be measured. For this, a set of semantic-based measures is introduced and then used in a longitudinal study, assessing the specification of the Web-Service Definition Language. By analyzing all 139 different revisions of it, it is shown that specifications can deteriorate and that it takes effort to keep them constantly at high quality. The results yield in a refined model of software evolution exemplifying these recurring changes.

[1]  Andreas Bollin,et al.  Slice-based Formal Specification Measures - Mapping Coupling and Cohesion Measures to Formal Z , 2010, NASA Formal Methods.

[2]  P.E. Ross The exterminators [software bugs] , 2005, IEEE Spectrum.

[3]  Mark David Weiser,et al.  Program slices: formal, psychological, and practical investigations of an automatic program abstraction method , 1979 .

[4]  Mark Harman,et al.  Slice-based measurement of coupling , 1997 .

[5]  Edmund M. Clarke,et al.  Formal Methods: State of the Art and Future Directions Working Group Members , 1996 .

[6]  Meir M. Lehman,et al.  On understanding laws, evolution, and conservation in the large-program life cycle , 1984, J. Syst. Softw..

[7]  Roland Mittermeir,et al.  Goal-driven combination of software comprehension approaches for component based development , 2001, SSR '01.

[8]  Linda M. Ott,et al.  The relationship between slices and module cohesion , 1989, ICSE '89.

[9]  Tornohiro ODA,et al.  Specification slicing in formal methods of software development , 1993, Proceedings of 1993 IEEE 17th International Computer Software and Applications Conference COMPSAC '93.

[10]  Roland Mittermeir,et al.  Service channels-purpose and tradeoffs , 1998, Proceedings. The Twenty-Second Annual International Computer Software and Applications Conference (Compsac '98) (Cat. No.98CB 36241).

[11]  Andreas Bollin,et al.  Encapsulating targeted component abstractions using software Reflexion Modelling , 2008 .

[12]  Roberto Chinnici,et al.  Web Services Description Language (WSDL) Version 2.0 Part 1: Core Language , 2007 .

[13]  Felix Naumann,et al.  Data fusion , 2009, CSUR.

[14]  Martin Loomes,et al.  Applying software metrics to formal specifications: a cognitive approach , 1998, Proceedings Fifth International Software Metrics Symposium. Metrics (Cat. No.98TB100262).

[15]  Edward Yourdon,et al.  Structured design : fundamentals of a discip!ine of computer proqram and system desiqn , 1979 .

[16]  Nader Nada,et al.  A Formal Risk Assessment Model for Software Evolution * , 2000 .

[17]  David A. Carrington,et al.  Deriving modular designs from formal specifications , 1993, SIGSOFT '93.

[18]  Daniel Jackson,et al.  Software Abstractions - Logic, Language, and Analysis , 2006 .

[19]  李幼升,et al.  Ph , 1989 .

[20]  Keith H. Bennett,et al.  Software maintenance and evolution: a roadmap , 2000, ICSE '00.

[21]  Jim Woodcock,et al.  Using Z - specification, refinement, and proof , 1996, Prentice Hall international series in computer science.

[22]  David W. Binkley,et al.  An empirical study of slice-based cohesion and coupling metrics , 2007, TSEM.

[23]  Roland Mittermeir,et al.  Demand-Driven Specification Partitioning , 2003, JMLC.

[24]  Tong Yi,et al.  Slicing Z specifications , 2004, SIGP.

[25]  Rance Cleaveland,et al.  Using formal specifications to support testing , 2009, CSUR.

[26]  Clemens A. Szyperski,et al.  Modular Programming Languages, 7th Joint Modular Languages Conference, JMLC 2006, Oxford, UK, September 13-15, 2006, Proceedings , 2006, JMLC.

[27]  W. B. Samson,et al.  Predictive software metrics based on a formal specification , 1987 .

[28]  Jonathan P. Bowen,et al.  Software engineering and formal methods , 2008, CACM.

[29]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[30]  Jonathan P. Bowen,et al.  Formal Versus Agile: Survival of the Fittest , 2009, Computer.