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 mo...
Saved in:
| Published in: | 2018 Second IEEE International Conference on Robotic Computing (IRC) pp. 1 - 8 |
|---|---|
| Main Authors: | , , |
| Format: | Conference Proceeding |
| Language: | English |
| Published: |
IEEE
01.01.2018
|
| Subjects: | |
| Online Access: | Get full text |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| 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. |
|---|---|
| AbstractList | 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. |
| Author | Brunel, Julien Doose, David Come, David |
| Author_xml | – sequence: 1 givenname: David surname: Come fullname: Come, David – sequence: 2 givenname: Julien surname: Brunel fullname: Brunel, Julien – sequence: 3 givenname: David surname: Doose fullname: Doose, David |
| BookMark | eNotzE9PgzAYgPGa6EHnrl689AuA_QOlPRqyKQkJOjevy0t5wUagpKBx316Nnp7LL88VOR_9iITccBZzzsxdsctjwbiOGWOcnZG1yTRPpVaJSoW6JK_FMAX_6caO5r5B-vwBvVtO1I10V73QJ7Dv0OFMD_MvAbrHYfIBerr5WnCcnR-pb-nWhXmJqtBgoKXvnL0mFy30M67_uyKH7WafP0Zl9VDk92X0JhKzRLVGk0CmUkwzrtEKphAa20oDlmvLsamhriVoKYRONUelrEyUtiw1tQIhV-T27-sQ8TgFN0A4HX-40VkivwEHh005 |
| CODEN | IEEPAD |
| ContentType | Conference Proceeding |
| DBID | 6IE 6IL CBEJK RIE RIL |
| DOI | 10.1109/IRC.2018.00010 |
| DatabaseName | IEEE Electronic Library (IEL) Conference Proceedings IEEE Xplore POP ALL IEEE Xplore All Conference Proceedings IEEE Electronic Library (IEL) IEEE Proceedings Order Plans (POP All) 1998-Present |
| DatabaseTitleList | |
| Database_xml | – sequence: 1 dbid: RIE name: IEEE Electronic Library (IEL) url: https://ieeexplore.ieee.org/ sourceTypes: Publisher |
| DeliveryMethod | fulltext_linktorsrc |
| EISBN | 9781538646526 1538646528 |
| EndPage | 8 |
| ExternalDocumentID | 8329874 |
| Genre | orig-research |
| GroupedDBID | 6IE 6IL CBEJK RIE RIL |
| ID | FETCH-LOGICAL-h249t-b8e94a765e5718ec206eadcf39ac18c1edbabb3a83228581e66c3468c059b6a23 |
| IEDL.DBID | RIE |
| ISICitedReferencesCount | 5 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000450646400001&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| IngestDate | Thu Jun 29 18:39:14 EDT 2023 |
| IsDoiOpenAccess | false |
| IsOpenAccess | true |
| IsPeerReviewed | false |
| IsScholarly | false |
| Language | English |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-h249t-b8e94a765e5718ec206eadcf39ac18c1edbabb3a83228581e66c3468c059b6a23 |
| OpenAccessLink | https://hal.science/hal-02489018/document |
| PageCount | 8 |
| ParticipantIDs | ieee_primary_8329874 |
| PublicationCentury | 2000 |
| PublicationDate | 2018-Jan |
| PublicationDateYYYYMMDD | 2018-01-01 |
| PublicationDate_xml | – month: 01 year: 2018 text: 2018-Jan |
| PublicationDecade | 2010 |
| PublicationTitle | 2018 Second IEEE International Conference on Robotic Computing (IRC) |
| PublicationTitleAbbrev | IRC |
| PublicationYear | 2018 |
| Publisher | IEEE |
| Publisher_xml | – name: IEEE |
| Score | 1.6826171 |
| Snippet | 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... |
| SourceID | ieee |
| SourceType | Publisher |
| StartPage | 1 |
| SubjectTerms | C++ languages code quality Engines formal methods logic robotics Robots ROS Safety Semantics Software |
| Title | Improving Code Quality in ROS Packages Using a Temporal Extension of First-Order Logic |
| URI | https://ieeexplore.ieee.org/document/8329874 |
| WOSCitedRecordID | wos000450646400001&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1LTwIxEJ4A8eBJDRgVNXPwaGWf3e6ZQPQCBNFwI33MRqLZNTyM_nvbLkEPXrw1vTSZaTsz7XzfB3ATmzBUNs4xactl5lSO3MiwyGSFULkRJjBebCIbjcR8nk8acLvHwhCRbz6jOzf0f_mm0lv3VNazu8-WyEkTmlnGa6zWjocxDPLew7TvWrVcb2TgALG_1FJ8sBge_W-ZY-j8oO5wso8nJ9Cgsg3P-6of-5UhrDkvvnBZ4nT8iBOpX-2NsEb_9Y8SZzXV1BsOPn1velViVeBwaZM8NnY0m-jUlXUHnoaDWf-e7bQQ2IstkDZMCcoTmfGUUhtNSEcBt3tAF3EudSh0SEZJpWLpDqhIRUic6zjhQtv0SXEZxafQKquSzgAjTg55UNijWCRU2ATRuiUQiQoUT01kzqHtbLJ4r-kuFjtzXPw93YVDZ_T6VeISWpvVlq7gQH9sluvVtffRN1-XlNY |
| linkProvider | IEEE |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1LTwIxEJ4gmuhJDRjf9uDRyj5L90wgEBEIouFG-piNBLNreBj997bdDXrw4q3ppclM25lp5_s-gNtQ-740cY4KUy5Tq3JkR5oGuplymWiuPe3EJpqDAZ9Ok1EF7rZYGER0zWd4b4fuL1_namOfyhpm95kSOdqBXaucVaK1SiZG30savXHLNmvZ7kjPQmJ_6aW4cNE5_N9CR1D_wd2R0TaiHEMFsxq8bOt-0so1koL14ovMMzIePpGRUAtzJ6yI-_wngkwKsqk30v503el5RvKUdOYmzaNDS7RJrL6yqsNzpz1pdWmphkBfTYm0ppJjEokmizE28QRV4DGzC1QaJkL5XPmopZAyFPaI8pj7yJgKI8aVSaAkE0F4AtUsz_AUSMDQYg9ScxjTCFOTIhrHeDySnmSxDvQZ1KxNZu8F4cWsNMf539M3sN-dPPZn_d7g4QIOrAOKN4pLqK6XG7yCPfWxnq-W185f31ASmB8 |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=2018+Second+IEEE+International+Conference+on+Robotic+Computing+%28IRC%29&rft.atitle=Improving+Code+Quality+in+ROS+Packages+Using+a+Temporal+Extension+of+First-Order+Logic&rft.au=Come%2C+David&rft.au=Brunel%2C+Julien&rft.au=Doose%2C+David&rft.date=2018-01-01&rft.pub=IEEE&rft.spage=1&rft.epage=8&rft_id=info:doi/10.1109%2FIRC.2018.00010&rft.externalDocID=8329874 |