Exploring a Model-Oriented and Executable Syntax for UML Attributes

  • Omar Badreddin
  • Andrew Forward
  • Timothy C. Lethbridge
Part of the Studies in Computational Intelligence book series (SCI, volume 496)


Implementing UML attributes directly in an object-oriented language may not appear to be complex, since such languages already support member variables. The distinction arises when considering the differences between modelling a class and implementing it. In addition to representing attributes, member variables can also represent association ends and internal data including counters, caching, or sharing of local data. Attributes in models also support additional characteristics such as being unique, immutable, or subject to lazy instantiation. In this paper we present modeling characteristics of attributes from first principles and investigate how attributes are handled in several open-source systems. We look code-generation of attributes by various UML tools. Finally, we present our own Umple language along with its code generation patterns for attributes, using Java as the target language.


Attributes UML Model Driven Design Code Generation Umple Model-Oriented Programming Language 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Forward, A., Lethbridge, T.C.: Problems and opportunities for model-centric versus code-centric software development: A survey of software professionals. In: International Workshop on Models in Software Engineering, MiSE, pp. 27–32 (2008)Google Scholar
  2. 2.
    Forward, A., Lethbridge, T.C., Brestovansky, D.: Improving program comprehension by enhancing program constructs: An analysis of the umple language. In: International Conference on Program Comprehension (ICPC), pp. 311–312 (2009)Google Scholar
  3. 3.
    Umple language online, http://www.try.umple.org (accessed 2013)
  4. 4.
    Sutton, A., Maletic, J.I.: Recovering UML class models from C++: A detailed explanation. Inf. and SW Tech. 49, 212–229 (2007)CrossRefGoogle Scholar
  5. 5.
    Norton, D.: Open-Source Modeling Tools Maturing, but Need Time to Reach Full Potential, Gartner, Inc., Tech. Rep. G00146580 (April 20, 2007)Google Scholar
  6. 6.
    Wikipedia Listing of UML modeling tools, http://en.wikipedia.org/wiki/List_of_UML_tools (accessed 2013)
  7. 7.
    Blechar, M.J.: Magic Quadrant for OOA&D Tools, 2H06 to 1H07, Gartner Inc., Tech. Rep. G00140111 (May 30, 2006)Google Scholar
  8. 8.
    Harrison, W., Barton, C., Raghavachari, M.: Mapping UML designs to Java. ACM SIGPLAN Notices 35, 178–187 (2000)Google Scholar
  9. 9.
    Long, Q., Liu, Z., Li, X., Jifeng, H.: Consistent code generation from uml models. In: Australian Software Engineering Conference, pp. 23–30 (2005)Google Scholar
  10. 10.
    Brisolara, L.B., Oliveira, M.F.S., Redin, R., Lamb, L.C., Carro, L., Wagner, F.: Using UML as front-end for heterogeneous software code generation strategies. In: Design, Automation and Test in Europe, pp. 504–509 (2008)Google Scholar
  11. 11.
    Xi, C., JianHua, L., ZuCheng, Z., YaoHui, S.: Modeling SystemC design in UML and automatic code generation. In: Conference on Asia South Pacific Design Automation, pp. 932–935 (2005)Google Scholar
  12. 12.
    Jifeng, H., Liu, Z., Li, X., Qin, S.: A relational model for object-oriented designs. In: Chin, W.-N. (ed.) APLAS 2004. LNCS, vol. 3302, pp. 415–436. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  13. 13.
    Unifying Theories of Programming. Prentice Hall (1998) Google Scholar
  14. 14.
    Sutton, A., Maletic, J.I.: Recovering UML class models from C++: A detailed explanation. Inf. and SW Tech. 49, 212–229 (2007)CrossRefGoogle Scholar
  15. 15.
    Gueheneuc, Y.: A reverse engineering tool for precise class diagrams. In: CASCON, pp. 28–41. ACM and IBM (2004)Google Scholar
  16. 16.
    Kollman, R., Selonen, P., Stroulia, E., Systa, T., Zundorf, A.: A study on the current state of the art in tool-supported UML-based static reverse engineering. In: Ninth Working Conference on Reverse Engineering (WCRE 2002), pp. 22–30 (2002)Google Scholar
  17. 17.
    Lange, C.F.J., Chaudron, M.R.V.: An empirical assessment of completeness in UML designs. In: EASE 2004, pp. 111–121 (2004)Google Scholar
  18. 18.
    Badreddin, O.: Umple: a model-oriented programming language. In: 2010 ACM/IEEE 32nd International Conference on Software Engineering, vol. 2. IEEE (2010)Google Scholar
  19. 19.
    Badreddin, O.: Empirical Evaluation of Research Prototypes at Variable Stages of Maturity. In: ICSE Workshop on User Evaluation for Software Engineering Researchers, USER (to appear, 2013)Google Scholar
  20. 20.
    Badreddin, O., Lethbridge, T.C.: Combining experiments and grounded theory to evaluate a research prototype: Lessons from the umple model-oriented programming technology. In: User Evaluation for Software Engineering Researchers (USER). IEEE (2012)Google Scholar
  21. 21.
    Badreddin, O., Forward, A., Lethbridge, T.C.: Model oriented programming: an empirical study of comprehension. In: CASCON. ASM and IBM (2012)Google Scholar
  22. 22.
    Badreddin, O., Lethbridge, T.C., Elassar, M.: Modeling Practices in Open Source Software. In: 9th International Conference on Open Source Systems, OSS 2013 (to appear, 2013)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Omar Badreddin
    • 1
  • Andrew Forward
    • 1
  • Timothy C. Lethbridge
    • 1
  1. 1.School of Electrical Engineering and Computer ScienceUniversity of OttawaOttawaCanada

Personalised recommendations