Deriving modular designs from formal specifications

We consider the problem of designing the top-level modular structure of an implementation. Our starting point is a formal specification of the system. Our approach is to analyse the references to the state variables by the operations of the system. Operations that reference/modify similar sets of variables are likely candidates for grouping into a module. We evaluate the strategy by applying it to a large Z specification of a language-based editor.

[1]  Carroll Morgan,et al.  Specification of the UNIX Filing System , 1984, IEEE Transactions on Software Engineering.

[2]  Jim Welsh,et al.  A design rationale for a language‐based editor , 1991, Softw. Pract. Exp..

[3]  Cliff B. Jones,et al.  Systematic software development using VDM , 1986, Prentice Hall International Series in Computer Science.

[4]  Luke Wildman,et al.  UQ2: A Multilingual Document Editor , 1990 .

[5]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[6]  David W. Embley,et al.  Assessing the quality of abstract data types written in Ada , 1988, Proceedings. [1989] 11th International Conference on Software Engineering.

[7]  I. Sommerville,et al.  Software engineering (2nd ed.) , 1985 .

[8]  Yun Yang,et al.  Tool Integration Techniques , 1991 .

[9]  David A. Carrington,et al.  Object-Z: An Object-Oriented Extension to Z , 1989, FORTE.

[10]  Anthony Hall,et al.  Seven myths of formal methods , 1990, IEEE Software.

[11]  Graeme Smith,et al.  The object-Z specification language: version 1 , 1991 .

[12]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[13]  Song C. Choi,et al.  Extracting and restructuring the design of large systems , 1990, IEEE Software.

[14]  Carroll Morgan,et al.  Programming from specifications , 1990, Prentice Hall International Series in computer science.

[15]  William C. Chu,et al.  A measure for composite module cohesion , 1992, International Conference on Software Engineering.

[16]  Ian J. Hayes,et al.  Specification case studies , 1987 .