Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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)
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 http://www.cwi.nl/NVTI/Nieuwsbrief/nieuwsbrief.html
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)
Arbab, F.: Reo: A channel-based coordination model for component composition. Mathematical Structures in Computer Science (2003)
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)
Arbab, F., de Boer, F.S., Bonsangue, M.M.: A coordination language for mobile components. In: Proc. ACM SAC 2000 (2000)
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)
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)
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)
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)
Barbosa, L.: Components as Coalgebras. PhD thesis, Universidade do Minho, Braga, Portugal (2001)
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)
Broy, M.: A logical basis for component-based system engineering. Technical report, Technische Universität München (November 2000)
Broy, M., Stolen, K.: Specification and development of interactive systems. Monographs in Computer Science, vol. 62. Springer, Heidelberg (2001)
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)
CORBA. See: http://www.omg.org
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)
Enterprise JavaBeans, See: http://java.sun.com/products/ejb
Gelernter, D., Carriero, N.: Coordination languages and their significance. Communication of the ACM 35(2), 97–107 (1992)
Gore, J.: Object Structures: Building Object-Oriented Software Components. Addison-Wesley, Reading (1996)
Grimes, R.: Professional DCOM Programming. Wrox Press (1997)
Gumm, H.P., Schröder, T.: Covarieties and complete covarieties. In: [29] (1998)
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)
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)
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)
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)
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)
Jacobs, B.: Inheritance and cofree constructions. In: Cointe, P. (ed.) ECOOP 1996. LNCS, vol. 1098, pp. 210–231. Springer, Heidelberg (1996)
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: www.elsevier.nl/locate/entcs
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 http://www.cs.kun.nl/~bart/PAPERS/JR.ps.Z
Jini, See: http://www.sun.com/jini
Kok, J.N.: Semantic Models for Parallel Computation in Data Flow, Logic- and Object-Oriented Programming. PhD thesis, Vrije Universiteit, Amsterdam (May 1989)
Lee, E.A., Parks, T.M.: Dataflow process networks. In: Proceedings of the IEEE, May 1995, vol. 83, pp. 773–801 (1995)
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)
Li, S., et al.: Professional Jini. Mass Market Paperback (2000)
Matena, V., Stearns, B.: Applying Enterprise JavaBeans: Component-Based Development for the J2EE Platform. Java Series, Enterprise edn. Addison-Wesley, Reading (2000)
Meyer, B.: Eiffel: The Language. Prentice-Hall, Englewood Cliffs (1992)
Meyer, B.: Reusable Software: The Base Object-Oriented Component Libraries. Prentice-Hall, Englewood Cliffs (1994)
Milner, R.: Elements of interaction. Communications of the ACM 36(1), 78–89 (1993)
Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes, parts I and II. Information and Computation 100(1), 1–77 (1992)
Moss, L.S.: Coalgebraic logic. Annals of Pure and Applied Logic 96(1- 3), 277–317 (1999)
Moss, L.S., Danner, N.: On the foundations of corecursion. Logic. Journal of the IGPL 5(2), 231–257 (1997)
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)
Oaks, S., Wong, H.: Jini in a Nutshell. O’Reilly & Associates, Sebastopol (2000)
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)
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)
Reichel, H.: An approach to object semantics based on terminal coalgebras. Mathematical Structures in Computer Science 5, 129–152 (1995)
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)
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 http://www.cwi.nl/ftp/CWIreports/AP/CS-R9652.ps.Z
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 URL: www.cwi.nl
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: www.cwi.nl
Rutten, J.J.M.M.: Coalgebra, concurrency, and control. Report SEN-R9921, CWI (1999), Available at URL: www.cwi.nl ; Boel, R., Stremersch, G. (eds.) Extended abstract in: Discrete Event Systems. Kluwer (2000)
Rutten, J.J.M.M.: Universal coalgebra: a theory of systems. Theoretical Computer Science 249(1), 3–80 (2000)
Sangiorgi, D.: Asynchronous process calculi: the first-order and higher-order paradigms (tutorial). Theoretical Computer Science 253 (2001)
Siegel, J.: CORBA: Fundamentals and Programming, 1st edn. John Wiley & Sons Inc., New York (1996)
Snyder, A.: Encapsulation and inheritance in object-oriented programming languages. In: OOPSLA 1986, September 1986, pp. 38–45 (1986)
Wirsing, M., Hennicker, R., Breu, R.: Reusable specification components. Technical Report MIP-8817, Passau University (1988)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Arbab, F. (2003). Abstract Behavior Types: A Foundation Model for Components and Their Composition. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, WP. (eds) Formal Methods for Components and Objects. FMCO 2002. Lecture Notes in Computer Science, vol 2852. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-39656-7_2
Download citation
DOI: https://doi.org/10.1007/978-3-540-39656-7_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-20303-2
Online ISBN: 978-3-540-39656-7
eBook Packages: Springer Book Archive