Specifying safety and progress properties with RSL
Concurrent systems are intricate and difficult to reason about. Development of ‘good’ systems require tool supported notations where formal specifications can be related to executable code. This paper presents an example of how the RAISE Specification Language, RSL, can be utilised to abstract the safety properties from a sequential imperative program communicating values, so that they can be supplemented by progress requirements and environment assumptions. In this way a process algebra approach is linked to temporal reasoning within the same language. Developments and system properties are justified by means of the RAISE tools' justification editor. General schemes for specifying safety and progress properties of deterministic state transition systems are provided.
Unable to display preview. Download preview PDF.
- 1.The RAISE Language Group: The RAISE Specification Language, Prentice Hall (1992)Google Scholar
- 2.The RAISE Method Group: The RAISE Development Method, Prentice Hall (to appear)Google Scholar
- 3.P.M. Bruun et. al: RAISE Tools Reference Manual, LACOS/CRI/DOC/13/0/V2 (1993)Google Scholar
- 4.D. Bolignano, M. Debabi: Higher order communicating processes with valuepassing, assignment and return of results, Proceedings of the ISAAC'92 Conference, LNCS 650. Springer Verlag (1992)Google Scholar
- 5.C. George, R. Milne: Specifying and refining concurrent systems. In: C. Morgan, J.C.P. Woodcock (eds): 3rd Refinement Workshop, Springer Verlag (1990)Google Scholar
- 6.C.A.R. Hoare: Communicating Sequential Processes, Prentice Hall (1985)Google Scholar
- 7.R. Milner: Communication and Concurrency, Prentice Hall (1989)Google Scholar
- 8.A. U. Shankar: An introduction to Assertional Reasoning for Concurrent Systems, ACM Clomp. Surveys Vol. 25 No. 3 (Sep. 1993)Google Scholar
- 9.M. Abadi, L. Lamport: Composing Specifications, ACM TOPLAS Vol.15 No.1 (Jan 1993)Google Scholar
- 10.S. S. Lam, A. U. Shankar: A Theory of Interfaces and Modules — I: Composition Theorem, IEEE Transactions on Software Engineering Vol. 20 No. 1 (Jan 1994)Google Scholar