Synthesising Interconnections

  • J. L. Fiadeiro
  • A. Lopes
  • T. S. E. Maibaum
Part of the IFIP Advances in Information and Communication Technology book series (IFIPAICT)


In the context of the modular and incremental development of complex systems, viewed as interconnections of interacting components, new dimensions and new problems arise in the calculation of programs from specifications. A particularly important aspect for extending existing methods to address composite systems is the ability, given programs that realise component specifications, to synthesise the interconnections between them in such a way that the system specification is realised. Taking our cue from earlier work on General Systems Theory (Goguen, 1973) and more recent work on parallel program design (Fiadeiro and Maibaum, 1996), we discuss, characterise and provide solutions for the synthesis of interconnections using a categorical framework in which components are modelled as objects (either specifications or programs) and morphisms are used to express interconnections between components.


Synthesis interconnection incremental development complex systems. 


  1. Abadi,M. and Lamport, L. (1993) Composing Specifications. ACM Transactions on Programming Languages and Systems 15 (1), 73–132.CrossRefGoogle Scholar
  2. Back, R. and Kurki-Suonio, R. (1988) Distributed Cooperation with Action Systems. ACM Transactions on Programming Languages and Systems 10 (4), 513–554.zbMATHCrossRefGoogle Scholar
  3. Ciancarini, P. and Hankin, C. (1996), Coordination Languages and Models,in LNCS 1061, Springer-Verlag.CrossRefGoogle Scholar
  4. Chandy, K. and Misra, J. (1988), Parallel Program Design — A Foundation. Addison-Wesley.zbMATHGoogle Scholar
  5. Dimitrakos, T. (1996), The Implementation of PO-specifications, Research Report, Imperial College.Google Scholar
  6. Ehrig, H. and Mahr, B. (1985), Fundamentals of Algebraic Specification 1: Equations and Initial Semantics. Springer-Verlag.zbMATHCrossRefGoogle Scholar
  7. Emerson, E. and Clarke, E. (1982), Using Branching Time Logic to Synthesize Synchronisation Skeletons. Science of Computer Programming 2, 241–266.zbMATHCrossRefGoogle Scholar
  8. Feather, M. (1987), Language Support for the Specification and Development of Composite Systems. ACM Transactions on Programming Languages and Systems 9 (2), 198–234.CrossRefGoogle Scholar
  9. Feather, M. (1989) Constructing Specifications by Combining Parallel Elaborations. IEEE Transactions on Software Engineering l5 (2), 198–208.CrossRefGoogle Scholar
  10. Fiadeiro, J. (1996) On the Emergence of Properties in Component-Based Systems, in M.Wirsing and M.Nivat (eds) AMAST’96, LNCS 1101, Springer-Verlag, 421–443.Google Scholar
  11. Fiadeiro, J. and Maibaum, T. (1992) Temporal Theories as Modularisation Units for Concurrent System Specification. Formal Aspects of Computing 4 (3), 1992, 239–272.zbMATHCrossRefGoogle Scholar
  12. Fiadeiro, J. and Maibaum, T. (1995) Interrconnecting Formalisms: supporting modularity, reuse and incrementality, in G.E.Kaiser (ed) Proc. 3rd Symp. on Foundations of Software Engineering, ACM Press, 72–80.Google Scholar
  13. Fiadeiro, J. and Maibaum, T. (1996) Categorical Semantics of Parallel Program Design. Science of Computer Programming, in print.Google Scholar
  14. Fickas, S. and Helm, B. (1992), Knowledge Representation and Reasoning in the Design of Composite Systems. IEEE Transactions on Software Engineering l8 (6), 470–482.CrossRefGoogle Scholar
  15. Francez, N. and Forman, I. (1996), Interacting Processes. Addison-Wesley.zbMATHGoogle Scholar
  16. Goguen, J. (1973), Categorical Foundations for General Systems Theory, in F.Pichler and R.Trappl (eds) Advances in Cybernetics and Systems Research, Transcripta Books, 121–130.Google Scholar
  17. Goguen, J. and Burstall, R. (1992), Institutions: Abstract Model Theory for Specification and Programming. Journal of the ACM 39 (1), 95–146.zbMATHMathSciNetCrossRefGoogle Scholar
  18. Goguen, J. and Ginali, S. (1978) A Categorical Approach to General Systems Theory, in G.Klir (ed) Applied General Systems Research, Plenum, 257–270.Google Scholar
  19. Goldblatt, R. (1987) Logics of Time and Computation. CSLI.zbMATHGoogle Scholar
  20. MacLang, S. (1971) Category Theory for the Working Mathematician. Springer-Verlag.Google Scholar
  21. Manna, Z. and Wolper, P. (1984) Synthesis of Communicating Processes from Temporal Logic Specifications. ACM Transactions on Programming Languages and Systems 6 (1), 68–93.zbMATHCrossRefGoogle Scholar
  22. Sassone, V., Nielsen, M. and Winskel, G. (1993), A Classification of Models for Concurrency, in E.Best (ed) CONCUR’93, LNCS 715, Springer-Verlag, 82–96.Google Scholar
  23. Shaw, M. and Garlan, D. (1995), Formulations and Formalisms in Software Architectures, in J.Leeuwen (ed) Computer Science Today, LNCS 1000, Springer-Verlag, 307–323.CrossRefGoogle Scholar
  24. Smith, D. (1990), KIDS — a Semi-Automatic Program Development System. IEEE Transactions on Software Engineering 16 (9), 1024–1043.CrossRefGoogle Scholar
  25. Smith, D. (1993) Constructing Specification Morphisms. Journal of Symbolic Computation 15 (5–6), 571–606.zbMATHMathSciNetCrossRefGoogle Scholar
  26. Srinivas, Y. and Jüllig, R. (1995), Specware™: Formal Support for Composing Software, in B.Möller (ed) Mathematics of Program Construction, LNCS 947, Springer-Verlag.Google Scholar

Copyright information

© IFIP 1997

Authors and Affiliations

  • J. L. Fiadeiro
    • 1
  • A. Lopes
    • 1
  • T. S. E. Maibaum
    • 2
  1. 1.Department of Informatics, Faculty of SciencesUniversity of Lisbon Campo GrandeLisboaPortugal
  2. 2.Imperial College of Science, Technology and MedicineDepartment of ComputingLondonUK

Personalised recommendations