Architectural Building Blocks for Plug-and-Play System Design

  • Shangzhu Wang
  • George S. Avrunin
  • Lori A. Clarke
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4063)


One of the distinguishing features of distributed systems is the importance of the interaction mechanisms that are used to define how the sequential components interact with each other. Given the complexity of the behavior that is being described and the large design space of various alternatives, choosing appropriate interaction mechanisms is difficult. In this paper, we propose a component-based specification approach that allows designers to experiment with alternative interaction semantics. Our approach is also integrated with design-time verification to provide feedback about the correctness of the overall system design. In this approach, connectors representing specific interaction semantics are composed from reusable building blocks. Standard communication interfaces for components are defined to reduce the impact of changing interactions on components’ computations. The increased reusability of both components and connectors also allows savings at model-construction time for finite-state verification.


Model Check Interaction Mechanism Message Passing FIFO Queue Interaction Semantic 
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.
    Allen, R., Garlan, D.: A formal basis for architectural connection. ACM Trans. on Softw. Eng. and Methodol., 140–165 (1997)Google Scholar
  2. 2.
    Shaw, M., Garlan, D.: Softw. Architecture:Perspectives on an Emerging Discipline. Prentice-Hall, Englewood Cliffs (1996)Google Scholar
  3. 3.
    Magee, J., Dulay, N., Eisenbach, S., Kramer, J.: Specifying distributed software architectures. In: Botella, P., Schäfer, W. (eds.) ESEC 1995. LNCS, vol. 989, pp. 137–153. Springer, Heidelberg (1995)Google Scholar
  4. 4.
    Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. SIGSOFT Softw. Eng. Notes 17(4), 40–52 (1992)CrossRefGoogle Scholar
  5. 5.
    Holzmann, G.J.: The Spin Model Checker. Addison-Wesley, Boston (2004)Google Scholar
  6. 6.
    McMillan, K.L.: Symbolic Model Checking: An approach to the State Explosion Problem. Kluwer Academic Publishers, Dordrecht (1993)Google Scholar
  7. 7.
    Magee, J., Kramer, J.: Concurrency State Models and Java Programs. John Wiley and Sons, Chichester (1999)Google Scholar
  8. 8.
    Dwyer, M.B., Clarke, L.A., Cobleigh, J.M., Naumovich, G.: Flow analysis for verifying properties of concurrent software systems. ACM Trans. on Softw. Eng. and Methodol. 13(4), 359–430 (2004)CrossRefGoogle Scholar
  9. 9.
    Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall Intl., Englewood Cliffs (1985)zbMATHGoogle Scholar
  10. 10.
    Carriero, N., Gelernter, D.: Linda in context. Comm. ACM 32(4), 444–458 (1989)CrossRefGoogle Scholar
  11. 11.
    Snir, M., Otto, S., Huss-Lederman, S., Walker, D., Dongarra, J.: MPI: The Complete Reference. MIT Press, Cambridge (1996)Google Scholar
  12. 12.
    Wang, S., Avrunin, G.S., Clarke, L.A.: Architectural building blocks for plug-and-play system design. Technical Report UM-CS-2005-16, Dept. of Comp. Sci., Univ. of Massachusetts Amherst (2005)Google Scholar
  13. 13.
    Garlan, D., Allen, R., Ockerbloom, J.: Architectural mismatch, or, why it’s hard to build systems out of existing parts. In: Proc. 17th Intl. Conf. on Softw. Eng., Seattle, Washington, pp. 179–185 (1995)Google Scholar
  14. 14.
    Inverardi, P., Wolf, A.L.: Uncovering architectural mismatch in component behavior. Science of Computer Programming 33(2), 101–131 (1999)zbMATHCrossRefGoogle Scholar
  15. 15.
    Bálek, D., Plášil, F.: Software connectors and their role in component deployment. In: Proc. Third Intl. Working Conf. on New Developments in Distributed Applications and Interoperable Systems, Deventer, The Netherlands, pp. 69–84 (2001)Google Scholar
  16. 16.
    Gensler, T., Lowe, W.: Correct composition of distributed systems. In: Tech. of Object-Oriented Languages and Systems (1999)Google Scholar
  17. 17.
    Ray, A., Cleaveland, R.: Architectural interaction diagrams: AIDs for system modeling. In: Proc. 25th Intl. Conf. on Softw. Eng., pp. 396–406 (2003)Google Scholar
  18. 18.
    Arbab, F., Baier, C., Rutten, J.J.M.M., Sirjani, M.: Modeling component connectors in reo by constraint automata (extended abstract). Electr. Notes Theor. Comput. Sci. 97, 25–46 (2004)CrossRefGoogle Scholar
  19. 19.
    Mehta, N.R., Medvidovic, N., Sirjani, M., Arbab, F.: Modeling behavior in compositions of software architectural primitives. In: 19th IEEE Intl. Conf. on Automated Softw. Eng., pp. 371–374 (2004)Google Scholar
  20. 20.
    Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M.: Pattern-oriented software architecture: a system of patterns. John Wiley & Sons, Inc., New York, USA (1996)Google Scholar
  21. 21.
    Garlan, D., Monroe, R.T., Wile, D.: Acme: Architectural description of component-based systems. In: Leavens, G.T., Sitaraman, M. (eds.) Foundations of Component-Based Systems, pp. 47–68. Cambridge University Press, Cambridge (2000)Google Scholar
  22. 22.
    Aldrich, J., Chambers, C., Notkin, D.: Archjava: Connecting software architecture to implementation. In: Proc. 26th Intl. Conf. on Softw. Eng., Orlando, FL, USA. ACM, New York (2002)Google Scholar
  23. 23.
    Spitznagel, B., Garlan, D.: A compositional formalization of connector wrappers. In: Proc. 2003 Intl. Conf. on Softw. Eng., Portland, Oregon (2003)Google Scholar
  24. 24.
    van der Linden, F.J., Müller, J.K.: Creating architectures with building blocks. IEEE Softw. 12(6), 51–60 (1995)CrossRefGoogle Scholar
  25. 25.
    Hirsch, D., Uchitel, S., Yankelevich, D.: Towards a periodic table of connectors. In: Proc. Third Intl. Conf. on Coordination Languages and Models, London, UK, p. 418 (1999)Google Scholar
  26. 26.
    Mehta, N.R., Medvidovic, N., Phadke, S.: Towards a taxonomy of software connectors. In: Proc. 22nd Intl. Conf. on Softw. Eng., Limerick, Ireland, pp. 178–187 (2000)Google Scholar
  27. 27.
    Garlan, D., Khersonsky, S., Kim, J.S.: Model checking publish-subscribe systems. In: Proc. 10th Intl. SPIN Workshop on Model Checking of Softw., Portland, Oregon (2003)Google Scholar
  28. 28.
    Bradbury, J.S., Dingel, J.: Evaluating and improving the automatic analysis of implicit invocation systems. In: Proc. 11th ACM Symp. on Found. of Softw. Eng., Finland (2003)Google Scholar
  29. 29.
    Zanolin, L., Ghezzi, C., Baresi, L.: An approach to model and validate publish/subscribe architectures. In: Proc. Specification and Verification of Component-Based Systems, Helsinki, Finland, pp. 35–41 (2003)Google Scholar
  30. 30.
    Giannakopoulou, D., Magee, J.: Fluent model checking for event-based systems. In: Proc. 9th European Softw. Eng. Conf. / 11th ACM SIGSOFT Intl. Symp. on Found. of Softw. Eng., Helsinki, Finland, pp. 257–266 (2003)Google Scholar
  31. 31.
    Childs, A., Greenwald, J., Ranganath, V.P., Deng, X., Dwyer, M.B., Hatcliff, J., Jung, G., Shanti, P., Singh, G.: Cadena: An integrated development environment for analysis, synthesis, and verification of component-based systems. In: Proc. of Fund. Approaches to Softw. Eng., 7th Intl. Conf., pp. 160–164 (2004)Google Scholar
  32. 32.
    Caporuscio, M., Inverardi, P., Pelliccione, P.: Compositional verification of middleware-based software architecture descriptions. In: Proc. 26th Intl. Conf. on Softw. Eng., Washington, DC, USA, pp. 221–230. IEEE Computer Society Press, Los Alamitos (2004)CrossRefGoogle Scholar
  33. 33.
    Sullivan, K.J., Notkin, D.: Reconciling environment integration and software evolution. ACM Trans. Softw. Eng. Methodol. 1(3), 229–268 (1992)CrossRefGoogle Scholar
  34. 34.
    Achermann, F., Lumpe, M., Schneider, J.G., Nierstrasz, O.: Piccola – a small composition language. In: Bowman, H., Derrick, J. (eds.) Formal Methods for Distributed Processing – A Survey of Object-Oriented Approaches, pp. 403–426. Cambridge University Press, Cambridge (2001)Google Scholar
  35. 35.
    Medvidovic, N., Rosenblum, D.S., Taylor, R.N.: A language and environment for architecture-based software development and evolution. In: Proc. 21st Intl. Conf. on Soft. Eng., Los Angeles, pp. 44–53 (1999)Google Scholar
  36. 36.
    van der Hoek, A., Mikic-Rakic, M., Roshandel, R., Medvidovic, N.: Taming architectural evolution. In: Inverardi, P. (ed.) Proc. 8th European Softw. Eng. Conf./ 9th Symp. on the Found. of Softw. Eng., Vienna, pp. 1–10 (2001)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Shangzhu Wang
    • 1
  • George S. Avrunin
    • 1
  • Lori A. Clarke
    • 1
  1. 1.Department of Computer ScienceUniversity of MassachusettsAmherstUSA

Personalised recommendations