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...
Gespeichert in:
| Veröffentlicht in: | 2018 Second IEEE International Conference on Robotic Computing (IRC) S. 1 - 8 |
|---|---|
| Hauptverfasser: | , , |
| Format: | Tagungsbericht |
| Sprache: | Englisch |
| Veröffentlicht: |
IEEE
01.01.2018
|
| Schlagworte: | |
| Online-Zugang: | Volltext |
| Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
| 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.682709 |
| 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/eLvHCXMwlV1LTwIxEJ4A8eBJDRjf6cGjFXbbbbtnAtHEAEEk3Egfs5FodgkPo__edpegBy_eml6aTKed1zffANyazDv1mDCaYGop55JRwx2nzDEpLecOS7T79EkOBmo2S0c1uNv3wiBiCT7D-7Asa_musNuQKmt77fMhMq9DXUpR9WrteBijTtp-HHcDVCtgIzuhIfbXtJTSWPSP_nfMMbR-uu7IaG9PTqCGeROm-6ifdAuHpOK8-CKLnIyHz2Sk7Zv_EdakLP0TTSYV1dQ76X2W2PQiJ0VG-gvv5NFhoNkkYbqybcFLvzfpPtDdLAT66gOkDTUKU66lSDDx1gRt3BFeB2zGUm0jZSN0RhvDdHigKlERCmEZF8p698kIHbNTaORFjmdAdKydNFK4zJt2H1BoHpvAoseVZamLknNoBpnMlxXdxXwnjou_ty_hMAi9ykpcQWOz2uI1HNiPzWK9uinv6BuFbpTK |
| linkProvider | IEEE |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1LTwIxEJ4gmuhJDRjf9uDRyu623ceZQCAiEETCjfQxG4lm1_Aw-u9tdwl68OKt6aXJTNt5ffMNwK1KrVOPglGBiaacR4wqbjhlhkWR5txggXaf9KJ-P55Ok2EF7ra9MIhYgM_w3i2LWr7J9dqlyhr29tkQme_AruA88MpurQ0To-8lje6o6cBaDh3puZbYX_NSCnPRPvzfQUdQ_-m7I8OtRTmGCmY1mGzjftLMDZKS9eKLzDMyGjyRodSv9k9YkqL4TyQZl2RTb6T1WaDT84zkKWnPrZtHB45ok7j5yroOz-3WuNmhm2kI9MWGSCuqYky4jEKBwtoT1IEX2lugU5ZI7cfaR6OkUky6JxqL2Mcw1IyHsbYOlAplwE6gmuUZngKRgTSRikKTWuNuQwrJA-V49HisWWJ8cQY1J5PZe0l4MduI4_zv7RvY74wfe7Net_9wAQdOAWWO4hKqq8Uar2BPf6zmy8V1oa9vcgiYEQ |
| 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 |