To Do or Not to Do: Semantics and Patterns for Do Activities in UML PSSM State Machines

State machines are used in engineering many types of software-intensive systems. UML State Machines extend simple finite state machines with powerful constructs. Among the many extensions, there is one seemingly simple and innocent language construct that fundamentally changes state machines' r...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:IEEE transactions on software engineering 2024-08, Vol.50 (8), p.2124-2141
Hauptverfasser: Elekes, Marton, Molnar, Vince, Micskei, Zoltan
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 2141
container_issue 8
container_start_page 2124
container_title IEEE transactions on software engineering
container_volume 50
creator Elekes, Marton
Molnar, Vince
Micskei, Zoltan
description State machines are used in engineering many types of software-intensive systems. UML State Machines extend simple finite state machines with powerful constructs. Among the many extensions, there is one seemingly simple and innocent language construct that fundamentally changes state machines' reactive model of computation: doActivity behaviors. DoActivity behaviors describe behavior that is executed independently from the state machine once entered in a given state, typically modeling complex computation or communication as background tasks. However, the UML specification or textbooks are vague about how the doActivity behavior construct should be appropriately used. This lack of guidance is a severe issue as, when improperly used, doActivities can cause concurrent, non-deterministic bugs that are especially challenging to find and could ruin a seemingly correct software design. The Precise Semantics of UML State Machines (PSSM) specification introduced detailed operational semantics for state machines. To the best of our knowledge, there is no rigorous review yet of doActivity's semantics as specified in PSSM. We analyzed the semantics by collecting evidence from cross-checking the text of the specification, its semantic model and executable test cases, and the simulators supporting PSSM. We synthesized insights about subtle details and emergent behaviors relevant to tool developers and advanced modelers. We reported inconsistencies and missing clarifications in more than 20 issues to the standardization committee. Based on these insights, we studied 11 patterns for doActivities detailing the consequences of using a doActivity in a given situation and discussing countermeasures or alternative design choices. We hope that our analysis of the semantics and the patterns help vendors develop conformant simulators or verification tools and engineers design better state machine models.
doi_str_mv 10.1109/TSE.2024.3422845
format Article
fullrecord <record><control><sourceid>proquest_RIE</sourceid><recordid>TN_cdi_proquest_journals_3092916183</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><ieee_id>10586843</ieee_id><sourcerecordid>3092916183</sourcerecordid><originalsourceid>FETCH-LOGICAL-c175t-ac4606c95226bd4ea109236d38d0b8adaa7e8185f1257ab0772925cdc6a593b63</originalsourceid><addsrcrecordid>eNpNkEtLAzEURoMoWKt7Fy4CrqfmMXm5K7U-oNXCtLgMmUwGU-xMTVKh_96UduHqcuF83-UeAG4xGmGM1MOymo4IIuWIloTIkp2BAVZUFZQRdA4GCClZMCbVJbiKcY0QYkKwAfhc9vCph32A732C6bA8wsptTJe8jdB0DVyYlFzoImwzldmxTf7XJ-8i9B1czWdwUVVzWCWTHJwb--U7F6_BRWu-o7s5zSFYPU-Xk9di9vHyNhnPCosFS4WxJUfcKkYIr5vSmfwKobyhskG1NI0xwkksWYsJE6ZGQhBFmG0sN0zRmtMhuD_2bkP_s3Mx6XW_C10-qWmuUphjSTOFjpQNfYzBtXob_MaEvcZIH_TprE8f9OmTvhy5O0a8c-4fziSXJaV_SNpo1g</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>3092916183</pqid></control><display><type>article</type><title>To Do or Not to Do: Semantics and Patterns for Do Activities in UML PSSM State Machines</title><source>IEEE Electronic Library (IEL)</source><creator>Elekes, Marton ; Molnar, Vince ; Micskei, Zoltan</creator><creatorcontrib>Elekes, Marton ; Molnar, Vince ; Micskei, Zoltan</creatorcontrib><description>State machines are used in engineering many types of software-intensive systems. UML State Machines extend simple finite state machines with powerful constructs. Among the many extensions, there is one seemingly simple and innocent language construct that fundamentally changes state machines' reactive model of computation: doActivity behaviors. DoActivity behaviors describe behavior that is executed independently from the state machine once entered in a given state, typically modeling complex computation or communication as background tasks. However, the UML specification or textbooks are vague about how the doActivity behavior construct should be appropriately used. This lack of guidance is a severe issue as, when improperly used, doActivities can cause concurrent, non-deterministic bugs that are especially challenging to find and could ruin a seemingly correct software design. The Precise Semantics of UML State Machines (PSSM) specification introduced detailed operational semantics for state machines. To the best of our knowledge, there is no rigorous review yet of doActivity's semantics as specified in PSSM. We analyzed the semantics by collecting evidence from cross-checking the text of the specification, its semantic model and executable test cases, and the simulators supporting PSSM. We synthesized insights about subtle details and emergent behaviors relevant to tool developers and advanced modelers. We reported inconsistencies and missing clarifications in more than 20 issues to the standardization committee. Based on these insights, we studied 11 patterns for doActivities detailing the consequences of using a doActivity in a given situation and discussing countermeasures or alternative design choices. We hope that our analysis of the semantics and the patterns help vendors develop conformant simulators or verification tools and engineers design better state machine models.</description><identifier>ISSN: 0098-5589</identifier><identifier>EISSN: 1939-3520</identifier><identifier>DOI: 10.1109/TSE.2024.3422845</identifier><identifier>CODEN: IESEDJ</identifier><language>eng</language><publisher>New York: IEEE</publisher><subject>Analytical models ; Behavior ; Computation ; Computational modeling ; concurrency ; Concurrent computing ; Current measurement ; Design analysis ; Design standards ; Finite state machines ; pattern ; PSSM ; Semantics ; Simulators ; Software engineering ; Specifications ; state machine ; Task complexity ; Temperature measurement ; UML ; Unified modeling language</subject><ispartof>IEEE transactions on software engineering, 2024-08, Vol.50 (8), p.2124-2141</ispartof><rights>Copyright IEEE Computer Society 2024</rights><lds50>peer_reviewed</lds50><woscitedreferencessubscribed>false</woscitedreferencessubscribed><cites>FETCH-LOGICAL-c175t-ac4606c95226bd4ea109236d38d0b8adaa7e8185f1257ab0772925cdc6a593b63</cites><orcidid>0000-0002-3558-147X ; 0000-0002-8204-7595 ; 0000-0003-1846-261X</orcidid></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktohtml>$$Uhttps://ieeexplore.ieee.org/document/10586843$$EHTML$$P50$$Gieee$$H</linktohtml><link.rule.ids>314,780,784,796,27924,27925,54758</link.rule.ids><linktorsrc>$$Uhttps://ieeexplore.ieee.org/document/10586843$$EView_record_in_IEEE$$FView_record_in_$$GIEEE</linktorsrc></links><search><creatorcontrib>Elekes, Marton</creatorcontrib><creatorcontrib>Molnar, Vince</creatorcontrib><creatorcontrib>Micskei, Zoltan</creatorcontrib><title>To Do or Not to Do: Semantics and Patterns for Do Activities in UML PSSM State Machines</title><title>IEEE transactions on software engineering</title><addtitle>TSE</addtitle><description>State machines are used in engineering many types of software-intensive systems. UML State Machines extend simple finite state machines with powerful constructs. Among the many extensions, there is one seemingly simple and innocent language construct that fundamentally changes state machines' reactive model of computation: doActivity behaviors. DoActivity behaviors describe behavior that is executed independently from the state machine once entered in a given state, typically modeling complex computation or communication as background tasks. However, the UML specification or textbooks are vague about how the doActivity behavior construct should be appropriately used. This lack of guidance is a severe issue as, when improperly used, doActivities can cause concurrent, non-deterministic bugs that are especially challenging to find and could ruin a seemingly correct software design. The Precise Semantics of UML State Machines (PSSM) specification introduced detailed operational semantics for state machines. To the best of our knowledge, there is no rigorous review yet of doActivity's semantics as specified in PSSM. We analyzed the semantics by collecting evidence from cross-checking the text of the specification, its semantic model and executable test cases, and the simulators supporting PSSM. We synthesized insights about subtle details and emergent behaviors relevant to tool developers and advanced modelers. We reported inconsistencies and missing clarifications in more than 20 issues to the standardization committee. Based on these insights, we studied 11 patterns for doActivities detailing the consequences of using a doActivity in a given situation and discussing countermeasures or alternative design choices. We hope that our analysis of the semantics and the patterns help vendors develop conformant simulators or verification tools and engineers design better state machine models.</description><subject>Analytical models</subject><subject>Behavior</subject><subject>Computation</subject><subject>Computational modeling</subject><subject>concurrency</subject><subject>Concurrent computing</subject><subject>Current measurement</subject><subject>Design analysis</subject><subject>Design standards</subject><subject>Finite state machines</subject><subject>pattern</subject><subject>PSSM</subject><subject>Semantics</subject><subject>Simulators</subject><subject>Software engineering</subject><subject>Specifications</subject><subject>state machine</subject><subject>Task complexity</subject><subject>Temperature measurement</subject><subject>UML</subject><subject>Unified modeling language</subject><issn>0098-5589</issn><issn>1939-3520</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2024</creationdate><recordtype>article</recordtype><sourceid>RIE</sourceid><recordid>eNpNkEtLAzEURoMoWKt7Fy4CrqfmMXm5K7U-oNXCtLgMmUwGU-xMTVKh_96UduHqcuF83-UeAG4xGmGM1MOymo4IIuWIloTIkp2BAVZUFZQRdA4GCClZMCbVJbiKcY0QYkKwAfhc9vCph32A732C6bA8wsptTJe8jdB0DVyYlFzoImwzldmxTf7XJ-8i9B1czWdwUVVzWCWTHJwb--U7F6_BRWu-o7s5zSFYPU-Xk9di9vHyNhnPCosFS4WxJUfcKkYIr5vSmfwKobyhskG1NI0xwkksWYsJE6ZGQhBFmG0sN0zRmtMhuD_2bkP_s3Mx6XW_C10-qWmuUphjSTOFjpQNfYzBtXob_MaEvcZIH_TprE8f9OmTvhy5O0a8c-4fziSXJaV_SNpo1g</recordid><startdate>20240801</startdate><enddate>20240801</enddate><creator>Elekes, Marton</creator><creator>Molnar, Vince</creator><creator>Micskei, Zoltan</creator><general>IEEE</general><general>IEEE Computer Society</general><scope>97E</scope><scope>RIA</scope><scope>RIE</scope><scope>AAYXX</scope><scope>CITATION</scope><scope>JQ2</scope><scope>K9.</scope><orcidid>https://orcid.org/0000-0002-3558-147X</orcidid><orcidid>https://orcid.org/0000-0002-8204-7595</orcidid><orcidid>https://orcid.org/0000-0003-1846-261X</orcidid></search><sort><creationdate>20240801</creationdate><title>To Do or Not to Do: Semantics and Patterns for Do Activities in UML PSSM State Machines</title><author>Elekes, Marton ; Molnar, Vince ; Micskei, Zoltan</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c175t-ac4606c95226bd4ea109236d38d0b8adaa7e8185f1257ab0772925cdc6a593b63</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2024</creationdate><topic>Analytical models</topic><topic>Behavior</topic><topic>Computation</topic><topic>Computational modeling</topic><topic>concurrency</topic><topic>Concurrent computing</topic><topic>Current measurement</topic><topic>Design analysis</topic><topic>Design standards</topic><topic>Finite state machines</topic><topic>pattern</topic><topic>PSSM</topic><topic>Semantics</topic><topic>Simulators</topic><topic>Software engineering</topic><topic>Specifications</topic><topic>state machine</topic><topic>Task complexity</topic><topic>Temperature measurement</topic><topic>UML</topic><topic>Unified modeling language</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Elekes, Marton</creatorcontrib><creatorcontrib>Molnar, Vince</creatorcontrib><creatorcontrib>Micskei, Zoltan</creatorcontrib><collection>IEEE All-Society Periodicals Package (ASPP) 2005-present</collection><collection>IEEE All-Society Periodicals Package (ASPP) 1998-Present</collection><collection>IEEE Electronic Library (IEL)</collection><collection>CrossRef</collection><collection>ProQuest Computer Science Collection</collection><collection>ProQuest Health &amp; Medical Complete (Alumni)</collection><jtitle>IEEE transactions on software engineering</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext_linktorsrc</fulltext></delivery><addata><au>Elekes, Marton</au><au>Molnar, Vince</au><au>Micskei, Zoltan</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>To Do or Not to Do: Semantics and Patterns for Do Activities in UML PSSM State Machines</atitle><jtitle>IEEE transactions on software engineering</jtitle><stitle>TSE</stitle><date>2024-08-01</date><risdate>2024</risdate><volume>50</volume><issue>8</issue><spage>2124</spage><epage>2141</epage><pages>2124-2141</pages><issn>0098-5589</issn><eissn>1939-3520</eissn><coden>IESEDJ</coden><abstract>State machines are used in engineering many types of software-intensive systems. UML State Machines extend simple finite state machines with powerful constructs. Among the many extensions, there is one seemingly simple and innocent language construct that fundamentally changes state machines' reactive model of computation: doActivity behaviors. DoActivity behaviors describe behavior that is executed independently from the state machine once entered in a given state, typically modeling complex computation or communication as background tasks. However, the UML specification or textbooks are vague about how the doActivity behavior construct should be appropriately used. This lack of guidance is a severe issue as, when improperly used, doActivities can cause concurrent, non-deterministic bugs that are especially challenging to find and could ruin a seemingly correct software design. The Precise Semantics of UML State Machines (PSSM) specification introduced detailed operational semantics for state machines. To the best of our knowledge, there is no rigorous review yet of doActivity's semantics as specified in PSSM. We analyzed the semantics by collecting evidence from cross-checking the text of the specification, its semantic model and executable test cases, and the simulators supporting PSSM. We synthesized insights about subtle details and emergent behaviors relevant to tool developers and advanced modelers. We reported inconsistencies and missing clarifications in more than 20 issues to the standardization committee. Based on these insights, we studied 11 patterns for doActivities detailing the consequences of using a doActivity in a given situation and discussing countermeasures or alternative design choices. We hope that our analysis of the semantics and the patterns help vendors develop conformant simulators or verification tools and engineers design better state machine models.</abstract><cop>New York</cop><pub>IEEE</pub><doi>10.1109/TSE.2024.3422845</doi><tpages>18</tpages><orcidid>https://orcid.org/0000-0002-3558-147X</orcidid><orcidid>https://orcid.org/0000-0002-8204-7595</orcidid><orcidid>https://orcid.org/0000-0003-1846-261X</orcidid></addata></record>
fulltext fulltext_linktorsrc
identifier ISSN: 0098-5589
ispartof IEEE transactions on software engineering, 2024-08, Vol.50 (8), p.2124-2141
issn 0098-5589
1939-3520
language eng
recordid cdi_proquest_journals_3092916183
source IEEE Electronic Library (IEL)
subjects Analytical models
Behavior
Computation
Computational modeling
concurrency
Concurrent computing
Current measurement
Design analysis
Design standards
Finite state machines
pattern
PSSM
Semantics
Simulators
Software engineering
Specifications
state machine
Task complexity
Temperature measurement
UML
Unified modeling language
title To Do or Not to Do: Semantics and Patterns for Do Activities in UML PSSM State Machines
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2024-12-25T03%3A20%3A09IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_RIE&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=To%20Do%20or%20Not%20to%20Do:%20Semantics%20and%20Patterns%20for%20Do%20Activities%20in%20UML%20PSSM%20State%20Machines&rft.jtitle=IEEE%20transactions%20on%20software%20engineering&rft.au=Elekes,%20Marton&rft.date=2024-08-01&rft.volume=50&rft.issue=8&rft.spage=2124&rft.epage=2141&rft.pages=2124-2141&rft.issn=0098-5589&rft.eissn=1939-3520&rft.coden=IESEDJ&rft_id=info:doi/10.1109/TSE.2024.3422845&rft_dat=%3Cproquest_RIE%3E3092916183%3C/proquest_RIE%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=3092916183&rft_id=info:pmid/&rft_ieee_id=10586843&rfr_iscdi=true