Plug-and-Play Architectural Design and Verification

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


In software architecture, components represent the computational units of a system and connectors represent the interactions among those units. Making decisions about the semantics of these interactions is a key part of the design process. It is often difficult, however, to choose the appropriate interaction semantics due to the wide range of alternatives and the complexity of the system behavior affected by those choices. Techniques such as finite-state verification can be used to evaluate the impact of these design choices on the overall system behavior.

This paper presents the Plug-and-Play approach that allows designers to experiment with alternative design choices of component interactions in a plug-and-play manner. With this approach, connectors representing specific interaction semantics are composed from a library of predefined, reusable building blocks. In addition, standard interfaces for components are defined that reduce the impact of interaction changes on the components’ computations. This approach facilitates design-time verification by improving the reusability of component models and by providing reusable formal models for the connector building blocks, thereby reducing model-construction time for finite-state verification.


Message Passing Interaction Semantic Promela Model Constraint Automaton Slot Buffer 
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.
    Aldrich, J., Chambers, C., Notkin, D.: ArchJava: Connecting software architecture to implementation. In: Proc. 26th Intl. Conf. on Softw. Eng., Orlando, FL, USA, May 2002, pp. 187–197. ACM Press, New York (2002)Google Scholar
  2. 2.
    Allen, R., Garlan, D.: A formal basis for architectural connection. ACM Trans. on Softw. Eng. and Methodol., 140–165 (1997)Google Scholar
  3. 3.
    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)CrossRefzbMATHGoogle Scholar
  4. 4.
    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
  5. 5.
    Bollig, B., Leucker, M.: Modeling, specifying, and verifying message passing systems. In: Proceedings of the Symposium on Temporal Representation and Reasoning (TIME 2001), pp. 240–248 (2001)Google Scholar
  6. 6.
    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., pp. 78–87 (September 2003)Google Scholar
  7. 7.
    Carriero, N., Gelernter, D.: Linda in context. Comm. ACM 32(4), 444–458 (1989)CrossRefGoogle Scholar
  8. 8.
    Dashofy, E.M., van der Hoek, A., Taylor, R.N.: A comprehensive approach for the development of modular software architecture description languages. ACM Trans. Softw. Eng. Meth. 14(2), 199–245 (2005)CrossRefGoogle Scholar
  9. 9.
    Day, M.: Occam. SIGPLAN Notices 18(4), 69–79 (1983)CrossRefGoogle Scholar
  10. 10.
    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
  11. 11.
    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 (April 1995)Google Scholar
  12. 12.
    Garlan, D., Khersonsky, S., Kim, J.S.: Model checking publish-subscribe systems. In: Ball, T., Rajamani, S.K. (eds.) SPIN 2003. LNCS, vol. 2648, pp. 166–180. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  13. 13.
    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
  14. 14.
    Geist, A., Beguelin, A., Dongarra, J., Wiang, W., Manchek, R., Sunderam, V.: PVM: Parallel Virtual Machine, A User’s Guide and Tutorial for Networked Parallel Computing. MIT Press, Cambridge (1994)zbMATHGoogle Scholar
  15. 15.
    Gensler, T., Lowe, W.: Correct composition of distributed systems. In: Tech. of Object-Oriented Languages and Systems, pp. 296–305 (1999)Google Scholar
  16. 16.
    Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall Intl., Englewood Cliffs (1985)zbMATHGoogle Scholar
  17. 17.
    Holzmann, G.J.: The Spin Model Checker. Addison-Wesley, Boston (2004)Google Scholar
  18. 18.
    Inverardi, P., Wolf, A.L.: Uncovering architectural mismatch in component behavior. Science of Computer Programming 33(2), 101–131 (1999)CrossRefzbMATHGoogle Scholar
  19. 19.
    McMillan, K.L.: Symbolic Model Checking: An approach to the State Explosion Problem. Kluwer Academic, Dordrecht (1993)CrossRefGoogle Scholar
  20. 20.
    Kuz, I., Liu, Y., Gorton, I., Heiser, G.: CAmkES: A component model for secure microkernel-based embedded systems. The Journal of Systems and Software (2006)Google Scholar
  21. 21.
    Magee, J., Dulay, N., Eisenbach, S., Kramer, J.: Specifying distributed software architectures. In: Proc. 5th European Softw. Eng. Conf., Sitges, Spain, pp. 137–153 (September 1995)Google Scholar
  22. 22.
    Magee, J., Kramer, J.: Concurrency State Models and Java Programs. John Wiley and Sons, Chichester (1999)zbMATHGoogle Scholar
  23. 23.
    Meenakshi, B., Ramanujam, R.: Reasoning about message passing in finite state environments. In: Welzl, E., Montanari, U., Rolim, J. (eds.) ICALP 2000. LNCS, vol. 1853, pp. 487–498. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  24. 24.
    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
  25. 25.
    Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. SIGSOFT Softw. Eng. Notes 17(4), 40–52 (1992)CrossRefGoogle Scholar
  26. 26.
    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
  27. 27.
    Shaw, M., Garlan, D.: Softw. Architecture:Perspectives on an Emerging Discipline. Prentice-Hall, Englewood Cliffs (1996)zbMATHGoogle Scholar
  28. 28.
    Snir, M., Otto, S., Huss-Lederman, S., Walker, D., Dongarra, J.: MPI: The Complete Reference. MIT Press, Cambridge (1996)Google Scholar
  29. 29.
    Spitznagel, B., Garlan, D.: A compositional approach for construct connector. In: Proc. Working IEEE/IFIP Conf. on Soft. Architecture (WICSA 2001), Royal Netherlands Academy of Arts and Sciences Amsterdam, The Netherlands, pp. 148–157 (August 2001)Google Scholar
  30. 30.
    Spitznagel, B., Garlan, D.: A compositional formalization of connector wrappers. In: Proc. 2003 Intl. Conf. on Softw. Eng., Portland, Oregon, pp. 374–384 (2003)Google Scholar
  31. 31.
    Sullivan, I.K., K.J., Notkin, D.: Evaluating the mediator method: Prism as a case study. In: IEEE Transactions on Software Engineering, vol. 22, pp. 563–579 (August 1996)Google Scholar
  32. 32.
    Sullivan, K.J., Notkin, D.: Reconciling environment integration and software evolution. ACM Trans. Softw. Eng. Methodol. 1(3), 229–268 (1992)CrossRefGoogle Scholar
  33. 33.
    van der Linden, F.J., Müller, J.K.: Creating architectures with building blocks. IEEE Softw. 12(6), 51–60 (1995)CrossRefGoogle Scholar
  34. 34.
    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 (2005)Google Scholar
  35. 35.
    Zhang, H., Bradbury, J.S., Cordy, J.R., Dingel, J.: Implementation and verification of implicit-invocation systems using source transformation. In: Proceedings of the Fifth International Workshop on Source Code Analysis and Manipulation. IEEE Computer Society, Los Alamitos (2005)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

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

Personalised recommendations