Skip to main content

A Textual Notation for Modeling and Generating Code for Composite Structure

  • Conference paper
  • First Online:
Model-Driven Engineering and Software Development (MODELSWARD 2018)

Abstract

Models of the composite structure of a software system describe its components, how they are connected or contain each other, and how they communicate using ports and connectors. Although composite structure is one of the UML diagram types, it tends to be complex to use, or requires particular library support, or suffers from weak code generation, particularly in open source tools. Our previous work has shown that software modelers can benefit from a textual notation for UML concepts as well as from high-quality code generation, both of which we have implemented in Umple. This paper explains our extensions to Umple in order create a simple textual notation and comprehensive code generation for composite structure. A particular feature of our approach is that developers do not always need to explicitly encode protocols as they can be in many cases inferred. We present case studies of the composite structure of several systems designed using Umple, and demonstrate how the volume of code and cyclomatic complexity faced by developers is far lower than if they tried to program such systems directly in C++.

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

References

  1. Orabi, M.H., Orabi, A.H., Lethbridge, T.: Umple as a component-based language for the development of real-time and embedded applications. In: Proceedings of the 4th International Conference on Model-Driven Engineering and Software Development, pp. 282–291 (2016)

    Google Scholar 

  2. Lakkimsetti, S.K.: Rational Software Architect Community: Connexis User Guide (2014)

    Google Scholar 

  3. Badreddin, O., Lethbridge, T.C., Forward, A.: A test-driven approach for developing software languages. In: International Conference on Model-Driven Engineering and Software Development, MODELSWARD 2014, pp. 225–234 (2014)

    Google Scholar 

  4. Badreddin, O., Forward, A., Lethbridge, T.C.: Improving code generation for associations: enforcing multiplicity constraints and ensuring referential integrity, vol. 430 (2014)

    Chapter  Google Scholar 

  5. Lethbridge, T.C., Abdelzad, V., Husseini Orabi, M., Husseini Orabi, A., Adesina, O.: Merging modeling and programming using Umple. In: Margaria, T., Steffen, B. (eds.) ISoLA 2016. LNCS, vol. 9953, pp. 187–197. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-47169-3_14

    Chapter  Google Scholar 

  6. Lavender, R.G., Schmidt, D.C.: Active object: an object behavioral pattern for concurrent programming. In: Pattern Languages of Program Design 2, pp. 483–499. Addison-Wesley Longman Publishing Co., Inc., Boston (1996)

    Google Scholar 

  7. Husseini Orabi, M., Husseini Orabi, A., Lethbridge, T.C.: Concurrent programming using Umple. In: Proceedings of the 6th International Conference on Model-Driven Engineering and Software Development, pp. 575–585 (2018)

    Google Scholar 

  8. Husseini Orabi, M., Husseini Orabi, A., Lethbridge, T.C.: Component-based modeling in Umple. In: Proceedings of the 6th International Conference on Model-Driven Engineering and Software Development, pp. 247–255 (2018)

    Google Scholar 

  9. OMG: UML Profile for MARTE: Modeling and Analysis of Real-Time Embedded Systems (2011)

    Google Scholar 

  10. Mallet, F., Peraldi-Frati, M.A., André, C.: Marte CCSL to execute east-ADL timing requirements. In: Proceedings of the 2009 IEEE International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing, ISORC 2009, pp. 249–253 (2009)

    Google Scholar 

  11. Selic, B.: Real-Time Object-Oriented Modeling (ROOM). In: Proceedings of the 2nd IEEE Real-Time Technology and Applications Symposium (RTAS 1996), p. 214 (1996)

    Google Scholar 

  12. Espinoza, H., Gérard, S., Lönn, H., Kolagari, R.T.: Harmonizing MARTE, EAST-ADL2, and AUTOSAR to improve the modelling of automotive systems. In: The Workshop Standard, AUTOSAR (2009)

    Google Scholar 

  13. Olsen, A., Færgemand, O., Møller-Pedersen, B., Smith, J.R.W., Reed, R.: Systems Engineering Using SDL-92, North Holland, 28 September 1994

    Google Scholar 

  14. Mohlin, M.: Rational Software Architect Community: Modeling Real-Time Applications in RSARTE (2015)

    Google Scholar 

  15. OMG: OMG SysML Open Issues. https://issues.omg.org/issues/lists/sysml-rtf?view=OPEN. Accessed 20 Apr 2018

  16. OMG: OMG UML Open Issues. https://issues.omg.org/issues/spec/UML/2.5?view=OPEN. Accessed 20 Apr 2018

  17. Smaragdakis, Y., Batory, D.S.: Mixin-based programming in C++. In: Proceedings of the Second International Symposium on Generative and Component-Based Software Engineering-Revised Papers, GCSE 2000, pp. 163–177 (2000)

    Google Scholar 

  18. Orabi, M.H.: Facilitating the representation of composite structure, active objects, code generation, and software component descriptions in the Umple model-oriented programming language (Ph.D. thesis), University of Ottawa (2017)

    Google Scholar 

  19. Forward, “The Convergence of Modeling and Programming: Facilitating the Representation of Attributes and Associations in the Umple Model-Oriented Programming Language (PhD Thesis),” University of Ottawa, 2010

    Google Scholar 

  20. OMG: UML Superstructure Specification, v2.4.1 (2011). http://www.omg.org/spec/UML/2.4.1/Superstructure/PDF/. Accessed 01 May 2015

  21. AUTOSAR: Release 4.2 Overview and Revision History (2014). https://www.autosar.org/documents/. Accessed 01 Jan 2016

  22. Douglass, B.P.: Real Time UML: Advances in the UML for Real-Time Systems (2004)

    Google Scholar 

  23. Kan, S.H.: Metrics and Models in Software Quality Engineering. Addison-Wesley, Reading (2003)

    MATH  Google Scholar 

  24. LocMetrics: LocMetrics - C#, C++, Java, and SQL. http://www.locmetrics.com/. Accessed 19 Apr 2018

Download references

Author information

Authors and Affiliations

Authors

Corresponding authors

Correspondence to Mahmoud Husseini Orabi , Ahmed Husseini Orabi or Timothy C. Lethbridge .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Husseini Orabi, M., Husseini Orabi, A., Lethbridge, T.C. (2019). A Textual Notation for Modeling and Generating Code for Composite Structure. In: Hammoudi, S., Pires, L., Selic, B. (eds) Model-Driven Engineering and Software Development. MODELSWARD 2018. Communications in Computer and Information Science, vol 991. Springer, Cham. https://doi.org/10.1007/978-3-030-11030-7_16

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-11030-7_16

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-11029-1

  • Online ISBN: 978-3-030-11030-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics