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...
Uloženo v:
| Vydáno v: | 2018 Second IEEE International Conference on Robotic Computing (IRC) s. 1 - 8 |
|---|---|
| Hlavní autoři: | , , |
| Médium: | Konferenční příspěvek |
| Jazyk: | angličtina |
| Vydáno: |
IEEE
01.01.2018
|
| Témata: | |
| On-line přístup: | Získat plný text |
| Tagy: |
Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
|
| 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 Proceedings Order Plan All Online (POP All Online) 1998-present by volume IEEE Xplore All Conference Proceedings IEEE Xplore 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/eLvHCXMwlV1LSwMxEB7a4sGTSitqVebg0bX7yGaTc2nRS1tqld5KHrNYlF3pQ_Tfm-yW6sGLtxACgUkmk3l83wDcGPfm5x7dkyRaBoxk5FSK4oCY5kLaNLRkq2YT2Wgk5nM5acDtHgtDRFXxGd35YZXLt6XZ-lBZz90-5yKzJjSzjNdYrR0PYxTK3sO070u1fG1k6AGxv7qlVMZiePS_bY6h84O6w8nenpxAg4o2PO-9fuyXlrDmvPjCZYHT8SNOlHl1L8Iaq9Q_KpzVVFNvOPisatPLAssch0v3yQvGnmYTfXdl04Gn4WDWvw92vRCCF-cgbQItSDKV8ZRSZ03IxCF3d8DkiVQmEiYiq5XWifIKKlIREecmYVwY933SXMXJKbSKsqAzwDAPKSZm01hqlupMW-FW6ogZZZ2GZ-fQ9jJZvNd0F4udOC7-nu7CoRd6HZW4hNZmtaUrODAfm-V6dV2d0TcC8ZVY |
| linkProvider | IEEE |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1LTwIxEJ4gmuhJDRjf9uDRlX20u-2ZQCAiEETDjfQxGwlm1_Aw-u9tdwl68OKtaZo0mXZe7XzfANxqa_NTh-6JIiU8iiKwKoWhh1TFXBjmGzRFs4mk3-eTiRhW4G6LhUHEovgM792w-Ms3uV67p7KGvX02RaY7sMsoDf0SrbVhYgx80eiOmq5Yy1VH-g4S-6tfSuEu2of_2-gI6j-4OzLcepRjqGBWg5dt3k-auUFSsl58kVlGRoMnMpR6bm3CkhSf_0SScUk29UZan0V1ep6RPCXtmQ3zvIEj2iSuv7Kuw3O7NW52vE03BO_VpkgrT3EUVCYxQ2b9CerQj-0t0GkkpA64DtAoqVQknYpyxgOMYx3RmGsbQKlYhtEJVLM8w1MgfupjiNSwUCjKVKIMtytVQLU0VseTM6g5mUzfS8KL6UYc539P38B-Z_zYm_a6_YcLOHAHUL5RXEJ1tVjjFezpj9Vsubguzusb9oqYnw |
| 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 |