Formal method integration via heterogeneous notations

Formal Method Integration via Heterogeneous Notations Richard Freeman Paige Doctor of Philosophy Graduate Department of Computer Science University of Toronto 1997 Method integration is the procedure of combining multiple methods to form a new technique. In the context of software engineering, this can involve combining speci cation techniques, rules and guidelines for design and implementation, and sequences of steps for managing an entire development. In current practice, method integration is often an ad-hoc process, where links between methods are de ned on a case-by-case basis. In this dissertation, we examine an approach to formal method integration based on so-called heterogeneous notations: compositions of compatible notations. We set up a basis that can be used to formally de ne the meaning of compositions of formal and semiformal notations. Then, we examine how this basis can be used in combining methods used for system speci cation, design, and implementation. We demonstrate integration using this basis in a pure formal setting, and in a setting involving both formal and semiformal methods. This culminates in a description of a meta-method for formal method integration based on heterogeneous notations, and a discussion of the properties and bene ts obtained through the use of such a method. A number of examples are provided that suggest how heterogeneous notations and integrated methods can be used, and how formal method integration based on the meta-method can occur. ii Acknowledgements First and primary thanks must go to my advisor, Rick Hehner. With Rick's guidance, wisdom, good humour, and enthusiasm, this dissertation has grown from the germ of a rather silly idea to a nal product. Rick is responsible (directly and indirectly) for much of the clarity and conciseness of the dissertation; ambiguity, wa ing, and errors are my responsibility alone. Special acknowledgement goes to my second reader, Pamela Zave, for her detailed, thorough, and careful reading of the dissertation. Her good advice and perceptive comments made the dissertation stronger. I'm also grateful to my committee for `torturing' me for three and a half years. In particular: Ric Holt, John Mylopoulos, Alberto Mendelzon, and Dave Wortman. Their suggestions, criticisms, and thorough grilling sessions helped immensely. Many other people commented on the research or presentation of the dissertation, especially when I was out giving job talks. In particular: Fran cois Pitt, Victor Ng, Jonathan Ostro , Nick Graham, Kasi Periysamy, Peter King, Hanan Lut yya, Mike Bauer, Paul Sorenson, Jim Hoover, Piotr Rudnicki, Phil Brooke, and many others who attended Marktoberdorf 1996. I would especially like to thank those at Marktoberdorf who showed me that many (dubious) ideas sound good after a few rounds of beer. My friends provided much-needed support and distraction during my four and a half years of graduate school. Thanks to: Rob and Caitlin Jarrett, Matt \Plague Boy" Wilson, Ed Sykes, Leo and Andr e Robichaud, Fran cois Pitt, Victor Ng, Arnold Rosenbloom, the CSGSBS, Wayne \The King" Hayes, Ian Maione, Wally Omiotek, Todd Ford, Brian Vaughan, the Commish, Kent Epp, and the rest of the Rangers/Mudhens. I thank NSERC, the Ontario government, NATO, and the Department of Computer Science for their support. Finally, special thanks to my family for putting up with me, and all this strange computer stu . iii