利用一阶逻辑的时间扩展提高ROS包的代码质量

D. Come, Julien Brunel, D. Doose
{"title":"利用一阶逻辑的时间扩展提高ROS包的代码质量","authors":"D. Come, Julien Brunel, D. Doose","doi":"10.1109/IRC.2018.00010","DOIUrl":null,"url":null,"abstract":"Robots are given more and more challenging tasks in domains such as transport and delivery, farming or health. Software is key components for robots, and ROS is a popular open-source middleware for writing robotics applications. Code quality matters a lot because a poorly written software is much more likely to contain bugs and will be harder to maintain over time. Within a code base, finding faulty patterns takes a lot of time and money. We propose a framework to search automatically user-provided faulty code patterns. This framework is based on FO++, a temporal extension of first-order logic, and Pangolin, a verification engine for C++ programs. We formalized with FO++ five faulty patterns related to ROS and embedded systems. We analyzed with Pangolin 25 ROS packages looking for occurrences of these patterns and found a total of 218 defects. To prevent the faulty patterns from arising in new ROS packages, we propose a design pattern, and we show how Pangolin can be used to enforce it.","PeriodicalId":416113,"journal":{"name":"2018 Second IEEE International Conference on Robotic Computing (IRC)","volume":"126 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2018-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"6","resultStr":"{\"title\":\"Improving Code Quality in ROS Packages Using a Temporal Extension of First-Order Logic\",\"authors\":\"D. Come, Julien Brunel, D. Doose\",\"doi\":\"10.1109/IRC.2018.00010\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Robots are given more and more challenging tasks in domains such as transport and delivery, farming or health. Software is key components for robots, and ROS is a popular open-source middleware for writing robotics applications. Code quality matters a lot because a poorly written software is much more likely to contain bugs and will be harder to maintain over time. Within a code base, finding faulty patterns takes a lot of time and money. We propose a framework to search automatically user-provided faulty code patterns. This framework is based on FO++, a temporal extension of first-order logic, and Pangolin, a verification engine for C++ programs. We formalized with FO++ five faulty patterns related to ROS and embedded systems. We analyzed with Pangolin 25 ROS packages looking for occurrences of these patterns and found a total of 218 defects. To prevent the faulty patterns from arising in new ROS packages, we propose a design pattern, and we show how Pangolin can be used to enforce it.\",\"PeriodicalId\":416113,\"journal\":{\"name\":\"2018 Second IEEE International Conference on Robotic Computing (IRC)\",\"volume\":\"126 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2018-06-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"6\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2018 Second IEEE International Conference on Robotic Computing (IRC)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/IRC.2018.00010\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2018 Second IEEE International Conference on Robotic Computing (IRC)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/IRC.2018.00010","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 6

摘要

机器人在运输、配送、农业或医疗等领域被赋予越来越具有挑战性的任务。软件是机器人的关键组件,ROS是用于编写机器人应用程序的流行开源中间件。代码质量非常重要,因为编写糟糕的软件更有可能包含错误,并且随着时间的推移将更难维护。在代码库中,发现错误的模式需要花费大量的时间和金钱。我们提出了一个框架来自动搜索用户提供的错误代码模式。该框架基于一阶逻辑的时间扩展f++和用于c++程序的验证引擎Pangolin。我们用f++形式化了与ROS和嵌入式系统相关的五个错误模式。我们用穿山甲分析了25个ROS包,寻找这些模式的出现,并发现了总共218个缺陷。为了防止在新的ROS包中出现错误的模式,我们提出了一个设计模式,并展示了如何使用穿山甲来强制执行它。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Improving Code Quality in ROS Packages Using a Temporal Extension of First-Order Logic
Robots are given more and more challenging tasks in domains such as transport and delivery, farming or health. Software is key components for robots, and ROS is a popular open-source middleware for writing robotics applications. Code quality matters a lot because a poorly written software is much more likely to contain bugs and will be harder to maintain over time. Within a code base, finding faulty patterns takes a lot of time and money. We propose a framework to search automatically user-provided faulty code patterns. This framework is based on FO++, a temporal extension of first-order logic, and Pangolin, a verification engine for C++ programs. We formalized with FO++ five faulty patterns related to ROS and embedded systems. We analyzed with Pangolin 25 ROS packages looking for occurrences of these patterns and found a total of 218 defects. To prevent the faulty patterns from arising in new ROS packages, we propose a design pattern, and we show how Pangolin can be used to enforce it.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信