A type system for formal verification of cyber-physical systems C/C++ software
Zusammenfassung
The subject: This study focuses on improving the quality of Cyber-Physical System (CPS) software by eliminating incorrect usage of units of measurement and orientation in C/C++ programs. Incorrect usage often leads to critical errors that conventional systems cannot effectively prevent. Manual examination of code using dimensional and orientation analysis can detect these errors in physical equations, but these methods become impractical when dealing with complex physical computations. Objectives: As suggested by Siano, the proposed approach uses physical quantities and prefixes defined by the International System of Units and orientation oper-ations on physical objects. The elaborated system incorporates dimensional and orientation analysis and metaprogramming techniques. The methods used are dimensional & orientational analysis and metaprogramming. The following results were obtained: ensuring consistency of the units, incorporating orientation operations into the programming model for accurately handling physical object rotations and alignments, and using Siano’s work to precisely manipulate object orientation, thereby reducing the likelihood of orientation-related errors. Checking physical dimensions and orientations during the compilation stage identifies potential software defects before code execution, thereby reducing debugging time and lowering the cost of addressing issues later in development. The elaborated system represents a crucial step towards safer and more dependable Cyber-Physical System applications. This approach allows us to identify approximately 90% of incorrect usage of program variables; additionally, it detects over 50% of erroneous operations during compilation and execution of large-scale programs in realworld conditions. Conclusions. Scientific novelty: it proposed and developed a specialized C++-type library for formal compiletime software verification of Cyber-Physical Systems software. The proposed C++-type library leverages dimensional and orientational analysis to enhance software quality, reliability, and realtime formal verification. Although the proposed method for formal verification is not tailormade for cyber-physical objects and systems, given its primary focus on software-level concerns, it does exhibit adaptability for verifying general-purpose software that incorporates various physical parameters. This versatility extends to diverse domains such as educational, gaming, and simulation software. Некоректне використання одиниць вимірювання та орієнтації у програмах C/C++ для кіберфізичних систем часто призводить до критичних помилок, які звичайні системи типів не можуть ефективно запобігти. Ручний аналіз коду за допомогою розмірного та орієнтаційного аналізу може виявити ці помилки в фізичних рівняннях, але при роботі зі складними фізичними обчисленнями, ці методи стають непрактичними. Ми запропонували підхід, який базується на використанні фізичних величин, визначених Міжнародною системою одиниць та операціями з орієнтацією фізичних об'єктів, як це запропонував Сіано. Цей підхід забезпечує однорідність одиниць. Додатково, включення операцій з орієнтацією в модель програмування є важливим для точного управління обертанням і вирівнюванням фізичних об'єктів. Практичні рекомендації, надані роботою Сіано дозволяють точно маніпулювати орієнтацією об'єктів, зменшуючи ймовірність помилок, пов'язаних з орієнтацією. Шляхом перевірки фізичних розмірностей і орієнтацій на етапі компіляції, потенційні дефекти програмного забезпечення виявляються до виконання коду. Це зменшує час налагодження та знижує витрати на виправлення проблем на пізніших етапах розроблення. Запропонована система типів, яка включає в себе розмірний та орієнтаційний аналіз, а також методи метапрограмування, представляє собою важливий крок у напрямку більш безпечних та надійних кіберфізичних систем. Цей підхід дозволяє виявити приблизно 90% неправильного використання змінних програми та понад 50% помилкових операцій як під час компіляції, так і під час виконання великомасштабних програм в реальних умовах. Запропонований метод формальної верифікації не спеціально адаптований для кіберфізичних об'єктів та систем, враховуючи його основну увагу до проблем на рівні програмного забезпечення, він демонструє адаптивність для перевірки загальнопризначеного програмного забезпечення, яке включає різноманітні фізичні параметри. Ця універсальність поширюється на різні сфери, такі як освітнє, ігрове та симуляційне програмне забезпечення, серед інших.