Skip to main content

Model-Driven Design of Object and Component Systems

  • Conference paper
  • First Online:
Engineering Trustworthy Software Systems

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 9506))

Abstract

The notion of software engineering implies that software design and production should be based on the types of theoretical foundations and practical disciplines that are established in the traditional branches of engineering. The goal is to make development of complex software systems more predictable and the systems developed more trustworthy - safe, secure and dependable. A number of theories have been well developed in the past half a century, including Abstract Data Types, Hoare Logic, Process Calculi, and I/O automata, and those alike. Based on them, techniques and tools have been developed for software specification, refinement and verification.

However, the theoretically sound techniques and tools have not been seamlessly integrated in practical software development, and their impact upon commonly-used software systems is still far from convincing to software engineering practitioners. This is clearly reflected by the challenges of their applications in engineering large-scale systems, including Cyber-Physical Systems (CPS), Networks of Things and Cloud-Based Systems, that have multi-dimensional complexities. Indeed, students are not often shown how the theories, and their underpinned techniques and tools, can better inform the software engineering they are traditionally taught. The purpose of this course to demonstrate such an effort.

We present a model-driven design framework for component-based and object-oriented software systems. We identify a set of UML notations and textual descriptions for representing different abstractions of software artefacts produced in different development stages. These abstractions, their relations and manipulations all have formalisations in the rCOS formal method of component and object systems. The aim is to allow the advantage of using precise models for development better appreciated. We organise the lecture notes into three chapters, each having a title page but all the references to literature are given at the end of Part III.

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 EPUB and 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

Notes

  1. 1.

    It is now renamed to UNU-CS.

  2. 2.

    http://en.wikipedia.org/wiki/Wenzhou_train_collision.

  3. 3.

    http://www.omg.org.

  4. 4.

    http://www.uppaal.org.

  5. 5.

    CoCoME [29] has eight use cases.

  6. 6.

    In the CoCoME problem description [29], the hardware devices, such as Printer, Card Reader, Cash Box, Bar Code Scanner, and Light Display, are also modelled as actors that the software has to interact with. In our approach, they are separated from the application logic and treated as a separate embedded system.

  7. 7.

    There can be a number of adequate systems, as discussed in Sect. 2 about the 3rd attribute of software complexity.

  8. 8.

    It is not necessarily for the overall requirements analysis to be completed before design activities can start.

  9. 9.

    http://en.wikipedia.org/wiki/DavidParnas.

  10. 10.

    https://en.wikipedia.org/wiki/Problem_frames_approach.

  11. 11.

    This is the basis for identification of postconditions of an operation in Sect. 8.

  12. 12.

    Though the use case of Process Sale with Cash Payment and the use case of Buy Items with Cash [42] are both adequate, one is not a refinement of another by formal theory of refinement or process simulations.

  13. 13.

    The diagram, as many of the other UML diagrams in this chapter, is produced by using Visual Diagram www.visual-paradigm.com/features/uml-and-sysml-modeling.

  14. 14.

    A “conceptual model” is also called a “domain model”. A conceptual model can also be seen as an ontology model does in information systems, but it is the part of the ontology model that contains only the concepts and relations relevant for the requirements of the system under design.

  15. 15.

    This is similar to intentional and extensional definitions of sets in mathematics.

  16. 16.

    The UML Visual Paradigm tool does not support object-diagrams in the way that we want to use them. Here we abuse the Visual Paradigm class diagram by prefixing the class name with (optionally) a name followed a colon ‘:’ to represented the fact that the instance has type of the class, and giving values to the attributes.

  17. 17.

    In a further system evolution, more software components can be developed to automate these interactions so some of the interactions among actors are not needed anymore. For example, if online shopping is to be supported a customer would be a direct actor for the Make Order use case.

  18. 18.

    This does not explicitly indicated by Controller pattern, but it is an object that Cashier actor uses to handle the operations. It also represents the Cash Desk PC.

  19. 19.

    The choice of CashDesk can also be seen as an artificial handler.

