Formalising restructuring operators in a specification process

  • Eric Dubois
  • Nicole Levy
  • Jeanine Souquières
VI — Formal Specification
Part of the Lecture Notes in Computer Science book series (LNCS, volume 289)


Writing “good” specifications is often much more difficult than writing “good” programs to meet them. A major issue concerns the process by which specifications are constructed. A formalisation of the process may be viewed as a sequence of operator applications. In this paper, we present a specific category of operators called “restructuring” operators. These operators are required to describe some structural transformations which can be applied during the specification process in order to enhance the final specification product with qualities such as modularity, minimality and absence of redundancy. We present a specification language including some restructuring operators, the latter being formally expressed in terms of algebraic grounds. Finally, we suggest some uses of these restructuring operators.


specification language process formalisation structuring operators restructuring operators algebraic data types 

Definition de Transformations de Structures dans le Processus de Construction D'une Specification


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

7 Bibliography

  1. (AST,86).
    Astesiano E. and Wirsing, M.: An introduction to ASL, Proc. of the IFIP WG 2.1 Working Conf. on Programme Specifications and Transformations, Bad Tolz, FRG, 1986.Google Scholar
  2. (BER,79).
    Berzins V.A.: Abstract Model Specifications for Data Abstractions, Ph.D. Thesis, MIT, Massachusetts, 1979.Google Scholar
  3. (BUR,80).
    Burstall, M.R. and Goguen, J.A.: The Semantics of Clear, a Specification Language, Proc. of Advanced Course on Abstract Software Specifications, Copenhagen, LNCS 86, 1980, pp. 292–332.Google Scholar
  4. (CAL,86).
    Call for papers: Problem Set for the 4th International Workshop on Software Specification and Design. ACM Software Engineering Notes, April 1986.Google Scholar
  5. (COH,83).
    Cohen, B. and Jackson, M.I.: A Critical Appraisal of Formal Software Development Theories, Methods and Tools, ESPRIT Preparatory Study, 1983, 128p.Google Scholar
  6. (DUB,82).
    Dubois, E., Finance, J-P. and van Lamsweerde, A.: Towards a Deductive Approach to Information System Specification and Design, In: “Current Issues of Requirements Engineering Environments”, Y. Ohno (ed), North-Holland, 1982, pp. 23–31.Google Scholar
  7. (DUB,86).
    Dubois, E., Levy, N. and Souquières, J.: SACSO: Methods and Tools for Constructing Requirements Specifications, Proc. of Third Conference on Software Engineering, Versailles, 1986, pp 177–188.Google Scholar
  8. (DUB,87).
    Dubois E. and Van Lamsweerde A.: Making specification processes explicit, Proc. of 4th International Workshop on Software Specification and Design, IEEE, Monterey (California), 1987, pp. 169–177.Google Scholar
  9. (FUT,84).
    Futatsugi, J., Goguen, A., Jouannaud J-P and Meseguer, J.: Principles of OBJ2, Proc. 11th POPLE, 1984.Google Scholar
  10. (GAN,83).
    Ganzinger, H.: Parameterised Specifications: parameter passing and implementation with respect to observability, ACM transactions on Programming Languages and Systems Vol. 5 no 3, 1983, pp 318–353.Google Scholar
  11. (GAU,86).
    Gaudel, M-Cl.: Towards Structured Algebraic Specifications, ESPRIT'85: Status Report of Continuing Work, North-Holland, 1986, pp 493–510.Google Scholar
  12. (GUT,77).
    Guttag, J.: Abstract Data Types and the Development of Data Structures, CACM, vol. 20, 6, 1977, pp. 396–404.Google Scholar
  13. (GUT,80).
    Guttag, J. and Horning, J.J.: Formal Specification as a Design Tool, Proc. 7th ACM Principles of Programming Language, 1980, pp. 252–261.Google Scholar
  14. (LEV,84).
    Levy, N.: Outils d'Aide à la Construction et Transformation de Types Abstraits Algèbriques, Thèse de troisième cycle, Universitè de Nancy-1, 1984.Google Scholar
  15. (LEV,87).
    Levy N., Piganiol A. and Souquières J.: Specifying with SACSO, Proc. of 4th International Workshop on Software Specification and Design, IEEE, Monterey (California), 1987, pp236–241.Google Scholar
  16. (MEY,85).
    Meyer, B.: Genericity vs Inheritance, Proceedings of the First ACM Symposium on Object-Oriented Programming Systems, Languages and Applications, Portland, Oregon, 1985, pp. 391–405.Google Scholar
  17. (NIP,86).
    Niphow, T.: Non-deterministic Data Types: Models and Implementations, Acta Informatica, vol. 22, no. 6, 1986, pp. 629–661.Google Scholar
  18. (SAN,85).
    Sannella, D. and Wirsing, M.: A Kernel Language for Algebraic Specification and Implementation, Proc. Int. Conf. on Foundations of Computer Theory. Bergholm Sweden, LNCS, 1985, pp308–322.Google Scholar
  19. (SCH,83).
    Scherlis, W. and Scott, D.: First Steps Toward Inferential Programming, I.F.I.P. Congress, 1983, pp 199–212.Google Scholar
  20. (SIN,84).
    Sintzoff, M.: Understanding and Expressing Software Construction, in Program Transformation and Programming Environments, P. Pepper (ed), ASI Nato Series, Springer-Verlag, Berlin, 1984.Google Scholar
  21. (THA,82).
    Thatcher, J., Wagner, E. and Wright J.: Data type specification: parameterisation and the power of specification techniques, ACM TODS Vol. 4(4), 1982, pp711–732.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1987

Authors and Affiliations

  • Eric Dubois
    • 1
  • Nicole Levy
    • 2
  • Jeanine Souquières
    • 2
  1. 1.Philips Research LaboratoryBrusselsBelgium
  2. 2.Centre de Recherche en Informatique de NancyVandoeuvre-les-Nancy CedexFrance

Personalised recommendations