Skip to main content

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 8050))

Abstract

Model-Driven Software Development is nowadays taken as a mainstream methodology. In the software engineering community, it is a synonym of the OMG Model-Driven Architecture (MDA). However, in the formal method community, model-driven development is broadly seen as model-based techniques for software design and verification. Because of the difference between the nature of research and practical model-driven software engineering, there is a gap between formal techniques, together with their tools, and their potential support to practical software development. In order to bridge this gap, we define the meanings of component-based software architectures in this chapter, and show how software architectures are formally modeled in the formal model-driven engineering method rCOS. With the semantics of software architecture components, their compositions and refinements, we demonstrate how appropriate formal techniques and their tools can be applied in an MDA development process.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

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.

References

  1. Abrial, J.R.: The B-Book: Assigning Programs to Meanings. Cambridge University Press (1996)

    Google Scholar 

  2. Abrial, J.R.: Modeling in Event-B: System and Software Engineering. Cambridge University Press (2010)

    Google Scholar 

  3. Back, R.J.R., von Wright, J.: Trace refinement of action systems. In: Jonsson, B., Parrow, J. (eds.) CONCUR 1994. LNCS, vol. 836, pp. 367–384. Springer, Heidelberg (1994)

    Chapter  Google Scholar 

  4. Bertolini, C., Liu, Z., Schäf, M., Stolz, V.: Towards a formal integrated model of collaborative healthcare workflows. Tech. Rep. 450, IIST, United Nations University, Macao (2011), In: Liu, Z., Wassyng, A. (eds.) FHIES 2011. LNCS, vol. 7151, pp. 57–74. Springer, Heidelberg (2012)

    Google Scholar 

  5. Booch, G.: Object-Oriented Analysis and Design with Applications. Addison-Wesley, Boston (1994)

    Google Scholar 

  6. Brooks, F.P.: No silver bullet: Essence and accidents of software engineering. IEEE Computer 20(4), 10–19 (1987)

    Article  Google Scholar 

  7. Brooks, F.P.: The mythical man-month: After 20 years. IEEE Software 12(5), 57–60 (1995)

    Article  Google Scholar 

  8. Burstall, R., Goguen, J.: Putting theories together to make specifications. In: Reddy, R. (ed.) Proc. 5th Intl. Joint Conf. on Artificial Intelligence. Department of Computer Science, pp. 1045–1058. Carnegie-Mellon University, USA (1977)

    Google Scholar 

  9. Chandy, K.M., Misra, J.: Parallel Program Design: A Foundation. Addison-Wesley, Reading (1988)

    Google Scholar 

  10. Chen, X., He, J., Liu, Z., Zhan, N.: A model of component-based programming. In: Arbab, F., Sirjani, M. (eds.) FSEN 2007. LNCS, vol. 4767, pp. 191–206. Springer, Heidelberg (2007), http://www.iist.unu.edu/www/docs/techreports/reports/report350.pdf

    Chapter  Google Scholar 

  11. Chen, Z., et al.: Modelling with relational calculus of object and component systems - rCOS. In: Rausch, A., Reussner, R., Mirandola, R., Plášil, F. (eds.) The Common Component Modeling Example. LNCS, vol. 5153, pp. 116–145. Springer, Heidelberg (2008), http://www.iist.unu.edu/www/docs/techreports/reports/report382.pdf

    Chapter  Google Scholar 

  12. Chen, Z., Liu, Z., Ravn, A.P., Stolz, V., Zhan, N.: Refinement and verification in component-based model driven design. Science of Computer Programming 74(4), 168–196 (2009), http://www.sciencedirect.com/science/article/B6V17-4T9VP33-1/2/c4b7a123e06d33c2cef504862a5e54d5

    Article  MathSciNet  MATH  Google Scholar 

  13. Chen, Z., Liu, Z., Stolz, V., Yang, L., Ravn, A.P.: A refinement driven component-based design. In: 12th Intl. Conf. on Engineering of Complex Computer Systems (ICECCS 2007), pp. 277–289. IEEE Computer Society (July 2007)

    Google Scholar 

  14. Clarke, D., Proença, J., Lazovik, A., Arbab, F.: Channel-based coordination via constraint satisfaction. Sci. Comput. Program. 76(8), 681–710 (2011)

    Article  MATH  Google Scholar 

  15. Clarke, E.M., Emerson, E.A.: Design and synthesis of synchronization skeletons using branching-time temporal logic. In: Kozen, D. (ed.) Logic of Programs 1981. LNCS, vol. 131, pp. 52–71. Springer, Heidelberg (1982)

    Chapter  Google Scholar 

  16. De Alfaro, L., Henzinger, T.: Interface automata. ACM SIGSOFT Software Engineering Notes 26(5), 109–120 (2001)

    Article  Google Scholar 

  17. Dijkstra, E.W., Scholten, C.S.: Predicate Calculus and Program Semantics. Springer, New York (1990)

    Book  MATH  Google Scholar 

  18. Dijkstra, E.W.: The humble programmer. Communications of the ACM 15(10), 859–866 (1972), an ACM Turing Award lecture

    Google Scholar 

  19. Dong, R., Faber, J., Liu, Z., Srba, J., Zhan, N., Zhu, J.: Unblockable compositions of software components. In: Grassi, V., Mirandola, R., Medvidovic, N., Larsson, M. (eds.) CBSE, pp. 103–108. ACM (2012)

    Google Scholar 

  20. Dong, R., Zhan, N., Zhao, L.: An interface model of software components. In: Zhu, H. (ed.) ICTAC 2013. LNCS, vol. 8049, pp. 157–174. Springer, Heidelberg (2013)

    Google Scholar 

  21. Faber, J.: A timed model for healthcare workflows based on csp. In: Breu, R., Hatcliff, J. (eds.) SEHC 2012, pp. 1–7. IEEE (2012) ISBN 978-1-4673-1843-3

    Google Scholar 

  22. Fischer, C.: Combination and Implementation of Processes and Data: from CSP-OZ to Java. Ph.D. thesis, University of Oldenburg (2000)

    Google Scholar 

  23. Fowler, M.: Refactoring – Improving the Design of Existing Code. Addison-Wesley, Menlo Park (1999)

    Google Scholar 

  24. He, J., Li, X., Liu, Z.: Component-based software engineering. In: Van Hung, D., Wirsing, M. (eds.) ICTAC 2005. LNCS, vol. 3722, pp. 70–95. Springer, Heidelberg (2005), http://www.iist.unu.edu/www/docs/techreports/reports/report330.pdf , uNU-IIST TR 330

    Chapter  Google Scholar 

  25. He, J., Li, X., Liu, Z.: A theory of reactive components. Electr. Notes Theor. Comput. Sci. 160, 173–195 (2006)

    Article  Google Scholar 

  26. He, J., Liu, Z., Li, X.: rCOS: A refinement calculus of object systems. Theoretical computer science 365(1-2), 109–142 (2006), http://rcos.iist.unu.edu/publications/TCSpreprint.pdf

    Article  MathSciNet  MATH  Google Scholar 

  27. Hoare, C.A.R.: An axiomatic basis for computer programming. Communications of the ACM 12(10), 576–580 (1969)

    Article  MATH  Google Scholar 

  28. Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall, Upper Saddle River (1985)

    Google Scholar 

  29. Hoare, C.A.R., He, J.: Unifying Theories of Programming. Prentice-Hall, Upper Saddle River (1998)

    Google Scholar 

  30. Hoenicke, J., Olderog, E.R.: Combining specification techniques for processes, data and time. In: Butler, M., Petre, L., Sere, K. (eds.) IFM 2002. LNCS, vol. 2335, pp. 245–266. Springer, Heidelberg (2002), http://link.springer.de/link/service/series/0558/bibs/2335/23350245.htm

    Chapter  Google Scholar 

  31. Holzmann, G.J.: The SPIN Model Checker: Primer and reference manual. Addison-Wesley (2004)

    Google Scholar 

  32. Holzmann, G.J.: Conquering complexity. IEEE Computer 40(12) (2007)

    Google Scholar 

  33. Johnson, J.: My Life Is Failure: 100 Things You Should Know to Be a Better Project Leader. Standish Group International, West Yarmouth (2006)

    Google Scholar 

  34. Jones, C.B.: Systematic Software Development using VDM. Prentice Hall, Upper Saddle River (1990)

    Google Scholar 

  35. Ke, W., Li, X., Liu, Z., Stolz, V.: rCOS: a formal model-driven engineering method for component-based software. Frontiers of Computer Science in China 6(1), 17–39 (2012)

    MathSciNet  MATH  Google Scholar 

  36. Ke, W., Liu, Z., Wang, S., Zhao, L.: A graph-based operational semantics of OO programs. In: Breitman, K., Cavalcanti, A. (eds.) ICFEM 2009. LNCS, vol. 5885, pp. 347–366. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  37. Lamport, L.: The temporal logic of actions. ACM Transactions on Programming Languages and Systems 16(3), 872–923 (1994)

    Article  Google Scholar 

  38. Lamport, L.: Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers. Addison-Wesley (2002)

    Google Scholar 

  39. Larman, C.: Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process, 3rd edn. Prentice-Hall (2005)

    Google Scholar 

  40. Leavens, G.T.: JML’s rich, inherited specifications for behavioral subtypes. In: Liu, Z., Kleinberg, R.D. (eds.) ICFEM 2006. LNCS, vol. 4260, pp. 2–34. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  41. Leveson, N.G., Turner, C.S.: An investigation of the Therac-25 accidents. IEEE Computer 26(7), 18–41 (1993)

    Article  Google Scholar 

  42. Liu, J., He, J.: Reactive component based service-oriented design – a case study. In: Proceedings of 11th IEEE International Conference on Engineering of Complex Computer Systems, pp. 27–36. IEEE Computer Society (2006)

    Google Scholar 

  43. Liu, Z.: Software development with UML. Tech. Rep. 259, IIST, United Nations University, P.O. Box 3058, Macao (2002)

    Google Scholar 

  44. Liu, Z., Joseph, M.: Specification and verification of fault-tolerance, timing, and scheduling. ACM Transactions on Programming Languages and Systems 21(1), 46–89 (1999)

    Article  Google Scholar 

  45. Liu, Z., Kang, E., Zhan, N.: Composition and refinement of components. In: Butterfield, A. (ed.) Post Event Proceedings of UTP 2008. Lecture Notes in Computer Science vol. 5713. Springer, Berlin (2009)

    Google Scholar 

  46. Liu, Z., Mencl, V., Ravn, A.P., Yang, L.: Harnessing theories for tool support. In: Proc. of the Second Intl. Symp. on Leveraging Applications of Formal Methods, Verification and Validation (ISoLA 2006), pp. 371–382. IEEE Computer Society (August 2006), http://www.iist.unu.edu/www/docs/techreports/reports/report343.pdf ; full version as UNU-IIST Technical Report 343

  47. Liu, Z., Morisset, C., Stolz, V.: rCOS: Theory and tool for component-based model driven development. In: Arbab, F., Sirjani, M. (eds.) FSEN 2009. LNCS, vol. 5961, pp. 62–80. Springer, Heidelberg (2010), http://www.iist.unu.edu/www/docs/techreports/reports/report406.pdf , keynote, UNU-IIST TR 406

    Chapter  Google Scholar 

  48. Lynch, N.A., Tuttle, M.R.: An introduction to input/output automata. CWI Quarterly 2(3), 219–246 (1989)

    MathSciNet  MATH  Google Scholar 

  49. Manna, Z., Pnueli, A.: The temporal logic of reactive and concurrent systems:specification. Springer (1992)

    Google Scholar 

  50. Milner, R.: Communication and concurrency. Prentice-Hall, Inc., Upper Saddle River (1989)

    Google Scholar 

  51. Nielson, H., Nielson, F.: Semantics with Applications. A formal Introduction. Wiley (1993)

    Google Scholar 

  52. Object Managment Group: Model driven architecture - a technical perspective (2001), document number ORMSC 2001-07-01

    Google Scholar 

  53. Peter, L.: The Peter Pyramid. William Morrow, New York (1986)

    Google Scholar 

  54. Plotkin, G.D.: The origins of structural operational semantics. Journal of Logic and Algebraic Programming 60(61), 3–15 (2004)

    Article  MathSciNet  MATH  Google Scholar 

  55. Queille, J.P., Sifakis, J.: Specification and verification of concurrent systems in CESAR. In: Dezani-Ciancaglini, M., Montanari, U. (eds.) Programming 1982. LNCS, vol. 137, pp. 337–351. Springer, Heidelberg (1982)

    Chapter  Google Scholar 

  56. Robinson, K.: Ariane 5: Flight 501 failure—a case study (2011), http://www.cse.unsw.edu.au/~se4921/PDF/ariane5-article.pdf

  57. Roscoe, A.W.: Theory and Practice of Concurrency. Prentice-Hall, Upper Saddle River (1997)

    Google Scholar 

  58. Spivey, J.M.: The Z Notation: A Reference Manual, 2nd edn. Prentice Hall, Upper Saddle River (1992)

    MATH  Google Scholar 

  59. Stoy, J.E.: Denotational Semantics: The Scott-Strachey Approach to Programming Language Semantics. MIT Press, Cambridge (1977)

    MATH  Google Scholar 

  60. Szyperski, C.: Component Software: Beyond Object-Oriented Programming, 2nd edn. Addison-Wesley Longman Publishing Co., Inc., Boston (2002)

    Google Scholar 

  61. Vaandrager, F.W.: On the relationship between process algebra and input/output automata. In: LICS, pp. 387–398. IEEE Computer Society (1991)

    Google Scholar 

  62. Wang, Z., Wang, H., Zhan, N.: Refinement of models of software components. In: Shin, S.Y., Ossowski, S., Schumacher, M., Palakal, M.J., Hung, C.C. (eds.) SAC, pp. 2311–2318. ACM (2010)

    Google Scholar 

  63. Wirsing, M., Banâtre, J.-P., Hölzl, M., Rauschmayer, A. (eds.): Soft-Ware Intensive Systems. LNCS, vol. 5380. Springer, Heidelberg (2008)

    MATH  Google Scholar 

  64. Woodcock, J., Cavalcanti, A.: The semantics of circus. In: Bert, D., Bowen, J.P., Henson, M.C., Robinson, K. (eds.) ZB 2002. LNCS, vol. 2272, pp. 184–203. Springer, Heidelberg (2002)

    Google Scholar 

  65. Xiong, X., Liu, J., Ding, Z.: Design and verification of a trustable medical system. In: Johnsen, E.B., Stolz, V. (eds.) Proceedings of 3rd International Workshop on Harnessing Theories for Tool Support in Software. Electronic Notes in Theoretical Computer Science, vol. 266, pp. 77–92. Elsevier (2010)

    Google Scholar 

  66. Zhao, L., Liu, X., Liu, Z., Qiu, Z.: Graph transformations for object-oriented refinement. Formal Aspects of Computing 21(1-2), 103–131 (2009)

    Article  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Dong, R., Faber, J., Ke, W., Liu, Z. (2013). rCOS: Defining Meanings of Component-Based Software Architectures. In: Liu, Z., Woodcock, J., Zhu, H. (eds) Unifying Theories of Programming and Formal Engineering Methods. Lecture Notes in Computer Science, vol 8050. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-39721-9_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-39721-9_1

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-39720-2

  • Online ISBN: 978-3-642-39721-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics