Abstract
Rederivation of the train signalling protocol developed in the 19th century is used to illustrate the application of several formal techniques to assist in the derivation of an implementation of a simple distributed system from its specification. It was this train signalling protocol that gave rise to the now-familiar concept ofsemaphore. However, a study of the train system shows that there is much more to its protocol than simply the instantiation of the semaphore concept.
The derivation makes use of several formal techniques including weakest precondition calculation, finite differencing, generalization, and weakening of invariants. Informal reasoning is used to treat concerns of availability of information, and availability of control. Opportunities for inserting additional robustness into the derived implementation are identified during the process.
The objective is to demonstrate the degree to which an implementation can bederived, rather than merely verified after some unknown invention process.
Similar content being viewed by others
References
Andrews, G.R. (1989). A method for solving synchronization problems.Science of Computer Programming, 13(1):1–21, December.
Andrews, G.R. (1991).Concurrent Programming Principles and Practice. Benjamin/Cummings.
Back, R.J.R. (1990). Refinement calculus, part ii: Parallel and reactive programs. InStepwise Refinement of Distributed Systems, pages 67–93. Springer-Verlag.
Back, R.J.R. & von Wright, J. (1990). Refinement calculus, part i: Sequential nondeterministic programs. InStepwise Refinement of Distributed Systems, pages 42–66. Springer-Verlag.
Balzer, R. (1986). Transformational implementation: An example. InNew Paradigms for Software Development, pages 227–238. IEEE Computer Society Press. Originally published in IEEE TSE SE-7(1) Jan 1981 pages 3–14.
Balzer, R. & Goldman, N. (1979). Principles of good software specification and their implications for specification languages. InSpecification of Reliable Software, pages 58–67. IEEE Computer Society.
de Bakker, J.W., de Roever, W.-P. & G. Rozenberg, editors, (1990).Stepwise Refinement of Distributed Systems, volume 430 ofLecture Notes in Computer Science. Springer-Verlag.
Dijkstra, E.W. (1976).A discipline of programming. Prentice Hall, Englewood Cliffs, NJ.
Feather, M.S., Fickas, S. & Helm, B.R. (1991). Composite system design: the good news and the bad news. InProceedings of the 6th Annual Knowledge-Based Software Engineering (KBSE) Conference, Syracuse, NY, September 1991, pages 16–25. IEEE Computer Society Press.
Fickas, S. & Helm, B.R. (1992). Knolwedge representation and reasoning in the design of composite systems.IEEE Transactions on Software Engineering, 18(6):470–482.
Halpern, J.Y. (1986). Reasoning about knowledge: an overview. In J.Y. Halpern, editor,Theoretical Aspects of Reasoning About Knowledge: Proceedings of the 1986 Conference, Monterey, CA, pages 1–17. Morgan Kaufmann.
Johnson, W.L., Feather, M.S. & Harris, D.R. (1992). Representation and presentation of requirements knowledge.IEEE Transactions on Software Engineering, 18(10):853–869.
Möeller, B. editor, (1991).Proceedings of the IFIP TC2 Working Conference on Constructing Programs from Specifications, Pacific Grove, CA, USA. North-Holland.
Paige, R. & Koenig, S. (1982). Finite differencing of computable expressions.ACM Transactions on Programming Languages and Systems, 4(3):402–454, July.
Sintzoff, M. (1976). Eliminating blind alleys from backtrack programs. InAutomata Languages and Programming 3, pages 531–557. Edinburgh University Press.
Smith, D.R. (1990) KIDS: A semiautomatic program development system.IEEE Transactions on Software Engineering, 16(9):1024–1043.
van Lamsweerde, A. & Sintzoff, M. (1979). Formal derivation of strongly correct concurrent programs.Acta Informatica, 12:1–31.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Feather, M.S. Towards a derivational style of distributed system design — An example. Autom Software Eng 1, 31–59 (1994). https://doi.org/10.1007/BF00871691
Received:
Revised:
Issue Date:
DOI: https://doi.org/10.1007/BF00871691