Skip to main content
Log in

rCOS: a formal model-driven engineering method for component-based software

  • Research Article
  • Published:
Frontiers of Computer Science Aims and scope Submit manuscript

Abstract

Model-driven architecture (MDA) has become a main stream technology for software-intensive system design. The main engineering principle behind it is that the inherent complexity of software development can only be mastered by building, analyzing and manipulating system models. MDA also deals with system complexity by providing component-based design techniques, allowing independent component design, implementation and deployment, and then system integration and reconfiguration based on component interfaces. The model of a system in any stage is an integration of models of different viewpoints. Therefore, for a model-driven method to be applied effectively, it must provide a body of techniques and an integrated suite of tools for model construction, validation, and transformation. This requires a number of modeling notations for the specification of different concerns and viewpoints of the system. These notations should have formally defined syntaxes and a unified theory of semantics. The underlying theory of the method is needed to underpin the development of tools and correct use of tools in software development, as well as to formally verify and reason about properties of systems in mission-critical applications. The modeling notations, techniques, and tools must be designed so that they can be used seamlessly in supporting development activities and documentation of artifacts in software design processes. This article presents such a method, called the rCOS, focusing on the models of a system at different stages in a software development process, their semantic integration, and how they are constructed, analyzed, transformed, validated, and verified.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Dijkstra EW. The humble programmer. Communications of the ACM, 1972, 15(10): 859–866, ACM Turing Award lecture

    Article  Google Scholar 

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

    Article  MathSciNet  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  5. Holzmann G J. Conquering complexity. IEEE Computer, 2007, 40(12): 111–113

    Article  Google Scholar 

  6. Wirsing M, Banâtre J P, Hölzl M, Rauschmayer A. Software-Intensive Systems and New Computing Paradigms — Challenges and Visions. Lecture Notes in Computer Science, 2008, 5380

  7. Peter L. The Peter Pyramid. New York: William Morrow, 1986

    Google Scholar 

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

    Article  Google Scholar 

  9. Robinson K. Ariane 5: Flight 501 failure — A case study. http://www.cse.unsw.edu.au/?se4921/PDF/ariane5-article.pdf, 2011

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

    Google Scholar 

  11. Szyperski C. Component Software: Beyond Object-Oriented Program ming. Boston: Addison-Wesley, 1997

    Google Scholar 

  12. Object Management Group. Model driven architecture — A technical perspective. Document number ORMSC 2001-07-01, 2001

  13. Liu Z, Kang E, Zhan N. Composition and refinement of components. In: Butterfield A, eds. Post Event Proceedings of UTP08. Lecture Notes in Computer Science, 2009, 5713

  14. Chen Z, Liu Z, Ravn A P, Stolz V, Zhan N. Refinement and verification in component-based model driven design. Science of Computer Programming, 2009, 74(4): 168–196

    Article  MathSciNet  MATH  Google Scholar 

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

    Article  MATH  Google Scholar 

  16. Chen X, He J, Liu Z, Zhan N. A model of component-based programming. In: Arbab F, Sirjani M, eds. International Symposium on Fundamentals of Software Engineering, Lecture Notes in Computer Science, 2007, 4767: 191–206

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

    Article  MATH  Google Scholar 

  18. Chen X, Liu Z, Mencl V. Separation of concerns and consistent integration in requirements modelling. In: Leeuwen J, Italiano G F, Hoek W, Meinel C, Sack H, Plášil F, eds. Proceedings of 33rd Conference on Current Trends in Theory and Practice of Computer Science. Lecture Notes in Computer Science, 2007, 4362

  19. Liu J, Liu Z, He J, Li X. Linking UML models of design and requirement. In: Proceedings of the 2004 Australian Software Engineering Conference. Washington: IEEE Computer Society, 2004, 329–338

    Google Scholar 

  20. Li X, Liu Z, He J. Consistency checking of UML requirements. In: Proceedings of 10th International Conference on Engineering of Complex Computer Systems. Washington: IEEE Computer Society, 2005, 411–420

    Google Scholar 

  21. He J, Li X, Liu Z. A theory of reactive components. Electronic Notes in Theoretical Computer Science, 2006, 160: 173–195

    Article  Google Scholar 

  22. He J, Liu Z, Li X. rCOS:Arefinement calculus of object systems. Theoretical Computer Science, 2006, 365(1–2): 109–142

    MathSciNet  MATH  Google Scholar 

  23. Ke W, Liu Z, Wang S, Zhao L. A graph-based operational semantics of OO programs. In: Proceedings of 11th International Conference on Formal Engineering Methods. Lecture Notes in Computer Science, 2009, 5885: 347–366

    Google Scholar 

  24. Spivey J M. The Z Notation: A Reference Manual. 2nd ed. Upper Saddle River: Prentice Hall, 1992

    Google Scholar 

  25. Jones C B. Systematic Software Development Using VDM. Upper Saddle River: Prentice Hall, 1990

    MATH  Google Scholar 

  26. Leavens G T. JML’s rich, inherited specifications for behavioral subtypes. In: Liu Z, He J, eds. Proceedings of 8th International Conference on Formal Engineering Methods. Lecture Notes in Computer Science, 2006, 4260: 2–34

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

    MATH  Google Scholar 

  28. Roscoe AW. Theory and Practice of Concurrency. Upper Saddle River: Prentice-Hall, 1997

    Google Scholar 

  29. Alfaro Ld, Henzinger T A. Interface automata. SIGSOFT Software Engineering Notes, 2001, 26(5): 109–120

    Article  Google Scholar 

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

    Article  Google Scholar 

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

    Google Scholar 

  32. Dijkstra E W, Scholten C S. Predicate Calculus and Program Semantics. New York: Springer-Verlag, 1990

    MATH  Google Scholar 

  33. Fowler M. Refactoring — Improving the Design of Existing Code. Menlo Park: Addison-Wesley, 1999

    Google Scholar 

  34. Larman C. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process. 3rd ed. Upper Saddle River: Prentice-Hall, 2005

    Google Scholar 

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

    MATH  Google Scholar 

  36. Back R J R, von Wright J. Trace refinement of action systems. In: Proceedings of 5th International Conference on Concurrency Theory. Lecture Notes in Computer Science, 1994, 836: 367–384

    Google Scholar 

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

    Article  Google Scholar 

  38. Milner R. Communication and Concurrency. Upper Saddle River: Prentice-Hall, 1989

    MATH  Google Scholar 

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

    MathSciNet  MATH  Google Scholar 

  40. Chen Z, Liu Z, Stolz V. The rCOS tool. In: Fitzgerald J, Larsen P G, Sahara S, eds. Modelling and Analysis in VDM: Proceedings of the Fourth VDM/OvertureWorkshop, number CSTR-1099 in Technical Report Series. Newcastle: University of Newcastle Upon Tyne, 2008, 15–24

    Google Scholar 

  41. Li D, Li X, Liu Z, Stolz V. Interactive transformations from objectoriented models to component-based models. Technical Report 451, IIST, United Nations University, Macao, 2011

    Google Scholar 

  42. Chen Z, Hannousse A H, Hung D V, Knoll I, Li X, Liu Y, Liu Z, Nan Q, Okika J C, Ravn A P, Stolz V, Yang L, Zhan N. Modelling with relational calculus of object and component systems-rCOS. In: Rausch A, Reussner R, Mirandola R, Plasil F, eds. The Common Component Modeling Example. Lecture Notes in Computer Science, 2008, 5153(Chapter 3): 116–145

  43. Li X, Liu Z, Schäf M, Yin L. Auto PA: Automatic prototyping from requirements. In: Margaria T, Steffen B, eds. Proceedings of 4th International Conference on Leveraging Applications of Formal Methods. Lecture Notes in Computer Science, 2010, 6415: 609–624

  44. Object Management Group. Object constraint language, version 2.0, May 2006

  45. Warmer J, Kleppe A. The Object Constraint Language: Precise Modeling with UML. Boston: Addison-Wesley, 1999

    Google Scholar 

  46. Chen Z, Morisset C, Stolz V. Specification and validation of behavioural protocols in the rCOS modeler. In: Arbab F, Sirjani M, eds. Proceedings of 3rd IPM International Conference on Fundamentals of Software Engineering. Lecture Notes in Computer Science, 2009, 5961: 387–401

  47. Liu Z, Morisset C, Wang S. A graph-based implementation for mechanized refinement calculus of oo programs. In: Davies J, Silva L, Silva Simão Ad, eds. Proceedings of 13th Brazilian Symposium on Formal Methods. Lecture Notes in Computer Science, 2010, 6527: 258–273

  48. Lei B, Li X, Liu Z, Morisset C, Stolz V. Robustness testing for software components. Science of Computer Programming, 2010, 75(10): 879–897

    Article  MATH  Google Scholar 

  49. 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. Elec tronic Notes in Theoretical Computer Science, 2010, 266: 77–92

  50. 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. Washington: IEEE Computer Society, 2006, 27–36

    Google Scholar 

  51. Bertolini C, Liu Z, Schäf M, Stolz V. Towards a formal integrated model of collaborative healthcare workflows. Technical Report 450, IIST, United Nations University, Macao, 2011. In: Proceedings of 1st International Symposium on Foundations of Health Information Engineering and Systems (In press)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Zhiming Liu.

