Abstract Behavior Types: A Foundation Model for Components and Their Composition

  • Farhad Arbab
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2852)


The notion of Abstract Data Type (ADT) has served as a foundation model for structured and object oriented programming for some thirty years. The current trend in software engineering toward component based systems requires a foundation model as well. The most basic inherent property of an ADT, i.e., that it provides a set of operations, subverts some highly desirable properties in emerging formal models for components that are based on the object oriented paradigm.

We introduce the notion of Abstract Behavior Type (ABT) as a higher-level alternative to ADT and propose it as a proper foundation model for both components and their composition. An ABT defines an abstract behavior as a relation among a set of timed-data-streams, without specifying any detail about the operations that may be used to implement such behavior or the data types it may manipulate for its realization. The ABT model supports a much looser coupling than is possible with the ADT’s operational interface, and is inherently amenable to exogenous coordination. We propose that both of these are highly desirable, if not essential, properties for models of components and their composition.

To demonstrate the utility of the ABT model, we describe Reo: an exogenous coordination language for compositional construction of component connectors based on a calculus of channels. We show the expressive power of Reo, and the applicability of ABT, through a number of examples.


Data Item Sink Node Foundation Model Abstract Data Type Component Instance 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Arbab, F.: The IWIM model for coordination of concurrent activities. In: Hankin, C., Ciancarini, P. (eds.) COORDINATION 1996. LNCS, vol. 1061, pp. 34–56. Springer, Heidelberg (1996)Google Scholar
  2. 2.
    Arbab, F.: What do you mean, coordination? In: Bulletin of the Dutch Association for Theoretical Computer Science, NVTI, pp. 11–22 (1998), Available on-line
  3. 3.
    Arbab, F.: A channel-based coordination model for component composition. Technical Report SEN-R0203, Centrum voor Wiskunde en Informatica, Kruislaan 413, 1098 SJ Amsterdam, The Netherlands (February 2002)Google Scholar
  4. 4.
    Arbab, F.: Reo: A channel-based coordination model for component composition. Mathematical Structures in Computer Science (2003)Google Scholar
  5. 5.
    Arbab, F., de Boer, F.S., Bonsangue, M.M., Guillen Scholten, J.V.: MoCha: A framework for coordination using mobile channels. Technical Report SEN-R0128, Centrum voor Wiskunde en Informatica, Kruislaan 413, 1098 SJ Amsterdam, The Netherlands (December 2001)Google Scholar
  6. 6.
    Arbab, F., de Boer, F.S., Bonsangue, M.M.: A coordination language for mobile components. In: Proc. ACM SAC 2000 (2000)Google Scholar
  7. 7.
    Arbab, F., Mavaddat, F.: Coordination through channel composition. In: Arbab, F., Talcott, C. (eds.) COORDINATION 2002. LNCS, vol. 2315, pp. 21–38. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  8. 8.
    Arbab, F., Rutten, J.J.M.M.: A coinductive calculus of component connectors. Technical Report SEN-R0216, Centrum voor Wiskunde en Informatica, Kruislaan 413, 1098 SJ Amsterdam, The Netherlands (September 2002)Google Scholar
  9. 9.
    Arbab, F., de Boer, F.S., Bonsangue, M.M.: A logical interface description language for components. In: Porto, A., Roman, G.-C. (eds.) COORDINATION 2000. LNCS, vol. 1906, pp. 249–266. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  10. 10.
    de Bakker, J.W., Kok, J.N.: Towards a Uniform Topological Treatment of Streams and Functions on Streams. In: Brauer, W. (ed.) ICALP 1985. LNCS, vol. 194, pp. 140–148. Springer, Heidelberg (1985)CrossRefGoogle Scholar
  11. 11.
    Barbosa, L.: Components as Coalgebras. PhD thesis, Universidade do Minho, Braga, Portugal (2001)Google Scholar
  12. 12.
    Bonsangue, M.M., Arbab, F., de Bakker, J.W., Rutten, J.J.M.M., Scutellá, A., Zavattaro, G.: A transition system semantics for the control-driven coordination language manifold. Theoretical Computer Science 240, 3–47 (2000)zbMATHCrossRefMathSciNetGoogle Scholar
  13. 13.
    Broy, M.: A logical basis for component-based system engineering. Technical report, Technische Universität München (November 2000)Google Scholar
  14. 14.
    Broy, M., Stolen, K.: Specification and development of interactive systems. Monographs in Computer Science, vol. 62. Springer, Heidelberg (2001)zbMATHGoogle Scholar
  15. 15.
    Buck, J., Ha, S., Lee, E.A., Messerschmitt, D.G.: Ptolemy: a framework for simulating and prototyping heterogeneous systems. International Journal of Computer Simulation, special issue on Simulation Software Development(3) (January 1990)Google Scholar
  16. 16.
    CORBA. See:
  17. 17.
    de Boer, F.S., Bonsangue, M.M.: A compositional model for confluent dynamic data-flow networks. In: Nielsen, M., Rovan, B. (eds.) MFCS 2000. LNCS, vol. 1893, pp. 212–221. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  18. 18.
    Enterprise JavaBeans, See:
  19. 19.
    Gelernter, D., Carriero, N.: Coordination languages and their significance. Communication of the ACM 35(2), 97–107 (1992)CrossRefGoogle Scholar
  20. 20.
    Gore, J.: Object Structures: Building Object-Oriented Software Components. Addison-Wesley, Reading (1996)zbMATHGoogle Scholar
  21. 21.
    Grimes, R.: Professional DCOM Programming. Wrox Press (1997)Google Scholar
  22. 22.
    Gumm, H.P., Schröder, T.: Covarieties and complete covarieties. In: [29] (1998)Google Scholar
  23. 23.
    Barringer, H., Kuiper, R., Pnueli, A.: A really abstract current model and its temporal logic. In: Proceedings of Thirteenth Annual ACM Symposium on principles of Programming Languages, pp. 173–183. ACM, New York (1986)Google Scholar
  24. 24.
    Hennicker, R., Wirsing, M.: A formal method for the systematic reuse of specification components. In: Broy, M., Wirsing, M. (eds.) CIP 1991. LNCS, vol. 544, pp. 49–75. Springer, Heidelberg (1991)CrossRefGoogle Scholar
  25. 25.
    Huber, F., Rausch, A., Rumpe, B.: Modeling dynamic component interfaces. In: Singh, M., Meyer, B., Gil, J., Mitchell, R. (eds.) Proc. Technology of Object- Oriented Languages and Systems (TOOLS 1998), pp. 58–70. IEEE Computer Society, Los Alamitos (1998)Google Scholar
  26. 26.
    Jacobs, B.: Behaviour-refinement of object-oriented specifications with coinductive correctness proofs. Report CSI-R9618, Computing Science Institute, University of Nijmegen (1996); Also in Bidoit, M., Dauchet, M. (eds.): CAAP 1997, FASE 1997, and TAPSOFT 1997. LNCS, vol. 1214. Springer, Heidelberg (1997)Google Scholar
  27. 27.
    Jacobs, B.: Coalgebraic specifications and models of deterministic hybrid systems. In: Nivat, M., Wirsing, M. (eds.) AMAST 1996. LNCS, vol. 1101, pp. 520–535. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  28. 28.
    Jacobs, B.: Inheritance and cofree constructions. In: Cointe, P. (ed.) ECOOP 1996. LNCS, vol. 1098, pp. 210–231. Springer, Heidelberg (1996)Google Scholar
  29. 29.
    Jacobs, B., Moss, L., Reichel, H., Rutten, J.J.M.M. (eds.): Proceedings of the first international workshop on Coalgebraic Methods in Computer Science (CMCS 1998). Electronic Notes in Theoretical Computer Science, vol. 11. Elsevier Science, B.V. (1998), Available at URL: Google Scholar
  30. 30.
    Jacobs, B., Rutten, J.J.M.M.: A tutorial on (co)algebras and (co)induction. Bulletin of EATCS 62, 222–259 (1997), Available on-line zbMATHGoogle Scholar
  31. 31.
  32. 32.
    Kok, J.N.: Semantic Models for Parallel Computation in Data Flow, Logic- and Object-Oriented Programming. PhD thesis, Vrije Universiteit, Amsterdam (May 1989)Google Scholar
  33. 33.
    Lee, E.A., Parks, T.M.: Dataflow process networks. In: Proceedings of the IEEE, May 1995, vol. 83, pp. 773–801 (1995)Google Scholar
  34. 34.
    Lee, E.A., Messerschmitt, D.G.: An overview of the ptolemy project. Technical report, Dept. of Electrical Engineering and Computer Sciences, University of California at Berkeley (1993)Google Scholar
  35. 35.
    Li, S., et al.: Professional Jini. Mass Market Paperback (2000)Google Scholar
  36. 36.
    Matena, V., Stearns, B.: Applying Enterprise JavaBeans: Component-Based Development for the J2EE Platform. Java Series, Enterprise edn. Addison-Wesley, Reading (2000)Google Scholar
  37. 37.
    Meyer, B.: Eiffel: The Language. Prentice-Hall, Englewood Cliffs (1992)zbMATHGoogle Scholar
  38. 38.
    Meyer, B.: Reusable Software: The Base Object-Oriented Component Libraries. Prentice-Hall, Englewood Cliffs (1994)Google Scholar
  39. 39.
    Milner, R.: Elements of interaction. Communications of the ACM 36(1), 78–89 (1993)CrossRefGoogle Scholar
  40. 40.
    Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes, parts I and II. Information and Computation 100(1), 1–77 (1992)zbMATHCrossRefMathSciNetGoogle Scholar
  41. 41.
    Moss, L.S.: Coalgebraic logic. Annals of Pure and Applied Logic 96(1- 3), 277–317 (1999)zbMATHCrossRefMathSciNetGoogle Scholar
  42. 42.
    Moss, L.S., Danner, N.: On the foundations of corecursion. Logic. Journal of the IGPL 5(2), 231–257 (1997)zbMATHCrossRefMathSciNetGoogle Scholar
  43. 43.
    Nierstrasz, O., Achermann, F.: A calculus for modeling software components. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2002. LNCS, vol. 2852, pp. 339–360. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  44. 44.
    Oaks, S., Wong, H.: Jini in a Nutshell. O’Reilly & Associates, Sebastopol (2000)Google Scholar
  45. 45.
    Papadopoulos, G.A., Arbab, F.: Coordination models and languages. In: Zelkowitz, M. (ed.) Advances in Computers – The Engineering of Large Systems, vol. 46, pp. 329–400. Academic Press, London (1998)Google Scholar
  46. 46.
    Pattinson, D., Wirsing, M.: Making components move: A separation of concerns approach. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2002. LNCS, vol. 2852, pp. 487–507. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  47. 47.
    Reichel, H.: An approach to object semantics based on terminal coalgebras. Mathematical Structures in Computer Science 5, 129–152 (1995)zbMATHCrossRefMathSciNetGoogle Scholar
  48. 48.
    Rutten, J.J.M.M.: Elements of stream calculus an extensive exercise in coinduction. In: Brookes, S., Mislove, M. (eds.) Proc. of 17th Conf. on Mathematical Foundations of Programming Semantics, Aarhus, Denmark, May 23-26. Electronic Notes in Theoretical Computer Science, vol. 45. Elsevier, Amsterdam (2001)Google Scholar
  49. 49.
    Rutten, J.J.M.M.: Universal coalgebra: A theory of systems. Technical Report CS-R9652, Centrum voor Wiskunde en Informatica, Kruislaan 413, 1098 SJ Amsterdam, The Netherlands (1996), Available on-line
  50. 50.
    Rutten, J.J.M.M.: Automata and coinduction (an exercise in coalgebra). In: Sangiorgi, D., de Simone, R. (eds.) CONCUR 1998. LNCS, vol. 1466, pp. 194–218. Springer, Heidelberg (1998), Report SEN-R9803, CWI, Available at CrossRefGoogle Scholar
  51. 51.
    Rutten, J.J.M.M.: Automata, power series, and coinduction: taking input derivatives seriously (extended abstract). In: Wiedermann, J., Van Emde Boas, P., Nielsen, M. (eds.) ICALP 1999. LNCS, vol. 1644, pp. 645–654. Springer, Heidelberg (1999), Report SEN-R9901, CWI, Available at URL: CrossRefGoogle Scholar
  52. 52.
    Rutten, J.J.M.M.: Coalgebra, concurrency, and control. Report SEN-R9921, CWI (1999), Available at URL:; Boel, R., Stremersch, G. (eds.) Extended abstract in: Discrete Event Systems. Kluwer (2000)
  53. 53.
    Rutten, J.J.M.M.: Universal coalgebra: a theory of systems. Theoretical Computer Science 249(1), 3–80 (2000)zbMATHCrossRefMathSciNetGoogle Scholar
  54. 54.
    Sangiorgi, D.: Asynchronous process calculi: the first-order and higher-order paradigms (tutorial). Theoretical Computer Science 253 (2001)Google Scholar
  55. 55.
    Siegel, J.: CORBA: Fundamentals and Programming, 1st edn. John Wiley & Sons Inc., New York (1996)Google Scholar
  56. 56.
    Snyder, A.: Encapsulation and inheritance in object-oriented programming languages. In: OOPSLA 1986, September 1986, pp. 38–45 (1986)Google Scholar
  57. 57.
    Wirsing, M., Hennicker, R., Breu, R.: Reusable specification components. Technical Report MIP-8817, Passau University (1988)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Farhad Arbab
    • 1
  1. 1.CWIAmsterdamThe Netherlands

Personalised recommendations