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.
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
Abrial, J.R.: The B-Book: Assigning Programs to Meanings. Cambridge University Press (1996)
Abrial, J.R.: Modeling in Event-B: System and Software Engineering. Cambridge University Press (2010)
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)
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)
Booch, G.: Object-Oriented Analysis and Design with Applications. Addison-Wesley, Boston (1994)
Brooks, F.P.: No silver bullet: Essence and accidents of software engineering. IEEE Computer 20(4), 10–19 (1987)
Brooks, F.P.: The mythical man-month: After 20 years. IEEE Software 12(5), 57–60 (1995)
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)
Chandy, K.M., Misra, J.: Parallel Program Design: A Foundation. Addison-Wesley, Reading (1988)
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
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
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
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)
Clarke, D., Proença, J., Lazovik, A., Arbab, F.: Channel-based coordination via constraint satisfaction. Sci. Comput. Program. 76(8), 681–710 (2011)
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)
De Alfaro, L., Henzinger, T.: Interface automata. ACM SIGSOFT Software Engineering Notes 26(5), 109–120 (2001)
Dijkstra, E.W., Scholten, C.S.: Predicate Calculus and Program Semantics. Springer, New York (1990)
Dijkstra, E.W.: The humble programmer. Communications of the ACM 15(10), 859–866 (1972), an ACM Turing Award lecture
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)
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)
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
Fischer, C.: Combination and Implementation of Processes and Data: from CSP-OZ to Java. Ph.D. thesis, University of Oldenburg (2000)
Fowler, M.: Refactoring – Improving the Design of Existing Code. Addison-Wesley, Menlo Park (1999)
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
He, J., Li, X., Liu, Z.: A theory of reactive components. Electr. Notes Theor. Comput. Sci. 160, 173–195 (2006)
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
Hoare, C.A.R.: An axiomatic basis for computer programming. Communications of the ACM 12(10), 576–580 (1969)
Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall, Upper Saddle River (1985)
Hoare, C.A.R., He, J.: Unifying Theories of Programming. Prentice-Hall, Upper Saddle River (1998)
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
Holzmann, G.J.: The SPIN Model Checker: Primer and reference manual. Addison-Wesley (2004)
Holzmann, G.J.: Conquering complexity. IEEE Computer 40(12) (2007)
Johnson, J.: My Life Is Failure: 100 Things You Should Know to Be a Better Project Leader. Standish Group International, West Yarmouth (2006)
Jones, C.B.: Systematic Software Development using VDM. Prentice Hall, Upper Saddle River (1990)
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)
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)
Lamport, L.: The temporal logic of actions. ACM Transactions on Programming Languages and Systems 16(3), 872–923 (1994)
Lamport, L.: Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers. Addison-Wesley (2002)
Larman, C.: Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process, 3rd edn. Prentice-Hall (2005)
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)
Leveson, N.G., Turner, C.S.: An investigation of the Therac-25 accidents. IEEE Computer 26(7), 18–41 (1993)
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)
Liu, Z.: Software development with UML. Tech. Rep. 259, IIST, United Nations University, P.O. Box 3058, Macao (2002)
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)
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)
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
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
Lynch, N.A., Tuttle, M.R.: An introduction to input/output automata. CWI Quarterly 2(3), 219–246 (1989)
Manna, Z., Pnueli, A.: The temporal logic of reactive and concurrent systems:specification. Springer (1992)
Milner, R.: Communication and concurrency. Prentice-Hall, Inc., Upper Saddle River (1989)
Nielson, H., Nielson, F.: Semantics with Applications. A formal Introduction. Wiley (1993)
Object Managment Group: Model driven architecture - a technical perspective (2001), document number ORMSC 2001-07-01
Peter, L.: The Peter Pyramid. William Morrow, New York (1986)
Plotkin, G.D.: The origins of structural operational semantics. Journal of Logic and Algebraic Programming 60(61), 3–15 (2004)
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)
Robinson, K.: Ariane 5: Flight 501 failure—a case study (2011), http://www.cse.unsw.edu.au/~se4921/PDF/ariane5-article.pdf
Roscoe, A.W.: Theory and Practice of Concurrency. Prentice-Hall, Upper Saddle River (1997)
Spivey, J.M.: The Z Notation: A Reference Manual, 2nd edn. Prentice Hall, Upper Saddle River (1992)
Stoy, J.E.: Denotational Semantics: The Scott-Strachey Approach to Programming Language Semantics. MIT Press, Cambridge (1977)
Szyperski, C.: Component Software: Beyond Object-Oriented Programming, 2nd edn. Addison-Wesley Longman Publishing Co., Inc., Boston (2002)
Vaandrager, F.W.: On the relationship between process algebra and input/output automata. In: LICS, pp. 387–398. IEEE Computer Society (1991)
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)
Wirsing, M., Banâtre, J.-P., Hölzl, M., Rauschmayer, A. (eds.): Soft-Ware Intensive Systems. LNCS, vol. 5380. Springer, Heidelberg (2008)
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)
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)
Zhao, L., Liu, X., Liu, Z., Qiu, Z.: Graph transformations for object-oriented refinement. Formal Aspects of Computing 21(1-2), 103–131 (2009)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)