Skip to main content
Log in

Towards a derivational style of distributed system design — An example

  • Special Issue On Knowledge Based Software Engineering
  • Published:
Automated Software Engineering Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • van Lamsweerde, A. & Sintzoff, M. (1979). Formal derivation of strongly correct concurrent programs.Acta Informatica, 12:1–31.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints 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

Download citation

  • Received:

  • Revised:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF00871691

Keywords

Navigation