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++.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
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)
Lakkimsetti, S.K.: Rational Software Architect Community: Connexis User Guide (2014)
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)
Badreddin, O., Forward, A., Lethbridge, T.C.: Improving code generation for associations: enforcing multiplicity constraints and ensuring referential integrity, vol. 430 (2014)
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
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)
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)
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)
OMG: UML Profile for MARTE: Modeling and Analysis of Real-Time Embedded Systems (2011)
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)
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)
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)
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
Mohlin, M.: Rational Software Architect Community: Modeling Real-Time Applications in RSARTE (2015)
OMG: OMG SysML Open Issues. https://issues.omg.org/issues/lists/sysml-rtf?view=OPEN. Accessed 20 Apr 2018
OMG: OMG UML Open Issues. https://issues.omg.org/issues/spec/UML/2.5?view=OPEN. Accessed 20 Apr 2018
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)
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)
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
OMG: UML Superstructure Specification, v2.4.1 (2011). http://www.omg.org/spec/UML/2.4.1/Superstructure/PDF/. Accessed 01 May 2015
AUTOSAR: Release 4.2 Overview and Revision History (2014). https://www.autosar.org/documents/. Accessed 01 Jan 2016
Douglass, B.P.: Real Time UML: Advances in the UML for Real-Time Systems (2004)
Kan, S.H.: Metrics and Models in Software Quality Engineering. Addison-Wesley, Reading (2003)
LocMetrics: LocMetrics - C#, C++, Java, and SQL. http://www.locmetrics.com/. Accessed 19 Apr 2018
Author information
Authors and Affiliations
Corresponding authors
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
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)