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

Wei KE, Xiaoshan LI, Zhiming LIU, Volker STOLZ

PDF(772 KB)
PDF(772 KB)
Front. Comput. Sci. ›› DOI: 10.1007/s11704-012-2901-5
RESEARCH ARTICLE

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

Author information +
History +

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.

Keywords

component-based design / models / model transformations / verification / tool support

Cite this article

Download citation ▾
Wei KE, Xiaoshan LI, Zhiming LIU, Volker STOLZ. rCOS: a formal model-driven engineering method for component-based software. Front Comput Sci, https://doi.org/10.1007/s11704-012-2901-5

References

[1]
Dijkstra EW. The humble programmer. Communications of the ACM, 1972, 15(10): 859-866, ACM Turing Award lecture
CrossRef Google scholar
[2]
Brooks Jr F P. No silver bullet: Essence and accidents of software engineering. IEEE Computer, 1987, 20(4): 10-19
CrossRef Google scholar
[3]
Booch G. Object-Oriented Analysis and Design with Applications. Boston: Addison-Wesley, 1994
[4]
Brooks Jr F P. The mythical man-month: After 20 years. IEEE Software, 1995, 12(5): 57-60
[5]
Holzmann G J. Conquering complexity. IEEE Computer, 2007, 40(12): 111-113
CrossRef 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
[8]
Leveson N G, Turner C S. An investigation of the Therac-25 accidents. IEEE Computer, 1993, 26(7): 18-41
CrossRef 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
[11]
Szyperski C. Component Software: Beyond Object-Oriented Program ming. Boston: Addison-Wesley, 1997
[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
CrossRef 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
CrossRef 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
CrossRef Google scholar
[17]
Hoare C A R. An axiomatic basis for computer programming. Communications of the ACM, 1969, 12(10): 576-580
CrossRef 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
[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
[21]
He J, Li X, Liu Z. A theory of reactive components. Electronic Notes in Theoretical Computer Science, 2006, 160: 173-195
CrossRef Google scholar
[22]
He J, Liu Z, LiX. rCOS:Arefinement calculus of object systems. Theoretical Computer Science, 2006, 365(1-2): 109-142
CrossRef 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
CrossRef Google scholar
[24]
Spivey J M. The Z Notation: A Reference Manual. 2nd ed. Upper Saddle River: Prentice Hall, 1992
[25]
Jones C B. Systematic Software Development Using VDM. Upper Saddle River: Prentice Hall, 1990
[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
[28]
Roscoe AW. Theory and Practice of Concurrency. Upper Saddle River: Prentice-Hall, 1997
[29]
Alfaro Ld, Henzinger T A. Interface automata. SIGSOFT Software Engineering Notes, 2001, 26(5): 109-120
CrossRef 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
CrossRef Google scholar
[31]
Hoare C A R, He J. Unifying Theories of Programming. Upper Saddle River: Prentice-Hall, 1998
[32]
Dijkstra E W, Scholten C S. Predicate Calculus and Program Semantics. New York: Springer-Verlag, 1990
[33]
Fowler M. Refactoring — Improving the Design of Existing Code. Menlo Park: Addison-Wesley, 1999
[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
[35]
Chandy K M, Misra J. Parallel Program Design: A Foundation. Reading: Addison-Wesley, 1988
[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
CrossRef Google scholar
[37]
Lamport L. The temporal logic of actions. ACM Transactions on Programming Languages and Systems, 1994, 16(3): 872-923
CrossRef Google scholar
[38]
Milner R. Communication and Concurrency. Upper Saddle River: Prentice-Hall, 1989
[39]
Lynch N A, Tuttle M R. An introduction to input/output automata. CWI Quarterly, 1989, 2(3): 219-246
[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
[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
[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. AutoPA: 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, <month>May</month>2006
[45]
Warmer J, Kleppe A. The Object Constraint Language: Precise Modeling with UML. Boston: Addison-Wesley, 1999
[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
CrossRef 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
[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)

RIGHTS & PERMISSIONS

2014 Higher Education Press and Springer-Verlag Berlin Heidelberg
AI Summary AI Mindmap
PDF(772 KB)

Accesses

Citations

Detail

Sections
Recommended

/