Additional information

Wei Ke is a researcher and lecturer of Macao Polytechnic Institute. He received his MSc from Institute of Software of the Chinese Academy of Sciences. He is currently a PhD student of School of Computer Science and Engineering, Beihang University. His research interests include programming languages, formal methods and tool support for object-oriented and component-based engineering and systems. His recent research focus is model-driven architectures in health informatics.

Xiaoshan Li is an associate professor of Department of Computer and Information Science, University of Macau. He received his PhD in 1994 from Institute of Software of the Chinese Academy of Sciences. His research interests include formal specification and verification of concurrent and real-time systems, and sound methods for object-oriented and component-based engineering and systems. His recent research focus is software engineering methods in health care.

Zhiming Liu is a Senior Research Fellow of UNU-IIST and the head of Information Engineering and Technology in Health Programme (IETH). Before UNU-IIST, he was a University Lecturer at the University of Leicester and a Research Fellow at the University of Warwick. He holds a master degree from the Institute of Software of the Chinese Academy of Sciences, and a PhD from the University of Warwick. His research interest is in formal theories and techniques of software engineering. He is internationally known for his work on the Transformational Approach to Fault-Tolerance and Real-Time computing, and the rCOS Method of Model-Driven Design of Component Software. The research of IETH extends and applies these methods to human and environmental health care.

Volker Stolz is a post-doc in the Precise Modelling and Analysis group in the Department of Informatics at the University of Oslo, Norway, and Adjunct Research Fellow at UNU-IIST, where he is Principal Investigator of the “Applied Runtime Verification” project. He holds a master and PhD degree in Computer Science from RWTH Aachen, Germany. His current interest is integration of formal methods into main-stream software engineering approaches and tools.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Ke, W., Li, X., Liu, Z. et al. rCOS: a formal model-driven engineering method for component-based software. Front. Comput. Sci. 6, 17–39 (2012). https://doi.org/10.1007/s11704-012-2901-5

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11704-012-2901-5

Keywords

Navigation