Incorporating measurement uncertainty into OCL/UML primitive datatypes


The correct representation of the relevant properties of a system is an essential requirement for the effective use and wide adoption of model-based practices in industry. Uncertainty is one of the inherent properties of any measurement or estimation that is obtained in any physical setting; as such, it must be considered when modeling software systems deal with real data. Although a few modeling languages enable the representation of measurement uncertainty, these aspects are not normally incorporated into their type systems. Therefore, operating with uncertain values and propagating their uncertainty become cumbersome processes, which hinder their realization in real environments. This paper proposes an extension of OCL/UML primitive datatypes that enables the representation of the uncertainty that comes from physical measurements or user estimates into the models, together with an algebra of operations that are defined for the values of these types.

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

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12


  1. 1.

    This is inspired by how various simple robots operate, in particular, Ozobot robots (

  2. 2.

    Operations on basic datatypes normally use infix notation (e.g., \(x+y\), \(a<b\), \(P \ {\texttt {and}}\ Q\)). This is the notation that we already support in our USE implementation for the newly defined types (UReal, UBoolean, etc.). However, other languages that we have used to implement these new types (e.g., Java) do not support infix notation. Therefore, in the following we will use either an infix or prefix notation (x.add(y),, P.and(Q)) for the operations of these types, depending on the context and the language used.

  3. 3.

    Although a confidence value of 0.9 is rather low, it may occur due to restricted visibility on foggy days, for instance.


  1. 1.

    Atenea research group Git repository: (2018). Accessed 20 May 2019

  2. 2.

    Adzic, G.: Redefining software quality. (2012). Accessed May 2019

  3. 3.

    America, P.: Inheritance and subtyping in a parallel object-oriented language. In: Proceedings of ECOOP’87, pp. 234–242. Springer (1987)

  4. 4.

    America, P.: A Behavioural Approach to Subtyping in Object-Oriented Programming Languages, pp. 173–190. Wiley, Hoboken (1991)

    Google Scholar 

  5. 5.

    Bertoa, M.F., Moreno, N., Barquero, G., Burgueño, L., Troya, J., Vallecillo, A.: Expressing measurement uncertainty in OCL/UML datatypes. In: Proceedings of ECMFA’18, LNCS, vol. 10890, pp. 46–62. Springer (2018)

  6. 6.

    Bertoa, M.F., Moreno, N., Barquero, G., Burgueño, L., Troya, J., Vallecillo, A.: Uncertain OCL datatypes. (2018). Accessed 20 May 2019

  7. 7.

    Boute, R.T.: A heretical view on type embedding. ACM Sigplan Not. 25(1), 25–28 (1990)

    Article  Google Scholar 

  8. 8.

    Brambilla, M., Cabot, J., Wimmer, M.: Model-Driven Software Engineering in Practice. Morgan & Claypool Publishers, San Rafael (2012)

    Google Scholar 

  9. 9.

    Broy, M.: Challenges in modeling cyber-physical systems. In: Proceedings of ISPN’13, pp. 5–6. IEEE (2013)

  10. 10.

    Bruce, K.B., Vanderwaart, J.: Semantics-driven language design: statically type-safe virtual types in object-oriented languages. Electr. Notes Theor. Comput. Sci. 20, 50–75 (1999).

    MathSciNet  Article  MATH  Google Scholar 

  11. 11.

    Burgueño, L., Bertoa, M.F., Moreno, N., Vallecillo, A.: Expressing confidence in models and in model transformation elements. In: Proceedings of MODELS’18, pp. 57–66. ACM (2018).

  12. 12.

    Burgueño, L., Mayerhofer, T., Wimmer, M., Vallecillo, A.: Using physical quantities in robot software models. In: Proceedings of the 1st International Workshop on Robotics Software Engineering (RoSE’18), pp. 23–28. ACM (2018).

  13. 13.

    Büttner, F., Gogolla, M.: On OCL-based imperative languages. Sci. Comput. Program. 92, 162–178 (2014)

    Article  Google Scholar 

  14. 14.

    Cabot, J., Mazón, J., Pardillo, J., Trujillo, J.: Specifying aggregation functions in multidimensional models with OCL. In: Proceedings of ER’10, LNCS, vol. 6412, pp. 419–432. Springer (2010)

  15. 15.

    Ciccozzi, F., Ruscio, D.D., Malavolta, I., Pelliccione, P.: Adopting MDE for specifying and executing civilian missions of mobile multi-robot systems. IEEE Access 4, 6451–6466 (2016)

    Article  Google Scholar 

  16. 16.

    Ciccozzi, F., Seceleanu, T., Corcoran, D., Scholle, D.: UML-based development of embedded real-time software on multi-core in practice: lessons learned and future perspectives. IEEE Access 4, 6528–6540 (2016)

    Article  Google Scholar 

  17. 17.

    Clerici, S., Orejas, F.: GSBL: An algebraic specification language based on inheritance. In: S. Gjessing, K. Nygaard (eds.) Proceedings of ECOOP’88, pp. 78–92. Springer (1988)

  18. 18.

    Dou, W., Bianculli, D., Briand, L.C.: OCLR: a more expressive, pattern-based temporal extension of OCL. In: Proceedings of ECMFA’14, LNCS, vol. 8569, pp. 51–66. Springer (2014)

  19. 19.

    Dubois, D., Prade, H.: Fuzzy sets and probability: Misunderstandings, bridges and gaps. In: Proceedings of the IEEE Conference on Fuzzy Systems, pp. 1059–1068. IEEE (1993).

  20. 20.

    Eramo, R., Pierantonio, A., Rosa, G.: Managing uncertainty in bidirectional model transformations. In: Proceedings of SLE’15, pp. 49–58. ACM (2015)

  21. 21.

    Ernst, E.: Family polymorphism. In: Proceedings of ECOOP’01, LNCS, vol. 2072, pp. 303–326. Springer (2001).

  22. 22.

    Esfahani, N., Malek, S.: Uncertainty in self-adaptive software systems. In: Software Engineering for Self-Adaptive Systems II, no. 7475 in LNCS, pp. 214–238. Springer (2013)

  23. 23.

    Famelis, M., Rubin, J., Czarnecki, K., Salay, R., Chechik, M.: Software product lines with design choices: reasoning about variability and design uncertainty. In: Proceedings of MODELS’17, pp. 93–100 (2017)

  24. 24.

    Famelis, M., Salay, R., Chechik, M.: Partial models: towards modeling and reasoning with uncertainty. In: Proceedings of ICSE’12, pp. 573–583. IEEE Press (2012)

  25. 25.

    de Finetti, B.: Theory of Probability: A critical introductory treatment. Wiley (2017).

  26. 26.

    Garlan, D.: Software Engineering in an uncertain world. In: Proceedings of the FoSER Workshop at FSE/SDP 2010, pp. 125–128. ACM (2010)

  27. 27.

    Gogolla, M., Büttner, F., Richters, M.: USE: a UML-based specification environment for validating UML and OCL. Sci. Comput. Prog. 69, 27–34 (2007)

    MathSciNet  Article  MATH  Google Scholar 

  28. 28.

    Goldberg, D.: What every computer scientist should know about floating-point arithmetic. ACM Comput. Surv. 23(1), 5–48 (1991)

    MathSciNet  Article  Google Scholar 

  29. 29.

    Greengard, S.: The Internet of Things. MIT Press, Cambridge (2015)

    Google Scholar 

  30. 30.

    Guy, C., Combemale, B., Derrien, S., Steel, J.R.H., Jézéquel, J.M.: On model subtyping. In: Proceedings of ECMFA’12, LNCS, vol. 7349, pp. 400–415. Springer (2012)

  31. 31.

    Hall, B.D.: Component interfaces that support measurement uncertainty. Comput. Stand. Interfaces 28(3), 306–310 (2006)

    MathSciNet  Article  Google Scholar 

  32. 32.

    IEEE Std 1003.1-2008: The Open Group Base Specifications. Issue 7, Sect. 4.16, Seconds Since the Epoch (2016)

  33. 33.

    ISO/IEC 25010:2011: Systems and software engineering—Systems and software Quality Requirements and Evaluation (SQuaRE)—System and software quality models. ISO/IEC (2011)

  34. 34.

    JCGM 100:2008: Evaluation of measurement data – Guide to the expression of uncertainty in measurement (GUM). Joint Committee for Guides in Metrology. (2008)

  35. 35.

    JCGM 101:2008: Evaluation of measurement data—supplement 1 to the Guide to the expression of uncertainty in measurement—propagation of distributions using a Monte Carlo method. Joint Committee for Guides in Metrology. (2008)

  36. 36.

    JCGM 200:2012: International Vocabulary of Metrology – Basic and general concepts and associated terms (VIM), 3rd edition. Joint Committee for Guides in Metrology. (2012)

  37. 37.

    Jiménez-Ramírez, A., Weber, B., Barba, I., del Valle, C.: Generating optimized configurable business process models in scenarios subject to uncertainty. Inf. Softw. Technol. 57, 571–594 (2015)

    Article  Google Scholar 

  38. 38.

    Kchir, S., Dhouib, S., Tatibouet, J., Gradoussoff, B., Simoes, M.D.S.: Robotml for industrial robots: design and simulation of manipulation scenarios. In: Proceedings of ETFA’16, pp. 1–8 (2016)

  39. 39.

    Khan, M.U., Arshad, N., Iqbal, M.Z., Umar, H.: AspectOCL: Extending OCL for crosscutting constraints. In: Proceedings of ECMFA’15, LNCS, vol. 9153, pp. 92–107. Springer (2015)

  40. 40.

    Kosko, B.: Fuzziness vs probability. Int. J. Gen. Syst. 17(2–3), 211–240 (1990)

    Article  MATH  Google Scholar 

  41. 41.

    Kyas, M.: An extended type system for OCL supporting templates and transformations. In: Proceedings of FMOODS’05, LNCS, vol. 3535, pp. 83–98. Springer (2005)

  42. 42.

    Lebigot, E.O.: Uncertainties: a Python package for calculations with uncertainties. (2017). Accessed May 2019

  43. 43.

    Lee, E.A.: Cyber physical systems: design challenges. In: Proceedings of ISORC’08, pp. 363–369. IEEE (2008)

  44. 44.

    Letier, E., Stefan, D., Barr, E.T.: Uncertainty, risk, and information value in software requirements and architecture. In: Proceedings of ICSE’14, pp. 883–894. ACM (2014)

  45. 45.

    Levenshtein, V.: Binary codes capable of correcting deletions, insertions and reversals. Sov. Phys. Dokl. 10, 707 (1966)

    MathSciNet  Google Scholar 

  46. 46.

    Liskov, B.H., Wing, J.M.: A behavioral notion of subtyping. ACM Trans. Program. Lang. Syst. 16(6), 1811–1841 (1994)

    Article  Google Scholar 

  47. 47.

    Littlewood, B., Neil, M., Ostrolenk, G.: The role of models in managing the uncertainty of software-intensive systems. Reliabil. Eng. Syst. Saf 50(1), 87–95 (1995)

    Article  Google Scholar 

  48. 48.

    Liu, B.: Uncertainty Theory, 5th edn. Springer, Berlin (2018)

    Google Scholar 

  49. 49.

    Michaël Baudin Anne Dutfoy, B.I.A.L.P.: Openturns: an industrial software for uncertainty quantification in simulation. (2015)

  50. 50.

    Mosterman, P.J., Zander, J.: Industry 4.0 as a cyber-physical system study. Softw. Syst. Model. 15(1), 17–29 (2016)

    Article  Google Scholar 

  51. 51.

    Oberkampf, W.L., DeLand, S.M., Rutherford, B.M., Diegert, K.V., Alvin, K.F.: Error and uncertainty in modeling and simulation. Reliabil. Eng. Syst. Saf. 75(3), 333–357 (2002)

    Article  Google Scholar 

  52. 52.

    Object Management Group: Object Constraint Language (OCL) Specification. Version 2.2 (2010). OMG Document formal/01 Feb 2010

  53. 53.

    Object Management Group: UML Profile for MARTE: Modeling and Analysis of Real-Time Embedded Systems. Version 1.1 (2011). OMG Document formal/02 June 2010

  54. 54.

    Object Management Group: Unified Modeling Language (UML) Specification. Version 2.5 (2015). OMG document formal/01 March 2015

  55. 55.

    Object Management Group: OMG Systems Modeling Language (SysML), version 1.4 (2016). OMG Document formal/05 January 2015

  56. 56.

    Object Management Group: Structured Metrics Metamodel (SMM) Specification. Version 1.2 (2018). OMG Document formal/01 May 2018

  57. 57.

    Pardillo, J., Mazón, J.N., Trujillo, J.: Extending OCL for OLAP querying on conceptual multidimensional models of data warehouses. Inf. Sci. 180(5), 584–601 (2010)

    Article  Google Scholar 

  58. 58.

    Salay, R., Chechik, M., Horkoff, J., Sandro, A.: Managing requirements uncertainty with partial models. Requir. Eng. 18(2), 107–128 (2013)

    Article  Google Scholar 

  59. 59.

    Selic, B.: The pragmatics of model-driven development. IEEE Softw. 20(5), 19–25 (2003)

    Article  Google Scholar 

  60. 60.

    Selic, B.: Beyond mere logic—a vision of modeling languages for the 21st century. In: Proceedings of MODELSWARD 2015 and PECCS 2015, pp. IS–5. SciTePress. (2015)

  61. 61.

    Shafer, G.: A Mathematical Theory of Evidence. Princeton University Press, Princeton (1976)

    Google Scholar 

  62. 62.

    Vallecillo, A., Gogolla, M.: Adding random operations to OCL. In: Proceedings of MoDeVVa’17, no. 2019 in CEUR Workshop Proceedings, pp. 324–328 (2017)

  63. 63.

    Vallecillo, A., Morcillo, C., Orue, P.: Expressing measurement uncertainty in software models. In: Proceedings of QUATIC’16, pp. 1–10 (2016)

  64. 64.

    Wikipedia: List of uncertainty propagation software. Accessed 20 May 2019

  65. 65.

    Wolf, M.: A modeling language for measurement uncertainty evaluation. Ph.D. thesis, ETH Zurich (2009)

  66. 66.

    Zhang, M., Ali, S., Yue, T., Norgren, R., Okariz, O.: Uncertainty-wise cyber-physical system test modeling. Softw. Syst. Model. 18(2), 1379–1418 (2019).

    Article  Google Scholar 

  67. 67.

    Zhang, M., Selic, B., Ali, S., Yue, T., Okariz, O., Norgren, R.: Understanding uncertainty in cyber-physical systems: a conceptual model. In: Proceedings of ECMFA’16, LNCS, vol. 9764, pp. 247–264. Springer (2016)

  68. 68.

    Zimmermann, H.J.: Fuzzy Set Theory—and Its Applications, 4th edn. Springer, Berlin (2001)

    Google Scholar 

Download references


This work was partially funded by the Spanish Research Projects TIN2014-52034-R, TIN2016-75944-R and PGC2018-094905-B-I00. We are really thankful to the reviewers of this paper, for their insightful comments and suggestions.

Author information



Corresponding author

Correspondence to Loli Burgueño.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Communicated by A. Pierantonio, A. Anjorin, S. Trujillo, and H. Espinoza.

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Bertoa, M.F., Burgueño, L., Moreno, N. et al. Incorporating measurement uncertainty into OCL/UML primitive datatypes. Softw Syst Model (2019).

Download citation


  • Measurement uncertainty
  • OCL
  • UML
  • Primitive datatypes