skip to main content
10.1145/3377813.3381359acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Lack of adoption of units of measurement libraries: survey and anecdotes

Published:18 September 2020Publication History

ABSTRACT

Units of measurement (UoM) libraries are mostly used to appropriately encode unit variables and convert between them in a type-safe manner. Approximately 3700 functioning unit measurement libraries exist on the web, indicating that the wheel is being reinvented time and time again. Previous research has postulated that too much diversity, lack of code sharing and duplicated efforts are discouraging adoption, yet more remains to be known. Three developers and a scientist were interviewed and 91 practitioners of varying experiences from online forums were surveyed to explain their dissatisfaction with UoM libraries and possible reasons behind the lack of adoption. Our findings range from insufficient awareness of these UoM's, to development processes that exclude unit information through to specific performance concerns. We conclude with recommendations to UoM library creators stemming from these points that could help alleviate the problem and lead to an increased adoption rate of methodologies that support unit annotation and checking.

References

  1. Apple. 2018. Swift Open Source. (2018). Retrieved July 2nd, 2018 from https://swift.orgGoogle ScholarGoogle Scholar
  2. Trevor Bekolay. 2013. A comprehensive look at representing physical quantities in Python. Video. In Scientific Computing with Python. Retrieved October 3rd, 2019 from https://conference.scipy.org/scipy2013/presentation_detail.php?id=174Google ScholarGoogle Scholar
  3. Oscar Bennich-Björkman and Steve McKeever. 2018. The Next 700 Unit of Measurement Checkers. In Proc. SLE. ACM, 121--132. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Jonathan Cooper and Steve McKeever. 2008. A model-driven approach to automatic conversion of physical units. Software: Practice and Experience 38, 4 (2008), 337--359. Google ScholarGoogle ScholarCross RefCross Ref
  5. Kostadin Damevski. 2009. Expressing Measurement Units in Interfaces for Scientific Component Software. In Proceedings of the 2009 Workshop on Component-Based High Performance Computing (CBHPC '09). ACM, New York, NY, USA, Article 13, 8 pages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. A. Dreiheller, B. Mohr, and M. Moerschbacher. 1986. Programming Pascal with Physical Units. SIGPLAN Notes 21, 12 (Dec. 1986), 114--123. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Martin Fowler. 1997. Analysis Patterns: Reusable Objects Models. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA.Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Narain Gehani. 1977. Units of measure as a data attribute. Computer Languages 2, 3 (1977), 93 -- 111. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Alan R. Hevner, Salvatore T. March, Jinsoo Park, and Sudha Ram. 2004. Design Science in Information Systems Research. MIS Q. 28, 1 (March 2004), 75--105. http://dl.acm.org/citation.cfm?id=2017212.2017217Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Paul N. Hilfinger. 1988. An Ada Package for Dimensional Analysis. ACM Trans. Program. Lang. Syst. 10, 2 (April 1988), 189--203. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Jacob and Guennebaud. 2018. Eigen: a C++ template library for linear algebra. (2018). Retrieved October 3rd,2019 fromhttp://eigen.tuxfamily.orgGoogle ScholarGoogle Scholar
  12. Lingxiao Jiang and Zhendong Su. 2006. Osprey: A Practical Type System for Validating Dimensional Unit Correctness of C Programs. In Proceedings of the 28th International Conference on Software Engineering (ICSE '06). ACM, New York, NY, USA, 262--271. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Andrew Kennedy. 1994. Dimension Types. In Programming Languages and Systems---ESOP'94, 5th European Symposium on Programming, Donald Sannella (Ed.), Vol. 788. Springer, Edinburgh, U.K., 348--362.Google ScholarGoogle Scholar
  14. Andrew Kennedy. 2009. Types for Units-of-Measure: Theory and Practice. In Central European Functional Programming School - Third Summer School, CEFP 2009, Budapest, Hungary, May 21-23, 2009 and Komárno, Slovakia, May 25--30, 2009, Revised Selected Lectures. 268--305. Google ScholarGoogle ScholarCross RefCross Ref
  15. Steve McKeever, Görkem Paçaci, and Oscar Bennich-Björkman. 2019. Quantity Checking through Unit of Measurement Libraries, Current Status and Future Directions. In 7th International Conference on Model-Driven Engineering and Software Development. https://doi.org/ Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Microsoft. 2018. F# Software Foundation. (2018). Retrieved July 2nd, 2018 from https://fsharp.orgGoogle ScholarGoogle Scholar
  17. Modelica. 2018. Modelica and the Modelica Association. Online https://www.modelica.org. (2018). Last Accessed on November 12th, 2018.Google ScholarGoogle Scholar
  18. John-Paul Ore, Carrick Detweiler, and Sebastian Elbaum. 2017. Lightweight Detection of Physical Unit Inconsistencies Without Program Annotations. In Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2017). ACM, New York, NY, USA, 341--351. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Physikal. 2019. A units of measurement extensions library. (2019). Retrieved October 4rd, 2019 from https://github.com/unitsofmeasurement/PhysikalGoogle ScholarGoogle Scholar
  20. Fabiola Gonçalves Ribeiro, Achim Rettberg, Carlos E. Pereira, and Michel S. Soares. 2016. An Analysis of the Value Specification Language Applied to the Requirements Engineering Process of Cyber-Physical Systems. IFAC-PapersOnLine 49, 30 (2016), 42 -- 47. 4th IFAC Symposium on Telematics Applications TA 2016. Google ScholarGoogle ScholarCross RefCross Ref
  21. Johnny Saldana. 2015. The Coding Manual for Qualitative Researchers Third Edition. SAGE Publications Ltd.Google ScholarGoogle Scholar
  22. Matthias Schabel and Steven Watanabe. 2017. Boost C++ Libraries, Chapter 43 (Boost.Units 1.1.0). (2017). https://www.boost.org/doc/libs/1_65_0/doc/html/boost_units.html Last Accessed October 1st, 2019.Google ScholarGoogle Scholar
  23. Squants. 2019. The Scala API for Quantities, Units of Measure and Dimensional Analysis. (2019). Retrieved October 4rd, 2019 from https://www.squants.comGoogle ScholarGoogle Scholar
  24. Arthur Stephenson, Lia LaPiana, Daniel Mulville, Frank Bauer Peter Rutledge, David Folta, Greg Dukeman, Robert Sackheim, and Peter Norvig. 1999. Mars Climate Orbiter Mishap Investigation Board Phase 1 Report. (1999). https://llis.nasa.gov/llis_lib/pdf/1009464main1_0641-mr.pdf Last Accessed on October 1st, 2019.Google ScholarGoogle Scholar
  25. TIOBE. 2019. The Importance Of Being Earnest Index. (2019). Retrieved October 3rd, 2019 from https://www.tiobe.com/tiobe-index/Google ScholarGoogle Scholar
  26. Mitchell Wand and Patrick O'Keefe. 1991. Automatic Dimensional Inference. In Computational Logic - Essays in Honor of Alan Robinson. 479--483. citeseer.ist.psu.edu/wand91automatic.htmlGoogle ScholarGoogle Scholar
  27. Wikipedia. 2018. Floating-point arithmetic: Accuracy Problems. (2018). Retrieved October 1st, 2019 from https://en.wikipedia.org/wiki/Floating-point_arithmetic#Accuracy_problemsGoogle ScholarGoogle Scholar
  28. Richard Witkin. 1983. Jet's Fuel Ran Out After Metric Conversion Errors. The New York Times (July 1983).Google ScholarGoogle Scholar

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    cover image ACM Conferences
    ICSE-SEIP '20: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Software Engineering in Practice
    June 2020
    258 pages
    ISBN:9781450371230
    DOI:10.1145/3377813

    Copyright © 2020 ACM

    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 18 September 2020

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • research-article

    Upcoming Conference

    ICSE 2025

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader