arrow
返回

Mining understandable state machine models from embedded code

delete2020-09-08
delete2
PRE
AI
W
Wasim Said *
J
Jochen Quante
R
Rainer Koschke
DOI:10.1007/s10664-020-09865-0delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

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总结

AI总结

对已上传原文的论文进行重点信息的提取,主要内容包括:简要概述、研究摘要、背景介绍、关键亮点、图文解析、展望与总结。

期刊

Empirical Software Engineering 封面图
Empirical Software Engineering
IF:
3.6
论文数:
2.0K
被引数:
5.3K

机构

B
bosch
学者数:
2.4K
论文数: 1.7K
被引数: 3
U
University of Bremen
学者数:
8.1K
论文数: 7.2K
被引数: 1.1W
引用论文

引用论文

Phosphoproteomics and Proteomics Reveal Metabolism as a Key Node in LPS-Induced Acute Inflammation in RAW264.7
err2020-06-02
err0
PREAI
errYu Luo; Qing Jiang; Zhengwen Zhu; Haseeb Sattar; Jiasi Wu; Wenge Huang; Siyu Su; Yusheng Liang; Ping Wang; Xianli Meng
err分享
err收藏
Forest cover lessens the impact of drought on streamflow in Puerto Rico
err2022-05-01
err0
PREAI
errJazlynn Hall; Martha Scholl; Yuri Gorokhovich; María Uriarte
err分享
err收藏
err分享
err收藏
Effect of Thapsigargin on the Contractile Response of the Normal and Obstructed Rabbit Urinary Bladder
err1996-01-01
err0
PREAI
errDorothea Rohrmann; Stephen A. Zderic; Alan J. Wein; Robert M. Levin
err分享
err收藏
Real-time observation of slipping and rolling events in DLC wear nanoparticles实时观察DLC磨损纳米颗粒中的滑动和滚动事件
err2018-06-07
err0
PREAI
errTakaaki Sato; Shinsuke Nabeya; Vivek Menon; Tadashi Ishida; Reo Kometani; Hiroyuki Fujita
err分享
err收藏
On the impact of state-based model-driven development on maintainability: a family of experiments using UniMod
err2017-11-16
err16
errOAAI
errRicca, Filippo; Torchiano, Marco; Leotta, Maurizio; Tiso, Alessandro; Guerrini, Giovanna; Reggio, Gianna
err分享
err收藏
学者 查看更多内容