A Textual Notation for Modeling and Generating Code for Composite Structure

  • Mahmoud Husseini OrabiEmail author
  • Ahmed Husseini OrabiEmail author
  • Timothy C. LethbridgeEmail author
Conference paper
Part of the Communications in Computer and Information Science book series (CCIS, volume 991)


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


Umple Active object Composite structure UML 


  1. 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. 2.
    Lakkimsetti, S.K.: Rational Software Architect Community: Connexis User Guide (2014)Google Scholar
  3. 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. 4.
    Badreddin, O., Forward, A., Lethbridge, T.C.: Improving code generation for associations: enforcing multiplicity constraints and ensuring referential integrity, vol. 430 (2014)CrossRefGoogle Scholar
  5. 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). Scholar
  6. 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. 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. 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. 9.
    OMG: UML Profile for MARTE: Modeling and Analysis of Real-Time Embedded Systems (2011)Google Scholar
  10. 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. 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. 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. 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 1994Google Scholar
  14. 14.
    Mohlin, M.: Rational Software Architect Community: Modeling Real-Time Applications in RSARTE (2015)Google Scholar
  15. 15.
    OMG: OMG SysML Open Issues. Accessed 20 Apr 2018
  16. 16.
    OMG: OMG UML Open Issues. Accessed 20 Apr 2018
  17. 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. 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. 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, 2010Google Scholar
  20. 20.
    OMG: UML Superstructure Specification, v2.4.1 (2011). Accessed 01 May 2015
  21. 21.
    AUTOSAR: Release 4.2 Overview and Revision History (2014). Accessed 01 Jan 2016
  22. 22.
    Douglass, B.P.: Real Time UML: Advances in the UML for Real-Time Systems (2004)Google Scholar
  23. 23.
    Kan, S.H.: Metrics and Models in Software Quality Engineering. Addison-Wesley, Reading (2003)zbMATHGoogle Scholar
  24. 24.
    LocMetrics: LocMetrics - C#, C++, Java, and SQL. Accessed 19 Apr 2018

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.University of OttawaOttawaCanada

Personalised recommendations