Xcd – Modular, Realizable Software Architectures 

  • Christos Kloukinas
  • Mert Ozkaya
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7684)


Connector-Centric Design (Xcd) is centred around a new formal architectural description language, focusing mainly on complex connectors. Inspired by Wright and BIP, Xcd aims to cleanly separate in a modular manner the high-level functional, interaction, and control system behaviours. This can aid in both increasing the understandability of architectural specifications and the reusability of components and connectors themselves. Through the independent specification of control behaviours, Xcd allows designers to experiment more easily with different design decisions early on, without having to modify the functional behaviour specifications (components) or the interaction ones(connectors).

At the same time Xcd attempts to ease the architectural specification by following (and extending) a Design-by-Contract approach, which is more familiar to software developers than process algebras like CSP or languages like BIP that are closer to synchronous/hardware specification languages. Xcd extends Design-by-Contract (i) by separating component contracts into functional and interaction sub-contracts, and (ii) by allowing service consumers to specify their own contractual clauses. Xcd connector specifications are completely decentralized, foregoing Wright’s connector glue, to ensure their realizability by construction.


Software architecture Modular specifications Separation of functional interaction and control behaviours Design by contract Connector realizability 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Allen, R., Garlan, D.: A formal basis for architectural connection. ACM TOSEM 6(3), 213–249 (1997)CrossRefGoogle Scholar
  2. 2.
    Alur, R., Etessami, K., Yannakakis, M.: Inference of message sequence charts. IEEE Trans. Software Eng. 29(7), 623–633 (2003)CrossRefGoogle Scholar
  3. 3.
    Alur, R., Etessami, K., Yannakakis, M.: Realizability and verification of MSC graphs. Theor. Comput. Sci. 331(1), 97–114 (2005)MathSciNetzbMATHCrossRefGoogle Scholar
  4. 4.
    Arbab, F.: Reo: A channel-based coordination model for component composition. Mathematical Structures in Computer Science 14(3), 329–366 (2004)MathSciNetzbMATHCrossRefGoogle Scholar
  5. 5.
    Bálek, D., Plasil, F.: Software connectors and their role in component deployment. In: IFIP Conf. Proc. vol. 198, pp. 69–84. Kluwer (2001)Google Scholar
  6. 6.
    Balmelli, L.: An overview of the systems modeling language for products and systems development. J. of Obj. Tech. 6(6), 149–177 (2007), CrossRefGoogle Scholar
  7. 7.
    Basu, S., Bultan, T., Ouederni, M.: Deciding choreography realizability. In: Field, J., Hicks, M. (eds.) POPL 2012, pp. 191–202. ACM (2012)Google Scholar
  8. 8.
    Bliudze, S., Sifakis, J.: The algebra of connectors – Structuring interaction in BIP. In: EmSoft, pp. 11–20 (October 2007)Google Scholar
  9. 9.
    Chalin, P., Kiniry, J.R., Leavens, G.T., Poll, E.: Beyond Assertions: Advanced Specification and Verification with JML and ESC/Java2. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2005. LNCS, vol. 4111, pp. 342–363. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  10. 10.
    Dehnert, J.C., Stepanov, A.A.: Fundamentals of Generic Programming. In: Jazayeri, M., Loos, R., Musser, D. (eds.) Generic Programming 1998. LNCS, vol. 1766, pp. 1–11. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  11. 11.
    Delanote, D., Van Baelen, S., Joosen, W., Berbers, Y.: Using AADL to model a protocol stack. In: ICECCS, pp. 277–281 ( April 2008)Google Scholar
  12. 12.
    Di Giandomenico, F., Kwiatkowska, M., Martinucci, M., Masci, P., Qu, H.: Dependability Analysis and Verification for Connected Systems. In: Margaria, T., Steffen, B. (eds.) ISoLA 2010, Part II. LNCS, vol. 6416, pp. 263–277. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  13. 13.
    Feiler, P.H., Lewis, B.A., Vestal, S.: The SAE architecture analysis & design language. In: IEEE Intl. Symp. on Intell. Control, pp. 1206–1211 (October 2006),
  14. 14.
    Garlan, D., Allen, R., Ockerbloom, J.: Architectural mismatch or why it’s hard to build systems out of existing parts. In: ICSE, pp. 179–185 (April 1995)Google Scholar
  15. 15.
    Garlan, D., Shaw, M.: An introduction to software architecture. In: Adv. in SW Eng. and Knowledge Eng., pp. 1–39. World Scientific Publishing Company, Singapore (1993)CrossRefGoogle Scholar
  16. 16.
    Hirsch, D., Uchitel, S., Yankelevich, D.: Towards a Periodic Table of Connectors. In: Ciancarini, P., Wolf, A.L. (eds.) COORDINATION 1999. LNCS, vol. 1594, p. 418. Springer, Heidelberg (1999)Google Scholar
  17. 17.
    Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580 (1969)zbMATHCrossRefGoogle Scholar
  18. 18.
    Hoare, C.A.R.: Communicating sequential processes. Commun. ACM 21(8), 666–677 (1978)MathSciNetzbMATHCrossRefGoogle Scholar
  19. 19.
    Issarny, V., Bennaceur, A., Bromberg, Y.-D.: Middleware-Layer Connector Synthesis: Beyond State of the Art in Middleware Interoperability. In: Bernardo, M., Issarny, V. (eds.) SFM 2011. LNCS, vol. 6659, pp. 217–255. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  20. 20.
    Ivers, J., Clements, P., Garlan, D., Nord, R., Schmerl, B., Silva, J.R.O.: Documenting component and connector views with UML 2.0. TR CMU/SEI-2004-TR-008 (2004)Google Scholar
  21. 21.
    Kim, J.S., Garlan, D.: Analyzing architectural styles with Alloy. In: ROSATEA (July 2006)Google Scholar
  22. 22.
    Kloukinas, C.: Better abstractions for reusable components & architectures. In: ICSE-NIER – ICSE Companion, pp. 199–202. IEEE Press, Vancouver (2009)Google Scholar
  23. 23.
    Kloukinas, C., Ozkaya, M.: Xcd – Simple, modular, formal software architectures. Tech. Rep. TR/2012/DOC/01, Department of Computing, School of Informatics, City University London, Northampton Square, London, EC1V 0HB, U.K. (May 2012), ISSN 1364–4009Google Scholar
  24. 24.
    Lau, K.K., Elizondo, P.V., Wang, Z.: Exogenous Connectors for Software Components. In: Heineman, G.T., Crnković, I., Schmidt, H.W., Stafford, J.A., Ren, X.-M., Wallnau, K. (eds.) CBSE 2005. LNCS, vol. 3489, pp. 90–106. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  25. 25.
    Lekeas, G., Kloukinas, C., Stathis, K.: Producing Enactable Protocols in Artificial Agent Societies. In: Kinny, D., Hsu, J.Y.-J., Governatori, G., Ghose, A.K. (eds.) PRIMA 2011. LNCS, vol. 7047, pp. 311–322. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  26. 26.
    Magee, J., Kramer, J.: Concurrency – state models and Java programs, 2nd edn. Wiley (2006)Google Scholar
  27. 27.
    Mehta, N.R., Medvidovic, N., Phadke, S.: Towards a taxonomy of SW connectors. In: ICSE, pp. 178–187 (2000)Google Scholar
  28. 28.
    Meyer, B.: Applying “Design by Contract”. IEEE Computer 25(10), 40–51 (1992)CrossRefGoogle Scholar
  29. 29.
    Musser, D.R., Stepanov, A.A.: Generic Programming. In: Gianni, P. (ed.) ISSAC 1988. LNCS, vol. 358, pp. 13–25. Springer, Heidelberg (1989)CrossRefGoogle Scholar
  30. 30.
    Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. SIGSOFT Softw. Eng. Notes 17(4), 40–52 (1992)CrossRefGoogle Scholar
  31. 31.
    Plasil, F., Besta, M., Visnovsky, S.: Bounding component behavior via protocols. In: TOOLS, vol. (30), pp. 387–398. IEEE (1999)Google Scholar
  32. 32.
    Plasil, F., Visnovsky, S.: Behavior protocols for software components. IEEE Trans. Software Eng. 28(11), 1056–1076 (2002)CrossRefGoogle Scholar
  33. 33.
    Rodríguez, E., Dwyer, M.B., Flanagan, C., Hatcliff, J., Leavens, G.T., Robby: Extending JML for Modular Specification and Verification of Multi-threaded Programs. In: Gao, X.-X. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 551–576. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  34. 34.
    Taylor, R.N., Medvidovic, N., Dashofy, E.M.: Software Architecture: Foundations, Theory, and Practice. John Wiley & Sons (2010), ISBN-13: 978-0470167748Google Scholar
  35. 35.
    Wirth, N.: Algorithms + Data Structures = Programs. Prentice-Hall (1975)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Christos Kloukinas
    • 1
  • Mert Ozkaya
    • 1
  1. 1.School of InformaticsCity University LondonLondonU.K.

Personalised recommendations