Composition by Colimit and Formal Software Development

  • Douglas R. Smith
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4060)


Goguen emphasized long ago that colimits are how to compose systems [7]. This paper corroborates and elaborates Goguen’s vision by presenting a variety of situations in which colimits can be mechanically applied to support software development by refinement. We illustrate the use of colimits to support automated datatype refinement, algorithm design, aspect weaving, and security policy enforcement.


Security Policy Mobile Code Policy Transition Programme Language Design Automate Code Generation 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Becker, M., Gilham, L., Smith, D.R.: Planware II: Synthesis of schedulers for complex resource systems. Tech. rep., Kestrel Technology (2003)Google Scholar
  2. 2.
    Burstall, R.M., Goguen, J.A.: Putting theories together to make specifications. In: Proceedings of the Fifth International Joint Conference on Artificial Intelligence IJCAI, Cambridge, MA, August 22–25, pp. 1045–1058 (1977)Google Scholar
  3. 3.
    Burstall, R.M., Goguen, J.A.: The semantics of CLEAR, a specification languge. In: Bjorner, D. (ed.) Abstract Software Specifications. LNCS, vol. 86, Springer, Heidelberg (1980)Google Scholar
  4. 4.
    Coglio, A.: Toward automatic generation of provably correct Java Card applets. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, Springer, Heidelberg (2003)Google Scholar
  5. 5.
    Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Conference Record of the Fourth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 238–252. ACM, New York (1977)CrossRefGoogle Scholar
  6. 6.
    Das, M., Lerner, S., Seigle, M.: ESP: Path-sensitive program verification in polynomial time. In: SIGPLAN 2002 Conference on Programming Language Design and Implementation, PLDI 2002 (2002)Google Scholar
  7. 7.
    Goguen, J.: Categorical foundations for general systems theory. In: Pichler, F., Trappl, R. (eds.) Advances in Cybernetics and Systems Research Transcripta Books, pp. 121–130 (1973)Google Scholar
  8. 8.
    Goguen, J.A.: Parameterized programming. IEEE Transactions on Software Engineering SE-10 5, 528–543 (1984)CrossRefGoogle Scholar
  9. 9.
    Goguen, J.A., Burstall, R.M.: Institutions: Abstract model theory for computer science. Journal of the ACM 39(1), 95–146 (1992)MATHCrossRefMathSciNetGoogle Scholar
  10. 10.
    Hallem, S., Chelf, B., Xie, Y., Engler, D.: A system and language for building system-specific, static analyses. In: SIGPLAN 2002 Conference on Programming Language Design and Implementation, PLDI 2002 (2002)Google Scholar
  11. 11.
    Goguen, J., Burstall, R.: CAT: a system for the structured elaboration of correct programs from structured specifications. Tech. Rep. CSL-118, SRI International (1988)Google Scholar
  12. 12.
    Kestrel Institute. Specware System and documentation (2003),
  13. 13.
    Kiczales, G., et al.: An Overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–353. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  14. 14.
    Manna, Z., Pnueli, A.: The Temporal Logic of Reactive and Concurrent Systems. Springer, New York (1992)Google Scholar
  15. 15.
    Papadimitriou, C.H., Steiglitz, K.: Combinatorial Optimization: Algorithms and Complexity. Prentice Hall, Englewood Cliffs (1982)MATHGoogle Scholar
  16. 16.
    Pavlovic, D., Smith, D.R.: Composition and refinement of behavioral specifications. In: Proceedings of Automated Software Engineering Conference, pp. 157–165. IEEE Computer Society Press, Los Alamitos (2001)Google Scholar
  17. 17.
    Pavlovic, D., Smith, D.R.: Evolving specifications. Tech. rep., Kestrel Institute (2004)Google Scholar
  18. 18.
    Reps, T., Horwitz, S., Sagiv, M.: Precise interprocedural dataflow analysis via graph reachability. In: Conference Record of the Twenty-Second ACM Symposium on Principles of Programming Languages, pp. 49–61. ACM, New York (1995)Google Scholar
  19. 19.
    Schneider, F.: Enforceable security policies. ACM Transactions on Information and System Security 3(1), 30–50 (2000)CrossRefGoogle Scholar
  20. 20.
    Smith, D.R.: KIDS – a semi-automatic program development system. In: IEEE Transactions on Software Engineering Special Issue on Formal Methods in Software Engineering, vol. 16(9), pp. 1024–1043 (1990)Google Scholar
  21. 21.
    Smith, D.R.: Constructing specification morphisms. Journal of Symbolic Computation, Special Issue on Automatic Programming 15 (5-6), 571–606 (1993)MATHGoogle Scholar
  22. 22.
    Smith, D.R.: Toward a classification approach to design. In: Nivat, M., Wirsing, M. (eds.) AMAST 1996. LNCS, vol. 1101, pp. 62–84. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  23. 23.
    Smith, D.R.: Designware: Software development by refinement. In: Hoffman, M., Pavlovic, D., Rosolini, P. (eds.) Proceedings of the Eighth International Conference on Category Theory and Computer Science, pp. 355–370 (1999)Google Scholar
  24. 24.
    Smith, D.R.: Mechanizing the development of software. In: Broy, M., Steinbrueggen, R. (eds.) Calculational System Design, Proceedings of the NATO Advanced Study Institute, pp. 251–292. IOS Press, Amsterdam (1999)Google Scholar
  25. 25.
    Smith, D.R.: A generative approach to aspect-oriented programming. In: Karsai, G., Visser, E. (eds.) GPCE 2004. LNCS, vol. 3286, pp. 39–54. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  26. 26.
    Smith, D.R., Havelund, K.: Automatic enforcement of error-handling policies. Tech. rep., Kestrel Technology (September 2004)Google Scholar
  27. 27.
    Smith, D.R., Lowry, M.R.: Algorithm theories and design tactics. Science of Computer Programming 14(2-3), 305–321 (1990)MATHCrossRefMathSciNetGoogle Scholar
  28. 28.
    Smith, D.R., Parra, E.A., Westfold, S.J.: Synthesis of planning and scheduling software. In: Tate, A. (ed.) Advanced Planning Technology, pp. 226–234. AAAI Press, Menlo Park (1996)Google Scholar
  29. 29.
    Srinivas, Y.V., Jüllig, R.: Specware: Formal support for composing software. In: Möller, B. (ed.) MPC 1995. LNCS, vol. 947, pp. 399–422. Springer, Heidelberg (1995)Google Scholar
  30. 30.
    The Open Group. Security design patterns. Tech. rep. (2004),

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Douglas R. Smith
    • 1
  1. 1.Kestrel InstitutePalo AltoUSA

Personalised recommendations