为与不为:UML PSSM 状态机中 Do 活动的语义与模式
软件工程
2024-07-09 v3
摘要
状态机被用于工程化多种类型的软件密集型系统。UML 状态机以强大构造扩展简单有限状态机。在众多扩展中,有一个看似简单无害却从根本上改变状态机反应式计算模型的语构:doActivity 行为。doActivity 行为描述一旦进入给定状态便独立于状态机执行的行为,通常将复杂计算或通信建模为后台任务。然而,UML 规范或教科书对 doActivity 行为构造应如何恰当使用语焉不详。此指导缺失是严重问题,因为不当使用时 doActivity 会引发并发、非确定性缺陷,其尤为难查且可能毁掉看似正确的软件设计。UML 状态机精确语义(PSSM)规范引入了状态机的详细操作语义。据我们所知,尚无对 PSSM 所规定的 doActivity 语义的严谨审查。我们通过交叉核对规范文本、其语义模型与可执行测试用例以及支持 PSSM 的模拟器收集证据来分析该语义。我们综合了与工具开发者及高级建模者相关的微妙细节与涌现行为的洞见。我们向标准化委员会报告了 20 余个不一致与缺失澄清的问题。基于这些洞见,我们研究了 11 种 doActivity 模式,详述在给定情境使用 doActivity 的后果并讨论对策或替代设计选择。我们希望对语义与模式的分析能帮助供应商开发合规模拟器或验证工具,并帮助工程师设计更好的状态机模型。
引用
@article{arxiv.2309.14884,
title = {To Do or Not to Do: Semantics and Patterns for Do Activities in UML PSSM State Machines},
author = {Márton Elekes and Vince Molnár and Zoltán Micskei},
journal= {arXiv preprint arXiv:2309.14884},
year = {2024}
}