Unintrusive Ways to Integrate Formal Specifications in Practice

Formal methods can be neatly woven in with less formal, but more widely-used, industrial-strength methods. We show how to integrate the Larch two-tiered specification method [GHW85a] with two used in the waterfall model of software development: Structured Analysis [Ros77] and Structure Charts [YC79]. We use Larch traits to define data elements in a data dictionary and the functionality of basic activities in Structured Analysis data-flow diagrams; Larch interfaces and traits to define the behavior of modules in Structure Charts. We also show how to integrate loosely formal specification in a prototyping model by discussing ways of refining Larch specifications as code evolves. To provide some realism to our ideas, we draw our examples from a non-trivial Larch specification of the graphical editor for the Miro visual languages [HMT+90].

[1]  J. Doug Tygar,et al.  FORMAL SEMANTICS FOR VISUAL SPECIFICATION OF SECURITY , 1990 .

[2]  Douglas T. Ross,et al.  Structured Analysis (SA): A Language for Communicating Ideas , 1977, IEEE Transactions on Software Engineering.

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

[4]  Shari Lawrence Pfleeger,et al.  Software Engineering: The Production of Quality Software , 1987 .

[5]  James J. Horning,et al.  Report on the Larch Shared Language Version 2.3 , 1990 .

[6]  David Gries,et al.  The Science of Programming , 1981, Text and Monographs in Computer Science.

[7]  J. Doug Tygar,et al.  Miró: Visual Specification of Security , 1990, IEEE Trans. Software Eng..

[8]  Barbee T. Mynatt,et al.  Software Engineering With Student Project Guidance , 1989 .

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

[10]  Brad A. Myers,et al.  The Garnet toolkit reference manuals : support for highly-interactive, graphical user interfaces in Lisp , 1989 .

[11]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[12]  John V. Guttag,et al.  The specification and application to programming of abstract data types. , 1975 .

[13]  Jeannette M. Wing Using Larch to Specify Avalon/C++ Objects , 1990, IEEE Trans. Software Eng..

[14]  José Meseguer,et al.  Principles of OBJ2 , 1985, POPL.

[15]  Shi-Kuo Chang,et al.  Visual Languages and Visual Programming , 1990 .

[16]  Gordon Davies,et al.  Software Engineering: Analysis and Design , 1989 .

[17]  James J. Horning,et al.  Formal specification as a design tool , 1980, POPL '80.

[18]  James J. Horning,et al.  The Larch Family of Specification Languages , 1985, IEEE Software.

[19]  Amy Moormann Zaremski A Larch specification of the Miro editor , 1991 .

[20]  Pamela Zave,et al.  An Operational Approach to Requirements Specification for Embedded Systems , 1982, IEEE Transactions on Software Engineering.

[21]  Douglas T. Ross,et al.  Applications and Extensions of SADT , 1985, Computer.