返回
Mining understandable state machine models from embedded code
DOI:10.1007/s10664-020-09865-0.png)
摘要
En 中文
Program understanding is a time-consuming and tedious activity for software developers. Manually building abstractions from source code requires in-depth analysis of the code. Automatic extraction of such models is possible, but cannot derive meaningful abstractions that are not already contained in the code. The automated extraction even has problems to decide which aspects of the code are important and which are not. Therefore, interactive semi-automatic approaches are the compromise of choice. In this article, we describe how state machines that describe the behaviour of a function can be extracted from code. The approach includes interaction - the user decides which aspects of the identified potentially relevant information is really relevant and which is not. This helps to reduce the resulting state machines to an understandable degree. However, these state machines in their raw form have transition conditions that are very complex and thus not understandable for humans. Therefore, we also introduce a technique to reduce these guards to an understandable form. The technique is a combination of heuristic logic minimization, exploitation of infeasible paths, and using transition priorities. We evaluate the approach on industrial embedded C code, first in a case study with hundreds of extracted state machines, and then in two experiments with professional developers. The results show that the approach is highly effective in making the guards understandable, and that guards reduced by our approach and presented with priorities are easier to understand than guards without priorities. We also show that the overall approach is beneficial for program comprehension. The guard reduction approach itself is quite generic and can also be applied to other problems. We demonstrate that for the simplification of mode switch logic.
Keyword:
Software reengineering
Program understanding
Static analysis
Model mining
State machines
Boolean minimization
Embedded software
Legacy code
AI总结
对已上传原文的论文进行重点信息的提取,主要内容包括:简要概述、研究摘要、背景介绍、关键亮点、图文解析、展望与总结。
期刊
IF:
3.6
论文数:
2.0K
被引数:
5.3K
机构
引用论文
Phosphoproteomics and Proteomics Reveal Metabolism as a Key Node in LPS-Induced Acute Inflammation in RAW264.7
Inflammation
IF0
U18666A, an activator of sterol regulatory element binding protein pathway, modulates presynaptic dopaminergic phenotype of SH-SY5Y neuroblastoma cells固醇调节元件结合蛋白途径激活剂U18666A调节SH-SY5Y神经母细胞瘤细胞突触前多巴胺能表型
Synapse
IF0
Effect of Thapsigargin on the Contractile Response of the Normal and Obstructed Rabbit Urinary Bladder
Pharmacology
IF0
Real-time observation of slipping and rolling events in DLC wear nanoparticles实时观察DLC磨损纳米颗粒中的滑动和滚动事件

