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.
Similar content being viewed by others
References
Dijkstra EW. The humble programmer. Communications of the ACM, 1972, 15(10): 859–866, ACM Turing Award lecture
Brooks Jr F P. No silver bullet: Essence and accidents of software engineering. IEEE Computer, 1987, 20(4): 10–19
Booch G. Object-Oriented Analysis and Design with Applications. Boston: Addison-Wesley, 1994
Brooks Jr F P. The mythical man-month: After 20 years. IEEE Software, 1995, 12(5): 57–60
Holzmann G J. Conquering complexity. IEEE Computer, 2007, 40(12): 111–113
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
Peter L. The Peter Pyramid. New York: William Morrow, 1986
Leveson N G, Turner C S. An investigation of the Therac-25 accidents. IEEE Computer, 1993, 26(7): 18–41
Robinson K. Ariane 5: Flight 501 failure — A case study. http://www.cse.unsw.edu.au/?se4921/PDF/ariane5-article.pdf, 2011
Johnson J. My Life Is Failure: 100 Things You Should Know to Be a Better Project Leader. West Yarmouth: Standish Group International, 2006
Szyperski C. Component Software: Beyond Object-Oriented Program ming. Boston: Addison-Wesley, 1997
Object Management Group. Model driven architecture — A technical perspective. Document number ORMSC 2001-07-01, 2001
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
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
Zhao L, Liu X, Liu Z, Qiu Z. Graph transformations for object-oriented refinement. Formal Aspects of Computing, 2009, 21(1–2): 103–131
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
Hoare C A R. An axiomatic basis for computer programming. Communications of the ACM, 1969, 12(10): 576–580
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
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
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
He J, Li X, Liu Z. A theory of reactive components. Electronic Notes in Theoretical Computer Science, 2006, 160: 173–195
He J, Liu Z, Li X. rCOS:Arefinement calculus of object systems. Theoretical Computer Science, 2006, 365(1–2): 109–142
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
Spivey J M. The Z Notation: A Reference Manual. 2nd ed. Upper Saddle River: Prentice Hall, 1992
Jones C B. Systematic Software Development Using VDM. Upper Saddle River: Prentice Hall, 1990
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
Hoare C A R. Communicating Sequential Processes. Upper Saddle River: Prentice-Hall, 1985
Roscoe AW. Theory and Practice of Concurrency. Upper Saddle River: Prentice-Hall, 1997
Alfaro Ld, Henzinger T A. Interface automata. SIGSOFT Software Engineering Notes, 2001, 26(5): 109–120
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
Hoare C A R, He J. Unifying Theories of Programming. Upper Saddle River: Prentice-Hall, 1998
Dijkstra E W, Scholten C S. Predicate Calculus and Program Semantics. New York: Springer-Verlag, 1990
Fowler M. Refactoring — Improving the Design of Existing Code. Menlo Park: Addison-Wesley, 1999
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
Chandy K M, Misra J. Parallel Program Design: A Foundation. Reading: Addison-Wesley, 1988
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
Lamport L. The temporal logic of actions. ACM Transactions on Programming Languages and Systems, 1994, 16(3): 872–923
Milner R. Communication and Concurrency. Upper Saddle River: Prentice-Hall, 1989
Lynch N A, Tuttle M R. An introduction to input/output automata. CWI Quarterly, 1989, 2(3): 219–246
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
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
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
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
Object Management Group. Object constraint language, version 2.0, May 2006
Warmer J, Kleppe A. The Object Constraint Language: Precise Modeling with UML. Boston: Addison-Wesley, 1999
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
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
Lei B, Li X, Liu Z, Morisset C, Stolz V. Robustness testing for software components. Science of Computer Programming, 2010, 75(10): 879–897
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
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
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)
Author information
Authors and Affiliations
Corresponding author
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
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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11704-012-2901-5