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.
- Apple. 2018. Swift Open Source. (2018). Retrieved July 2nd, 2018 from https://swift.orgGoogle Scholar
- 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 Scholar
- Oscar Bennich-Björkman and Steve McKeever. 2018. The Next 700 Unit of Measurement Checkers. In Proc. SLE. ACM, 121--132. Google ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- A. Dreiheller, B. Mohr, and M. Moerschbacher. 1986. Programming Pascal with Physical Units. SIGPLAN Notes 21, 12 (Dec. 1986), 114--123. Google ScholarDigital Library
- Martin Fowler. 1997. Analysis Patterns: Reusable Objects Models. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA.Google ScholarDigital Library
- Narain Gehani. 1977. Units of measure as a data attribute. Computer Languages 2, 3 (1977), 93 -- 111. Google ScholarDigital Library
- 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 ScholarDigital Library
- Paul N. Hilfinger. 1988. An Ada Package for Dimensional Analysis. ACM Trans. Program. Lang. Syst. 10, 2 (April 1988), 189--203. Google ScholarDigital Library
- Jacob and Guennebaud. 2018. Eigen: a C++ template library for linear algebra. (2018). Retrieved October 3rd,2019 fromhttp://eigen.tuxfamily.orgGoogle Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- Microsoft. 2018. F# Software Foundation. (2018). Retrieved July 2nd, 2018 from https://fsharp.orgGoogle Scholar
- Modelica. 2018. Modelica and the Modelica Association. Online https://www.modelica.org. (2018). Last Accessed on November 12th, 2018.Google Scholar
- 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 ScholarDigital Library
- Physikal. 2019. A units of measurement extensions library. (2019). Retrieved October 4rd, 2019 from https://github.com/unitsofmeasurement/PhysikalGoogle Scholar
- 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 ScholarCross Ref
- Johnny Saldana. 2015. The Coding Manual for Qualitative Researchers Third Edition. SAGE Publications Ltd.Google Scholar
- 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 Scholar
- Squants. 2019. The Scala API for Quantities, Units of Measure and Dimensional Analysis. (2019). Retrieved October 4rd, 2019 from https://www.squants.comGoogle Scholar
- 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 Scholar
- TIOBE. 2019. The Importance Of Being Earnest Index. (2019). Retrieved October 3rd, 2019 from https://www.tiobe.com/tiobe-index/Google Scholar
- 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 Scholar
- Wikipedia. 2018. Floating-point arithmetic: Accuracy Problems. (2018). Retrieved October 1st, 2019 from https://en.wikipedia.org/wiki/Floating-point_arithmetic#Accuracy_problemsGoogle Scholar
- Richard Witkin. 1983. Jet's Fuel Ran Out After Metric Conversion Errors. The New York Times (July 1983).Google Scholar
Recommendations
The next 700 unit of measurement checkers
SLE 2018: Proceedings of the 11th ACM SIGPLAN International Conference on Software Language EngineeringIn scientific applications, physical quantities and units of measurement are used regularly. If the inherent incompatibility between these units is not handled properly it can lead to major, sometimes catastrophic, problems. Although the risk of a ...
Digital Preservation, Archival Science and Methodological Foundations for Digital Libraries
Digital libraries, whether commercial, public, or personal, lie at the heart of the information society. Yet, research into their long-term viability and the meaningful accessibility of their contents remains in its infancy. In general, as we have ...
Quantity Checking through Unit of Measurement Libraries, Current Status and Future Directions
MODELSWARD 2019: Proceedings of the 7th International Conference on Model-Driven Engineering and Software DevelopmentUnit errors are known to have caused some costly software engineering disasters, most notably the Mars Climate Orbiter back in 1999. As unit annotations are not mandatory for execution only dramatic events become newsworthy. Anecdotally however, there ...
Comments