References

  1. Hamilton, M.: The engineer who took the apollo to the moon. https://medium.com/@verne/margaret-hamilton-the-engineer-who-took-the-apollo-to-the-moon-7d550c73d3fa

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

    Book  MATH  Google Scholar 

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

    Book  MATH  Google Scholar 

  4. Limet, S., Robert, S., Turki, A.: Controlling an iteration-wise coherence in dataflow. In: Arbab, F., Ölveczky, P.C. (eds.) FACS 2011. LNCS, vol. 7253, pp. 241–258. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  5. Bell, M.: Service-Oriented Modeling: Service Analysis, Design, and Architecture. Wiley & Sons, New Jersey (2008)

    Google Scholar 

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

    MATH  Google Scholar 

  7. Bowen, J.P., Hinchey, M.G.: Formal methods. In: Gonzalez, T.F., Diaz-Herrera, J., Tucker, A.B.(eds.) Computer Science Handbook, 3rd edn. Section XI, Software Engineering, vol. 1, Computer Science and Software Engineering, Part 8, Programming Languages, Chapter 71, pp. 1–25. CRC Press (2014)

    Google Scholar 

  8. Brooks, F.P.: No silver bullet: essence and accidents of software engineering. IEEE Comput. 20(4), 10–19 (1987)

    Article  MathSciNet  Google Scholar 

  9. Brooks, F.P.: The mythical man-month: after 20 years. IEEE Softw. 12(5), 57–60 (1995)

    Article  Google Scholar 

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

    Google Scholar 

  11. 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)

    Chapter  Google Scholar 

  12. Chen, X., Liu, Z., Mencl, V.: Separation of concerns and consistent integration in requirements modelling. In: van Leeuwen, J., Italiano, G.F., van der Hoek, W., Meinel, C., Sack, H., Plášil, F. (eds.) SOFSEM 2007. LNCS, vol. 4362, pp. 819–831. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  13. 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)

    Chapter  Google Scholar 

  14. Chen, Z., Li, X., Liu, Z., Stolz, V., Yang, L.: Harnessing rCOS for tool support —the CoCoME experience. In: Jones, C.B., Liu, Z., Woodcock, J. (eds.) Formal Methods and Hybrid Real-Time Systems. LNCS, vol. 4700, pp. 83–114. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  15. Chen, Z., Liu, Z., Ravn, A.P., Stolz, V., Zhan, N.: Refinement and verification in component-based model driven design. Sci. Comput. Program. 74(4), 168–196 (2009)

    Article  MathSciNet  MATH  Google Scholar 

  16. 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/Overture Workshop, pp. 15–24. No. CS-TR-1099 in Technical report Series, University of Newcastle upon Tyne (2008)

    Google Scholar 

  17. Chen, Z., Morisset, C., Stolz, V.: Specification and validation of behavioural protocols in the rCOS modeler. In: Arbab, F., Sirjani, M. (eds.) FSEN 2009. LNCS, vol. 5961, pp. 387–401. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

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

    Book  MATH  Google Scholar 

  20. Dijkstra, E.W.: The humble programmer. Commun. ACM 15(10), 859–866 (1972). An ACM Turing Award lecture

    Article  Google Scholar 

  21. Dong, R., Zhan, N., Zhao, L.: An interface model of software components. In: Liu, Z., Woodcock, J., Zhu, H. (eds.) ICTAC 2013. LNCS, vol. 8049, pp. 159–176. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  22. Fischer, C.: Fault-tolerant programming by transformations. Ph.D. thesis, University of Warwick (1991)

    Google Scholar 

  23. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Boston (1994)

    MATH  Google Scholar 

  24. Harel, D.: Statecharts: a visual formalism for complex systems. Sci. Comput. Program. 8(3), 231–274 (1987)

    Article  MathSciNet  MATH  Google Scholar 

  25. 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)

    Chapter  Google Scholar 

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

    Article  Google Scholar 

  27. He, J., Liu, Z., Li, X.: rCOS: a refinement calculus of object systems. Theor. Comput. Sci. 365(1–2), 109–142 (2006)

    MathSciNet  MATH  Google Scholar 

  28. Heineman, G.T., Councill, W.T.: Component-Based Software Engineering: Putting the Pieces Together. Addison-Wesley Professional, Reading (2001)

    Google Scholar 

  29. Herold, S., et al.: CoCoME - the common component modeling example. In: Rausch, A., Reussner, R., Mirandola, R., Plášil, F. (eds.) The Common Component Modeling Example. LNCS, vol. 5153, pp. 16–53. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  30. Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580 (1969)

    Article  MATH  Google Scholar 

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

    MATH  Google Scholar 

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

    MATH  Google Scholar 

  33. Holzmann, G.J.: The SPIN Model Checker: Primer and Reference Manual. Addison-Wesley, Reading (2004)

    Google Scholar 

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

    Article  Google Scholar 

  35. 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 

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

    MATH  Google Scholar 

  37. Ke, W., Li, X., Liu, Z., Stolz, V.: rCOS: a formal model-driven engineering method for component-based software. Front. Comput. Sci. China 6(1), 17–39 (2012)

    MathSciNet  MATH  Google Scholar 

  38. 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 

  39. Khaitan, S.: Design techniques and applications of cyber physical systems: a survey. IEEE Syst. J. 9(2), 350–365 (2014)

    Article  Google Scholar 

  40. Kroll, P., Kruchten, P.: The Rational Unified Process Made Easy: a Practitioner’s Guide to the RUP. Addison-Wesley, Boston (2003)

    Google Scholar 

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

    Google Scholar 

  42. Larman, C.: Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process, 2nd edn. Prentice-Hall, Upper Saddle River (2001)

    Google Scholar 

  43. Lee, E.: Cyber physical systems: design challenges. Technical report No. UCB/EECS-2008-8, University of California, Berkeley (2008)

    Google Scholar 

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

    Article  Google Scholar 

  45. Li, D., Li, X., Liu, Z., Stolz, V.: Interactive transformations from object-oriented models to component-based models. Technical report 451, IIST, United Nations University, Macao (2011)

    Google Scholar 

  46. Li, D., Li, X., Liu, Z., Stolz, V.: Interactive transformations from object-oriented models to component-based models. In: Arbab, F., Ölveczky, P.C. (eds.) FACS 2011. LNCS, vol. 7253, pp. 97–114. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  47. Li, D., Li, X., Liu, Z., Stolz, V.: Support formal component-based development with UML profile. In: 22nd Australian Conference on Software Engineering (ASWEC 2013), Melbourne, pp. 191–200. IEEE Computer Society, 4–7 June 2013

    Google Scholar 

  48. Li, X., Lu, R., Liang, X., Shen, X., Chen, J., Lin, X.: Smart community: an internet of things application. Commun. Mag. 49(11), 68–75 (2011)

    Article  Google Scholar 

  49. Li, X., Liu, Z., He, J.: Formal and use-case driven requirement analysis in UML. In: 25th International Computer Software and Applications Conference (COMPSAC 2001), Invigorating Software Development, Chicago, pp. 215–224. IEEE Computer Society, 8–12 October 2001

    Google Scholar 

  50. Li, X., Liu, Z., He, J.: A formal semantics of UML sequence diagram. In: 15th Australian Software Engineering Conference (ASWEC 2004), Melbourne, pp. 168–177. IEEE Computer Society, 13–16 April 2004

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  53. Liu, Z.: Software development with UML. Technical Report 259, IIST, United Nations University, P.O. Box 3058, Macao (2002)

    Google Scholar 

  54. Liu, Z., Chen, X.: Interface-driven design in evolving component-based architectures, workshop of the 25 Anniversary of ProCoS, Proceedings to be Published in Springer Lecture Notes in Computer Science (2015)

    Google Scholar 

  55. Liu, Z., He, J., Li, X., Chen, Y.F.: A relational model for formal object-oriented requirement analysis in UML. In: Dong, J.S., Woodcock, J. (eds.) ICFEM 2003. LNCS, vol. 2885, pp. 641–664. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  56. Liu, Z., Joseph, M.: Transformation of programs for fault-tolerance. Form. Asp. Comput. 4(5), 442–469 (1992)

    Article  MATH  Google Scholar 

  57. Liu, Z., Joseph, M.: Specification and verification of fault-tolerance, timing, and scheduling. ACM Trans. Program. Lang. Syst. 21(1), 46–89 (1999)

    Article  Google Scholar 

  58. Liu, Z., Kang, E.Y., Zhan, N.: Composition and refinement of components. In: Butterfield, A. (ed.) UTP 2008. LNCS, vol. 5713, pp. 238–257. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  59. Liu, Z., Li, X., He, J.: Using transition systems to unify UML models. In: George, C.W., Miao, H. (eds.) ICFEM 2002. LNCS, vol. 2495, pp. 535–547. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  60. Liu, Z., Mencl, V., Ravn, A.P., Yang, L.: Harnessing theories for tool support. In: Proceedings of the Second International Symposium on Leveraging Applications of Formal Methods, Verification and Validation (ISoLA 2006), pp. 371–382. IEEE Computer Society, full version as UNU-IIST Technical report 343 (2006)

    Google Scholar 

  61. 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)

    Chapter  Google Scholar 

  62. Long, Q., Liu, Z., Li, X., He, J.: Consistent code generation from UML models. In: Australian Software Engineering Conference, pp. 23–30. IEEE Computer Society, UNU-IIST TR 319 (2005)

    Google Scholar 

  63. Long, Q., Qiu, Z., Liu, Z.: Formal use of design patterns and refactoring. In: Margaria, T., Steffen, B. (eds.) ISoLA 2008. Communications in Computer and Information Science, vol. 17, pp. 323–338. Springer, Berlin (2008)

    Google Scholar 

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

    MathSciNet  MATH  Google Scholar 

  65. Manna, Z., Pnueli, A.: The Temporal Logic of Reactive and Concurrent Systems: Specification. Springer, New York (1992)

    Book  MATH  Google Scholar 

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

    MATH  Google Scholar 

  67. Naur, P., Randell, B. (eds.): Software engineering: report of a conference sponsored by the NATO science committee, Garmisch, 7–11 October 1968, Brussels, Scientific Affairs Division, NATO (1969)

    Google Scholar 

  68. Nielson, H., Nielson, F.: Semantics with Applications. A Formal Introduction. Wiley, Chichester (1993)

    MATH  Google Scholar 

  69. Nuseibeh, B., Easterbrook, S.: Requirements engineering: a roadmap. In: Proceedings of the Conference on the Future of Software Engineering, ICSE 2000, pp. 35–46. ACM, New York (2000)

    Google Scholar 

  70. Object Managment Group: Model driven architecture - a technical perspective, document number ORMSC, 01 July 2001

    Google Scholar 

  71. Oettinger, A.: The hardware-software complementarity. Commun. ACM 10(10), 604–606 (1967)

    Article  Google Scholar 

  72. Palomar, E., Liu, Z., Bowen, J.P., Zhang, Y., Maharjan, S.: Component-based modelling for sustainable and scalable smart meter networks. In: Proceeding of IEEE International Symposium on a World of Wireless, Mobile and Multimedia Networks, WoWMoM 2014, Sydney, pp. 1–6, 19 June 2014

    Google Scholar 

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

    Google Scholar 

  74. Peterson, J.L.: Petri Nets. ACM Comput. Surv. 9(3), 223–252 (1977)

    Article  MATH  Google Scholar 

  75. Plotkin, G.D.: The origins of structural operational semantics. J. Log. Algebr. Program. 60(61), 3–15 (2004)

    Article  MathSciNet  MATH  Google Scholar 

  76. Pressman, R.S.: Software Engineering: A Practitioner’s Approach. The McGraw-Hill Companies, New York (2005)

    MATH  Google Scholar 

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

    Chapter  Google Scholar 

  78. Randell, B., Buxton, J. (eds.): Software engineering: report of a conference sponsored by the NATO science committee, Rome, Italy, 27–31 October 1969, Brussels, Scientific Affairs Division, NATO (1969)

    Google Scholar 

  79. Rausch, A., Reussner, R., Mirandola, R., Plášil, F.: Introduction. In: Rausch, A., Reussner, R., Mirandola, R., Plášil, F. (eds.) The Common Component Modeling Example. LNCS, vol. 5153, pp. 1–3. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  80. Rayl, A.: NASA engineers and scientists-transforming dreams into reality (2008)

    Google Scholar 

  81. Robinson, K.: Ariane 5: flight 501 failure - a case study (2011)

    Google Scholar 

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

    Google Scholar 

  83. Shapiro, M.: Smart cities: quality of life, productivity, and the growth effects of human capital. Rev. Econ. Stat. 88, 324–335 (2006)

    Article  Google Scholar 

  84. Sommerville, I.: Software Engineering, 6th edn. Pearson Education Ltd., England (2001)

    MATH  Google Scholar 

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

    MATH  Google Scholar 

  86. Stellman, A., Greene, J.: Applied Software Project Management. O’Reilly Media (2005)

    Google Scholar 

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

    MATH  Google Scholar 

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

    Google Scholar 

  89. Wirsing, M., Banâtre, J.P., Hölzl, M.M., Rauschmayer, A. (eds.): Software-Intensive Systems and New Computing Paradigms - Challenges and Visions, vol. 5380. Springer, New York (2008)

    MATH  Google Scholar 

  90. Yang, L., Stolz, V.: Integrating refinement into software development tools. In: Pu, G., Stolz, V. (eds.) 1st International Workshop on Harnessing Theories for Tool Support in Software. Electronic Notes in Theoretical Computer Science, vol. 207, pp. 69–88. Elsevier, Amsterdam, UNU-IIST TR 385 (2008)

    Google Scholar 

  91. Zhao, L., Liu, X., Liu, Z., Qiu, Z.: Graph transformations for object-oriented refinement. Form. Asp. Comput. 21(1–2), 103–131 (2009)

    Article  MATH  Google Scholar 

  92. Zhao, L., Wang, S., Liu, Z.: Graph-based object-oriented hoare logic. In: Liu, Z., Woodcock, J., Zhu, H. (eds.) Theories of Programming and Formal Methods. LNCS, vol. 8051, pp. 374–393. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

