Toward Component-Oriented Formal Software Development: An Algebraic Approach

  • Michel Bidoit
  • Donald Sannella
  • Andrzej Tarlecki
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2941)

Abstract

Component based design and development of software is one of the most challenging issues in software engineering. In this paper, we adopt a somewhat simplified view of software components and discuss how they can be conveniently modelled in a framework that provides a modular approach to formal software development by means of stepwise refinement. In particular we take into account an observational interpretation of requirements specifications and study its impact on the definition of the semantics of specifications of (parametrized) components. Our study is carried out in the context of Casl architectural specifications.

Keywords

Hash Table Parametrized Unit Abstract Data Type Local Construction Correct Realization 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [Ada94]
    Ada Reference Manual: Language and Standard Libraries, version 6.0. International standard ISO/IEC 8652:1995(E) (1994), http://www.adahome.com/rm95/
  2. [AS02]
    Aspinall, D., Sannella, D.: From specifications to code in Casl. In: Kirchner, H., Ringeissen, C. (eds.) AMAST 2002. LNCS, vol. 2422, pp. 1–14. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  3. [ABK+02]
    Astesiano, E., Bidoit, M., Kirchner, H., Krieg-Brückner, B., Mosses, P.D., Sannella, D., Tarlecki, A.: Casl: The Common Algebraic Specification Language. Theoretical Computer Science 286, 153–196 (2002)MATHCrossRefMathSciNetGoogle Scholar
  4. [AKBK99]
    Astesiano, E., Krieg-Brückner, B., Kreowski, H.-J. (eds.): Algebraic Foundations of Systems Specification. Springer, Heidelberg (1999)Google Scholar
  5. [BW82]
    Bauer, F., Wössner, H.: Algorithmic Language and Program Development. Springer, Heidelberg (1982)MATHGoogle Scholar
  6. [BH93]
    Bidoit, M., Hennicker, R.: A general framework for modular implementations of modular systems. In: Gaudel, M.-C., Jouannaud, J.-P. (eds.) CAAP 1993, FASE 1993, and TAPSOFT 1993. LNCS, vol. 668, pp. 199–214. Springer, Heidelberg (1993)Google Scholar
  7. [BH98]
    Bidoit, M., Hennicker, R.: Modular correctness proofs of behavioural implementations. Acta Informatica 35(11), 951–1005 (1998)CrossRefMathSciNetGoogle Scholar
  8. [BHW95]
    Bidoit, M., Hennicker, R., Wirsing, M.: Behavioural and abstractor specifications. Science of Computer Programming 25, 149–186 (1995)MATHCrossRefMathSciNetGoogle Scholar
  9. [BST02a]
    Bidoit, M., Sannella, D., Tarlecki, A.: Architectural specifications in Casl. Formal Aspects of Computing 13, 252–273 (2002)MATHCrossRefGoogle Scholar
  10. [BST02b]
    Bidoit, M., Sannella, D., Tarlecki, A.: Global development via local observational construction steps. In: Diks, K., Rytter, W. (eds.) MFCS 2002. LNCS, vol. 2420, pp. 1–24. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  11. [BT96]
    Bidoit, M., Tarlecki, A.: Behavioural satisfaction and equivalence in concrete model categories. In: Kirchner, H. (ed.) CAAP 1996. LNCS, vol. 1059, pp. 241–256. Springer, Heidelberg (1996)Google Scholar
  12. [BG80]
    Burstall, R., Goguen, J.: The semantics of Clear, a specification language. In: Bjorner, D. (ed.) Abstract Software Specifications. LNCS, vol. 86, pp. 292–332. Springer, Heidelberg (1980)Google Scholar
  13. [CoFI03]
    The CoFI Task Group on Semantics. Semantics of the Common Algebraic Specification Language Casl (2003), Available from http://www.cofi.info/
  14. [EK99]
    Ehrig, H., Kreowski, H.-J.: Refinement and implementation. In: [AKBK 1999], pp. 201–242 (1999)Google Scholar
  15. [EKMP82]
    Ehrig, H., Kreowski, H.-J., Mahr, B., Padawitz, P.: Algebraic implementation of abstract data types. Theoretical Computer Science 20, 209–263 (1982)MATHCrossRefGoogle Scholar
  16. [EM85]
    Ehrig, H., Mahr, B.: Fundamentals of Algebraic Specification I: Equations and Initial Semantics. Springer, Heidelberg (1985)MATHGoogle Scholar
  17. [Gan83]
    Ganzinger, H.: Parameterized specifications: parameter passing and implementation with respect to observability. ACM Transactions on Programming Languages and Systems 5, 318–354 (1983)MATHCrossRefGoogle Scholar
  18. [GGM76]
    Giarratana, V., Gimona, F., Montanari, U.: Observability concepts in abstract data type specifications. In: Mazurkiewicz, A. (ed.) MFCS 1976. LNCS, vol. 45, pp. 576–587. Springer, Heidelberg (1976)Google Scholar
  19. [Gin68]
    Ginzburg, A.: Algebraic Theory of Automata. Academic Press, London (1968)MATHGoogle Scholar
  20. [Gog84]
    Goguen, J.: Parameterized programming. IEEE Trans. on Software Engineering SE-10(5), 528–543 (1984)CrossRefGoogle Scholar
  21. [GB92]
    Goguen, J., Burstall, R.: Institutions: abstract model theory for specification and programming. Journal of the ACM 39, 95–146 (1992)MATHCrossRefMathSciNetGoogle Scholar
  22. [GM82]
    Goguen, J., Meseguer, J.: Universal realization, persistent interconnection and implementation of abstract modules. In: Nielsen, M., Schmidt, E.M. (eds.) ICALP 1982. LNCS, vol. 140, pp. 265–281. Springer, Heidelberg (1982)CrossRefGoogle Scholar
  23. [HN94]
    Hennicker, R., Nickl, F.: A behavioural algebraic framework for modular system design and reuse. In: Ehrig, H., Orejas, F. (eds.) Abstract Data Types 1992 and COMPASS 1992. LNCS, vol. 785, pp. 220–234. Springer, Heidelberg (1994)Google Scholar
  24. [Hoa72]
    Hoare, C.A.R.: Proofs of correctness of data representations. Acta Informatica 1, 271–281 (1972)MATHCrossRefGoogle Scholar
  25. [KST97]
    Kahrs, S., Sannella, D., Tarlecki, A.: The definition of Extended ML: a gentle introduction. Theoretical Comp. Sci. 173, 445–484 (1997)MATHCrossRefMathSciNetGoogle Scholar
  26. [Mil71]
    Milner, R.: An algebraic definition of simulation between programs. In: Proc. 2nd Intl. Joint Conf. on Artificial Intelligence, London, pp. 481–489 (1971)Google Scholar
  27. [Pau96]
    Paulson, L.: ML for the Working Programmer, 2nd edn. Cambridge Univ. Press, Cambridge (1996)MATHGoogle Scholar
  28. [Rei81]
    Reichel, H.: Behavioural equivalence — a unifying concept for initial and final specification methods. In: Proc. 3rd Hungarian Comp. Sci. Conference, pp. 27–39 (1981)Google Scholar
  29. [ST88a]
    Sannella, D., Tarlecki, A.: Specifications in an arbitrary institution. Information and Computation 76, 165–210 (1988)MATHCrossRefMathSciNetGoogle Scholar
  30. [ST88b]
    Sannella, D., Tarlecki, A.: Toward formal development of programs from algebraic specifications: implementations revisited. Acta Informatica 25, 233–281 (1988)MATHCrossRefMathSciNetGoogle Scholar
  31. [ST89]
    Sannella, D., Tarlecki, A.: Toward formal development of ML programs: foundations and methodology. In: Díaz, J., Orejas, F. (eds.) TAPSOFT 1989 and CCIPL 1989. LNCS, vol. 352, pp. 375–389. Springer, Heidelberg (1989)Google Scholar
  32. [ST97]
    Sannella, D., Tarlecki, A.: Essential concepts of algebraic specification and program development. Formal Aspects of Computing 9, 229–269 (1997)MATHCrossRefGoogle Scholar
  33. [Sch87]
    Schoett, O.: Data Abstraction and the Correctness of Modular Programming. Ph.D. thesis, report CST-42-87, Dept. of Computer Science, Univ. of Edinburgh (1987)Google Scholar
  34. [Sch90]
    Schoett, O.: Behavioural correctness of data representations. Science of Computer Programming 14, 43–57 (1990)MATHCrossRefMathSciNetGoogle Scholar
  35. [SM02]
    Schröder, L., Mossakowski, T.: HasCasl: Towards integrated specification and development of functional programs. In: Kirchner, H., Ringeissen, C. (eds.) AMAST 2002. LNCS, vol. 2422, pp. 99–116. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  36. [SMT+01]
    Schröder, L., Mossakowski, T., Tarlecki, A., Hoffman, P., Klin, B.: Semantics of architectural specifications in Casl. In: Hussmann, H. (ed.) FASE 2001. LNCS, vol. 2029, pp. 253–268. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  37. [Szy98]
    Szyperski, C.: Component Software: Beyond Object-Oriented Programming. ACM Press, Addison-Wesley, New-York, N.Y.(1998)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Michel Bidoit
    • 1
  • Donald Sannella
    • 2
  • Andrzej Tarlecki
    • 3
  1. 1.Laboratoire Spécification et VérificationCNRS & ENS de CachanFrance
  2. 2.Laboratory for Foundations of Computer ScienceUniversity of EdinburghUK
  3. 3.Institute of InformaticsWarsaw University and Institute of Computer Science, Polish Academy of SciencesWarsawPoland

Personalised recommendations