Applying the B technologies to CICS
This paper reports on the experiences of IBM Hursley in using the Z notation and the B-Method [Abr95] [Abr93] in developing new function for IBM's CICS product [IBM94].
A major constraint on the project was the need to produce code that not only corresponded to its required function, but also met a number of stringent non-functional requirements in areas such as integration, performance and maintenance.
The Z notation was used to capture the required function, and the resulting specification was hand-translated into AMN. The B-Toolkit, with project-specific extensions, was then used for the development down to PL/X code.
The success of this endeavour is discussed here. The use of Z and the B-Method were very successful in addressing the new functional requirements. Meeting the non-functional requirements, however, was more difficult.
KeywordsProgram Transformation Code Size Final Code Vertical Partitioning Automatic Storage
- [Abr93]J.R. Abrial. B-Technology technical overview. 1993.Google Scholar
- [Abr95]J.R. Abrial. The B-Book — Assigning Programs to Meanings. 1995.Google Scholar
- [ALN+91]J.R. Abrial, M.K.O. Lee, D.S. Neilson, P.N. Scharbach, and I.H. Sorensen. The B-method (software development). In W.J. Prehn, S.; Toetenel, editor, VDM 91. Formal Software Development Methods. 4th International Symposium of VDM Europe Proceeding., volume 2, pages 398–405. BP Res., Sunbury Res. Centre, Sunbury-on-Thames, UK, Springer-Verlag, Berlin, Germany, October 1991. The B-method is a formal software development process for the production of highly reliable, portable and maintainable software which is verifiably correct with respect to its functional specification. The method uses the abstract machine notation (AMN) as the language for specification, design and implementation within the process. AMN is a sugared and extended version of E.W. Dijkstra's (1976), guarded command notation with built-in structuring mechanisms for the construction of large systems. The method is supported over the entire spectrum of activities from specification to implementation by a set of computer-aided tools. (3 Refs).Google Scholar
- [B-C93]B-Core (UK) Ltd. B-Toolkit User Manual, (available from B-Core (UK) Ltd. on request), 1993.Google Scholar
- [CN88]B. P. Collins and C. J. Nix. The use of software engineering, including the Z notation in the development of CICS. Quality Assurance, 14(3), September 1988.Google Scholar
- [CNS89]B. P. Collins, J. E. Nicholls, and I. H. Sorensen. Introducing formal methods: The CICS experience with Z. IBM Technical Report TR12.260, 1989.Google Scholar
- [Dic95]Dick, J. Fault grids: another way of presenting fault counts. Software Reliability and Metrics Club Newsletter, (16), 1995.Google Scholar
- [Hoa95]J. P. Hoare. Application of the B-Method to CICS. In J. P. Bowen and M. Hinchey, editors, Applications of Formal Methods. Prentice Hall International, 1995.Google Scholar
- [IBM89]IBM Corporation. The IBM Publishing Systems BookMaster General Information. Manual GC34-5006, 1989.Google Scholar
- [IBM94]IBM Corporation. CICS Family: General information. Manual GCS3-0155, 1994.Google Scholar
- [NH94]D. S. Neilson and Sorensen I. H. The B-technologies: A system for computer aided programming. In U. H. Engberg, K. G. Larsen, and P. D. Mosses, editors, Proceedings of the 6th Nordic Workshop on Programming Theory, pages 18–35. B-Core (UK) Ltd., BRICS Notes Series, Univ. Aarhus, Denmark, 17–19 October 1994.Google Scholar
- [Spi89]J. M. Spivey. The Z Notation: A Reference Manual. Prentice Hall, Hemel Hempstead, 1989.Google Scholar
- [Wor92]J. B. Wordsworth. Software Development with Z: a Practical Approach to Formal Methods in Software Engineering. Addison-Wesley, 1992.Google Scholar