Software engineering implications for formal refinement
Formal methods are widely proposed as an important part of the software design process, but the design of large systems imposes software engineering constraints on the refinement of these specifications into coded modules. The need to separate the role of system building from the refinement of particular components means that relationships between specification units during the refinement process must be reified (that is made into objects) in the software development data-base. The traditional quasi-independent development of system modules can be applied more strongly in the presence of formal specifications, but care must be taken in order to retain the goal of proportionate effort between requirements changes and redevelopment cost. Two ways of addressing these requirements are proposed, the presence of semantic interfaces between specification components as database objects and the use of shared parameters to generic specifications to represent shared sub-specification. In both these cases the interface specification forms the focus of negotiation for shared design decisions. In addition a higher level structuring concept is introduced, the collection which describes the requirements for a set of modules and their inter-relationship.
Keywordsformal specification refinement modularisation
Unable to display preview. Download preview PDF.
- Bjorner 1978.D. Bjorner and C. B. Jones, “The Vienna Development Method: The Meta-Language”, Lecture Notes in Computer Science(61) (1978).Google Scholar
- Dix 1989.A.J. Dix and M.D. Harrison, “Interactive systems design and formal development are incompatible?”, in Proceedings 1988 Refinement Workshop, ed. J McDermid, (to appear Butterworth Scientific) (1989).Google Scholar
- Ehrig 1985.H. Ehrig and B. Mahr, Fundamentals of Algebraic Specification 1, Springer-Verlag (1985).Google Scholar
- MacQueen 1985.D.B. MacQueen, “Modules for standard ML”, pp. 198–207 in Proc. 1984 ACM Symp. on Lisp and Functional Programming (1985).Google Scholar
- Morgan 1985.C. C. Morgan, The schema language, Oxford, Programming Research Group (1985).Google Scholar
- Parnas 1984.D.L. Parnas, P.C. Clements, and D.M. Weiss, “The modular structure of complex systems”, pp. 408–417 in 7th International Conference on Software Engineering (1984).Google Scholar
- Sannella 1985.D. Sannella and A. Tarlecki, “Specifications in an arbitrary institution”, CSR-184-85, University of Edinburgh, Dept. of Computer Science (March 1985).Google Scholar
- Sannella 1982.D.T. Sannella, “Semantics, implementation and pragmatics of Clear, a program specification language”, CST-17-82, PhD thesis, University of Edinburgh (1982).Google Scholar
- Sannella 1986.D.T. Sannella and A. Tarlecki, “Extended ML: an institution-independent framework for formal program development”, in Proc. Workshop on Category Theory and Computer Programming, Springer (1986).Google Scholar
- Sannella 1987.D.T. Sannella and A. Tarlecki, “Toward formal development of programs from algebraic specifications: implementations revisited”, in Proc. 12th Colloq on Trees in Algebra and Programming, Springer (1987).Google Scholar