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...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:2018 Second IEEE International Conference on Robotic Computing (IRC) s. 1 - 8
Hlavní autoři: Come, David, Brunel, Julien, Doose, David
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