Do Extracted State Machine Models Help to Understand Embedded Software?

被引:2
|
作者
Said, Wasim [1 ]
Quante, Jochen [1 ]
Koschke, Rainer [2 ]
机构
[1] Robert Bosch GmbH, Renningen, Germany
[2] Univ Bremen, Bremen, Germany
关键词
program comprehension; controlled experiment; reverse engineering; state machines; embedded legacy software; PROGRAM COMPREHENSION;
D O I
10.1109/ICPC.2019.00038
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Program understanding is a prerequisite for several software activities, such as maintenance, evolution, and reengineering. Code in itself is so detailed that it is often hard to understand. More abstract models describing its behaviour may ease program understanding. Manually building understandable abstractions from complex source code - as an explicit or just mental model - requires in-depth analysis of the code in the first place. Therefore, it is a time-consuming and tedious activity for developers. Model mining can support program comprehension by semi-automatically extracting high-level models from code. One helpful model is a state machine, which is an established formalism for specifying the behaviour of a software component. In this paper, we report on a controlled experiment that investigates the question: Do semi-automatically extracted state machines make understanding of complex embedded code more effective? The experiment was conducted with 30 participants on two industrial embedded C code functions. The results show that the share of correct answers increases and the required time to solve the tasks decreases significantly when extracted state machines are available. We conclude that mined state machines do in fact help in program understanding.
引用
收藏
页码:191 / 196
页数:6
相关论文
共 50 条
  • [1] Towards Interactive Mining of Understandable State Machine Models from Embedded Software
    Said, Wasim
    Quante, Jochen
    Koschke, Rainer
    PROCEEDINGS OF THE 6TH INTERNATIONAL CONFERENCE ON MODEL-DRIVEN ENGINEERING AND SOFTWARE DEVELOPMENT, 2018, : 117 - 128
  • [2] Do Pipe Cleaners Help Software Engineers to Understand Agile Mindset?
    Tanaka, Takako
    Saito, Shinobu
    Kato, Yoichi
    2020 IEEE 32ND CONFERENCE ON SOFTWARE ENGINEERING EDUCATION AND TRAINING (CSEE&T), 2020, : 281 - 282
  • [3] (How) do computer models help us to understand arrhythmias?
    Kohl, P
    Garny, A
    Trayanova, N
    JOURNAL OF MOLECULAR AND CELLULAR CARDIOLOGY, 2004, 36 (05) : 740 - 740
  • [4] Towards Understandable Guards of Extracted State Machines from Embedded Software
    Said, Wasim
    Quante, Jochen
    Koschke, Rainer
    2019 IEEE 26TH INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION AND REENGINEERING (SANER), 2019, : 264 - 274
  • [5] On State Machine Mining from Embedded Control Software
    Said, Wasim
    Quante, Jochen
    Koschke, Rainer
    PROCEEDINGS 2018 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME), 2018, : 138 - 148
  • [6] Evaluating the quality of models extracted from embedded real-time software
    Huselius, Joel
    Kraft, Johan
    Hansson, Hans
    Punnekkat, Sasikumar
    ECBS 2007: 14TH ANNUAL IEEE INTERNATIONAL CONFERENCE AND WORKSHOPS ON THE ENGINEERING OF COMPUTER-BASED SYSTEMS, PROCEEDINGS: RAISING EXPECTATIONS OF COMPUTER-BASES SYSTEMS, 2007, : 577 - +
  • [7] Do Pretrained Language Models Indeed Understand Software Engineering Tasks?
    Li, Yao
    Zhang, Tao
    Luo, Xiapu
    Cai, Haipeng
    Fang, Sen
    Yuan, Dawei
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2023, 49 (10) : 4639 - 4655
  • [8] A Complexity Metric for Concurrent Finite State Machine Based Embedded Software
    Guo, Liangpeng
    Vincentelli, Alberto Sangiovanni
    Pinto, Alessandro
    2013 8TH IEEE INTERNATIONAL SYMPOSIUM ON INDUSTRIAL EMBEDDED SYSTEMS (SIES), 2013, : 189 - 195
  • [9] Mining understandable state machine models from embedded code
    Wasim Said
    Jochen Quante
    Rainer Koschke
    Empirical Software Engineering, 2020, 25 : 4759 - 4804
  • [10] Mining understandable state machine models from embedded code
    Said, Wasim
    Quante, Jochen
    Koschke, Rainer
    EMPIRICAL SOFTWARE ENGINEERING, 2020, 25 (06) : 4759 - 4804