Abstract
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.
Keywords
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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)
Allen, R., Garlan, D.: A formal basis for architectural connection. ACM Trans. on Softw. Eng. and Methodol., 140–165 (1997)
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)
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)
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)
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)
Carriero, N., Gelernter, D.: Linda in context. Comm. ACM 32(4), 444–458 (1989)
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)
Day, M.: Occam. SIGPLAN Notices 18(4), 69–79 (1983)
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)
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)
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)
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)
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)
Gensler, T., Lowe, W.: Correct composition of distributed systems. In: Tech. of Object-Oriented Languages and Systems, pp. 296–305 (1999)
Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall Intl., Englewood Cliffs (1985)
Holzmann, G.J.: The Spin Model Checker. Addison-Wesley, Boston (2004)
Inverardi, P., Wolf, A.L.: Uncovering architectural mismatch in component behavior. Science of Computer Programming 33(2), 101–131 (1999)
McMillan, K.L.: Symbolic Model Checking: An approach to the State Explosion Problem. Kluwer Academic, Dordrecht (1993)
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)
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)
Magee, J., Kramer, J.: Concurrency State Models and Java Programs. John Wiley and Sons, Chichester (1999)
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)
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)
Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. SIGSOFT Softw. Eng. Notes 17(4), 40–52 (1992)
Ray, A., Cleaveland, R.: Architectural interaction diagrams: AIDs for system modeling. In: Proc. 25th Intl. Conf. on Softw. Eng., pp. 396–406 (2003)
Shaw, M., Garlan, D.: Softw. Architecture:Perspectives on an Emerging Discipline. Prentice-Hall, Englewood Cliffs (1996)
Snir, M., Otto, S., Huss-Lederman, S., Walker, D., Dongarra, J.: MPI: The Complete Reference. MIT Press, Cambridge (1996)
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)
Spitznagel, B., Garlan, D.: A compositional formalization of connector wrappers. In: Proc. 2003 Intl. Conf. on Softw. Eng., Portland, Oregon, pp. 374–384 (2003)
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)
Sullivan, K.J., Notkin, D.: Reconciling environment integration and software evolution. ACM Trans. Softw. Eng. Methodol. 1(3), 229–268 (1992)
van der Linden, F.J., Müller, J.K.: Creating architectures with building blocks. IEEE Softw. 12(6), 51–60 (1995)
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)
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)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Wang, S., Avrunin, G.S., Clarke, L.A. (2008). Plug-and-Play Architectural Design and Verification. In: de Lemos, R., Di Giandomenico, F., Gacek, C., Muccini, H., Vieira, M. (eds) Architecting Dependable Systems V. Lecture Notes in Computer Science, vol 5135. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-85571-2_12
Download citation
DOI: https://doi.org/10.1007/978-3-540-85571-2_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-85570-5
Online ISBN: 978-3-540-85571-2
eBook Packages: Computer ScienceComputer Science (R0)