Skip to main content

Validating Distributed Object and Component Designs

  • Chapter
Formal Methods for Software Architectures (SFM 2003)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2804))

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).

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. Cheung, S.-C., Kramer, J.: Checking Safety Properties Using Compositional Reachability Analysis. ACM Transactions on Software Engineering and Methodology 8(1), 49–47 (1999)

    Google Scholar 

  2. Emmerich, W.: Engineering Distributed Objects. John Wiley & Sons, Chichester (April 2000)

    Google Scholar 

  3. 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)

    Google Scholar 

  4. 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)

    Google Scholar 

  5. 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)

    Chapter  Google Scholar 

  6. Frankel, D.: Model Driven Architecture – Applying MDA to Enterprise Computing. OMG Press, Wiley (2003)

    Google Scholar 

  7. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, Massachusetts (1994)

    Google Scholar 

  8. Gilmore, S., Hillston, J., Ribaudo, M.: An efficient algorithm for aggregating PEPA models. IEEE Transactions on Software Engineering 27(5), 449–464 (2001)

    Article  Google Scholar 

  9. 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)

    Google Scholar 

  10. Harel, D.: Statecharts: A Visual Formalism for Complex Systems. Science of Computer Programming 8(3), 231–274 (1987)

    Article  MATH  MathSciNet  Google Scholar 

  11. 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)

    Google Scholar 

  12. Hillston, J.A.: A Compositional Approach to Performance Modelling. PhD thesis, Dept. of Computer Science, University of Edinburgh, UK (1994)

    Google Scholar 

  13. Holzmann, G.J.: The Model Checker SPIN. IEEE Transactions on Software Engineering 23(5), 279–295 (1997)

    Article  MathSciNet  Google Scholar 

  14. 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)

    Chapter  Google Scholar 

  15. 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)

    Chapter  Google Scholar 

  16. Kaveh, N.: Model Checking Distributed Objects. In: Emmerich, W., Tai, S. (eds.) EDO 2000. LNCS, vol. 1999, pp. 116–128. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  17. 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)

    Google Scholar 

  18. 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)

    Chapter  Google Scholar 

  19. 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 

  20. Magee, J., Kramer, J.: Concurrency: Models and Programs – From Finite State Models to Java Programs. John Wiley, Chichester (1999)

    Google Scholar 

  21. 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)

    Google Scholar 

  22. Monson-Haefel, R.: Enterprise Javabeans. O’Reilly, UK (1999)

    Google Scholar 

  23. 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)

    Google Scholar 

  24. 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)

    Google Scholar 

  25. 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)

    Chapter  Google Scholar 

  26. Object Management Group. The Common Object Request Broker: Architecture and Specification Revision 2.3. 492 Old Connecticut Path, Framingham, MA 01701, USA (December 1998)

    Google Scholar 

  27. 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)

    Google Scholar 

  28. Pnueli, A.: The Temporal Logic of Programs. In: Proc. 18th IEEE Symp. Foundations of Computer Science, Providence, R.I., pp. 46–57 (1977)

    Google Scholar 

  29. Rumbaugh, J., Jacobson, I., Booch, G.: The Unified Modeling Language Reference Manual. Addison-Wesley, Reading (1999)

    Google Scholar 

  30. 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)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics