Towards Understandable Guards of Extracted State Machines from Embedded Software

被引:0
|
作者
Said, Wasim [1 ]
Quante, Jochen [1 ]
Koschke, Rainer [2 ]
机构
[1] Robert Bosch GmbH, Renningen, Germany
[2] Univ Bremen, Bremen, Germany
关键词
software reengineering; program understanding; static analysis; model mining; state machines; boolean minimization; embedded software; legacy code;
D O I
10.1109/saner.2019.8667983
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The extraction of state machines from complex software systems can be very useful to understand the behavior of a software, which is a prerequisite for other software activities, such as maintenance, evolution and reengineering. However, using static analysis to extract state machines from real-world embedded software often leads to models that cannot be understood by humans: The extracted models contain a high number of states and transitions and very complex guards (transition conditions). Integrating user interaction into the extraction process can reduce these state machines to an acceptable size. However, the problem of highly complex guards remains. In this paper, we present a novel approach to reduce the complexity of guards in such state machines to a degree that is understandable for humans. The conditions are reduced by a combination of heuristic logic minimization, masking of infeasible paths, and using transition priorities. The approach is evaluated with software developers on industrial embedded C code. The results show that the approach is highly effective in making the guards understandable. Our controlled experiment shows that guards reduced by our approach and presented with priorities are easier to understand than guards without priorities.
引用
收藏
页码:264 / 274
页数:11
相关论文
共 50 条
  • [21] Making species checklists understandable to machines – a shift from relational databases to ontologies
    Nina Laurenne
    Jouni Tuominen
    Hannu Saarenmaa
    Eero Hyvönen
    Journal of Biomedical Semantics, 5
  • [22] Towards Testing from Finite State Machines with Symbolic Inputs and Outputs
    Petrenko, Alexandre
    21ST ACM/IEEE INTERNATIONAL CONFERENCE ON MODEL DRIVEN ENGINEERING LANGUAGES AND SYSTEMS (MODELS 2018), 2018, : 187 - 187
  • [23] Recovery of software design, state-machines and specifications from source code
    Prywes, N
    Rehmet, P
    SECOND IEEE INTERNATIONAL CONFERENCE ON ENGINEERING OF COMPLEX COMPUTER SYSTEMS: HELD JOINTLY WITH 6TH CSESAW, 4TH IEEE RTAW, AND SES'96, 1996, : 279 - 288
  • [24] Process state machines for behavioral modeling of embedded systems
    Bocchio, Sara
    Riccobene, Elvinia
    Rosti, Alberto
    Scandurra, Patrizia
    2007 INTERNATIONAL SYMPOSIUM ON INDUSTRIAL EMBEDDED SYSTEMS, 2007, : 274 - 281
  • [25] Towards universal software substrate for distributed embedded systems
    Nakajima, T
    SIXTH INTERNATIONAL WORKSHOP ON OBJECT-ORIENTED REAL-TIME DEPENDABLE SYSTEMS, PROCEEDINGS, 2001, : 206 - 213
  • [26] Towards managing hardware - software dependencies in embedded systems
    Weber, Johannes
    Rehkopf, Andreas
    Sponer, Timo
    2009 IEEE CONFERENCE ON EMERGING TECHNOLOGIES & FACTORY AUTOMATION (EFTA 2009), 2009,
  • [27] Towards an Embedded Software Component Quality Verification Framework
    Carvalho, Fernando
    Meira, Silvio R. J.
    2009 14TH IEEE INTERNATIONAL CONFERENCE ON ENGINEERING OF COMPLEX COMPUTER SYSTEMS (ICECCS), 2009, : 249 - 258
  • [28] Towards a logic for abstract metafinite state machines
    Wang, Qing
    Schewe, Klaus-Dieter
    FOUNDATIONS OF INFORMATION AND KNOWLEDGE SYSTEMS, PROCEEDINGS, 2008, 4932 : 365 - 380
  • [29] Power analysis of embedded software: A first step towards software power minimization
    Tiwari, Vivek
    Malik, Sharad
    Wolfe, Andrew
    IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 1994, 2 (04) : 437 - 445
  • [30] A software development process based on UML state machines
    Cariou, Eric
    Brunschwig, Lea
    Le Goaer, Olivier
    Barbier, Franck
    2020 4TH INTERNATIONAL CONFERENCE ON ADVANCED ASPECTS OF SOFTWARE ENGINEERING (ICAASE'2020): 4TH INTERNATIONAL CONFERENCE ON ADVANCED ASPECTS OF SOFTWARE ENGINEERING, 2020, : 23 - 30