Download references

Acknowledgement

The development of materials of this chapter started in 1998, and it has been revised ever since through the teaching at the University of leicester during 1998–2001, United Nations University -International Institute for Software Technology (UNU-IIST, Macau) in 2001–2013, and Birmingham City University in 2015, and at many international training schools (mostly supported by the UNU-IIST). We acknowledge the materials in the textbook of Larman [42] as a major source of knowledge and ideas, that have developed in all the versions of the course notes. The extensive research at UNU-IIST on the rCOS method and the development of its tool support have significantly contributed to development of the understanding of theoretical insight of object-oriented design, component-based design, and model-driven development, and their relations. We acknowledge the contribution from Xin Chen, Zhenbang Chen, Ruzheng Dong, He Jifeng, Wei Ke, Dan Li Xiaoshan Li, Jing Liu, Charles Morisset, Anders Ravn, Volker Stolz, Shuling Wang, Jing Yang, Liang Zhao, and Naijun Zhan.

Our special thanks go to Jonathan Bowen and Anders Ravn for their careful reading and constructive comments, without that we could not have made this chapter into its current form.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Zhiming Liu .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing Switzerland

About this paper

Cite this paper

Liu, Z., Chen, X. (2016). Model-Driven Design of Object and Component Systems. In: Liu, Z., Zhang, Z. (eds) Engineering Trustworthy Software Systems. Lecture Notes in Computer Science(), vol 9506. Springer, Cham. https://doi.org/10.1007/978-3-319-29628-9_4

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-29628-9_4

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-29627-2

  • Online ISBN: 978-3-319-29628-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics