Abstract
Distributed systems are increasingly built using distributed object or component middleware. The dynamic behaviour of those distributed systems is influenced by the particular combination of middleware synchronisation and threading primitives used for communication amongst distributed objects. A designer may accidentally choose combinations that cause a distributed application to enter undesirable states or violate liveness properties. We exploit the fact that modern object and component middleware offer only a small number of underlying synchronisation primitives and threading policies. For each of these we define a UML stereotype and a formal process algebra specification of the stereotype semantics. We devise a means to specify safety and liveness properties in UML and again map those to process algebra safety and liveness properties. We can thus apply model checking techniques to verify that a given design does indeed meet the desired properties. We propose how to reduce the state space that needs to be model checked by exploiting middleware characteristics. We finally show how model checking results can be related back to the input UML models. In this way we can hide the formalism and the model checking process entirely from UML designers, which we regard as critical for the industrial exploitation of this research.
This work is partially funded through EU project TAPAS (IST-2001-34069).
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
Cheung, S.-C., Kramer, J.: Checking Safety Properties Using Compositional Reachability Analysis. ACM Transactions on Software Engineering and Methodology 8(1), 49–47 (1999)
Emmerich, W.: Engineering Distributed Objects. John Wiley & Sons, Chichester (April 2000)
Emmerich, W.: Distributed Component Technologies and their Software Engineering Implications. In: Proc. of the 24th Int. Conf. on Software Engineering, Orlando, Florida. ACM Press, New York (2002) (to appear)
Emmerich, W., Ellmer, E., Fieglein, H.: TIGRA – An Architectural Style for Enterprise Application Integration. In: Proc. of the 23rd Int. Conf. on Software Engineering, Toronto, Canada, pp. 567–576. IEEE Computer Society Press, Los Alamitos (2001)
Evans, A., France, R., Lano, K., Rumpe, B.: The UML as a Formal Modeling Notation. In: Bézivin, J., Muller, P.-A. (eds.) UML 1998. LNCS, vol. 1618, pp. 336–348. Springer, Heidelberg (1999)
Frankel, D.: Model Driven Architecture – Applying MDA to Enterprise Computing. OMG Press, Wiley (2003)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, Massachusetts (1994)
Gilmore, S., Hillston, J., Ribaudo, M.: An efficient algorithm for aggregating PEPA models. IEEE Transactions on Software Engineering 27(5), 449–464 (2001)
Götz, N., Herzog, U., Rettelbach, M.: The Integration of Functional Specification and Performance Analysis using Stochastic Process Algebras. In: SIGMETRICS 1993 and Performance 1993, vol. 729, pp. 121–146. Springer, Heidelberg (1993)
Harel, D.: Statecharts: A Visual Formalism for Complex Systems. Science of Computer Programming 8(3), 231–274 (1987)
Harel, D., Kupferman, O., Vardi, M.Y.: On the complexity of verifying concurrent transition systems. In: International Conference on Concurrency Theory, pp. 258–272 (1997)
Hillston, J.A.: A Compositional Approach to Performance Modelling. PhD thesis, Dept. of Computer Science, University of Edinburgh, UK (1994)
Holzmann, G.J.: The Model Checker SPIN. IEEE Transactions on Software Engineering 23(5), 279–295 (1997)
Inverardi, P., Muccini, H., Pelliccione, P.: Automated Check of Architectural Models Consistency using SPIN. In: Proc. of the 16th Automated Software Engineering Conference, Coronado Island, CA, pp. 346–349. IEEE Computer Society Press, Los Alamitos (2001)
Inverardi, P., Scriboni, S.: Connector Synthesis for Deadlock-Free Component Based Architectures. In: Proc. of the 16th Automated Software Engineering Conference, Coronado Island, CA, pp. 174–181. IEEE Computer Society Press, Los Alamitos (2001)
Kaveh, N.: Model Checking Distributed Objects. In: Emmerich, W., Tai, S. (eds.) EDO 2000. LNCS, vol. 1999, pp. 116–128. Springer, Heidelberg (2001)
Kaveh, N., Emmerich, W.: Deadlock Detection in Distributed Object Systems. In: Gruhn, V. (ed.) Joint Proc. of the 8th European Software Engineering Conference and the 9th ACM SIGSOFT Symposium on the Foundations of Software Engineering, pp. 44–51. ACM Press, New York (2001)
Lilius, J., Paltor, I.: A Tool for verifying UML models. In: Proc. of the 14th Int. Conference on Automated Software Engineering, Cocoa Beach, Florida, pp. 255–258. IEEE Computer Society Press, Los Alamitos (1999)
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)
Magee, J., Kramer, J.: Concurrency: Models and Programs – From Finite State Models to Java Programs. John Wiley, Chichester (1999)
McUmber, W.E., Cheung, B.H.C.: A General Framework for Formalizing UML with Formal Languages. In: Proc. of the 23rd Int. Conf. on Software Engineering, Toronto, Canada, pp. 433–442. IEEE Computer Society Press, Los Alamitos (2001)
Monson-Haefel, R.: Enterprise Javabeans. O’Reilly, UK (1999)
Naumovich, G., Clarke, L.A.: Classifying Properties: An Alternative to the Safety-Liveness Classification. Technical Report UM-CS-2000-012, Dept. of Computer Science, University of Massachusetts in Amherst (2000)
Nentwich, C., Capra, L., Emmerich, W., Finkelstein, A.: xlinkit: A Consistency Checking and Smart Link Generation Service. ACM Transactions on Internet Technology (2002) (to appear)
Nentwich, C., Emmerich, W., Finkelstein, A.: Static Consistency Checking for Distributed Specifications. In: Proc. of the 16th Automated Software Engineering Conference, Coronado Island, CA, pp. 115–124. IEEE Computer Society, Los Alamitos (2001)
Object Management Group. The Common Object Request Broker: Architecture and Specification Revision 2.3. 492 Old Connecticut Path, Framingham, MA 01701, USA (December 1998)
Object Management Group. XML Meta Data Interchange (XMI) – Proposal to the OMG OA&DTF RFP 3: Stream-based Model Interchange Format (SMIF). 492 Old Connecticut Path, Framingham, MA 01701, USA (October 1998)
Pnueli, A.: The Temporal Logic of Programs. In: Proc. 18th IEEE Symp. Foundations of Computer Science, Providence, R.I., pp. 46–57 (1977)
Rumbaugh, J., Jacobson, I., Booch, G.: The Unified Modeling Language Reference Manual. Addison-Wesley, Reading (1999)
Uchitel, S., Kramer, J.: A Workbench for Synthesising Behaviour Models from Scenarios. In: Proc. of the 23rd Int. Conf. on Software Engineering, Toronto, Canada, pp. 188–197. ACM Press, New York (2001)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Kaveh, N., Emmerich, W. (2003). Validating Distributed Object and Component Designs. In: Bernardo, M., Inverardi, P. (eds) Formal Methods for Software Architectures. SFM 2003. Lecture Notes in Computer Science, vol 2804. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-39800-4_5
Download citation
DOI: https://doi.org/10.1007/978-3-540-39800-4_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-20083-3
Online ISBN: 978-3-540-39800-4
eBook Packages: Springer Book Archive