scholarly journals Single-state state machines in model-driven software engineering: an exploratory study

2021 ◽  
Vol 26 (6) ◽  
Author(s):  
Nan Yang ◽  
Pieter Cuijpers ◽  
Ramon Schiffelers ◽  
Johan Lukkien ◽  
Alexander Serebrenik

Abstract Context Models, as the main artifact in model-driven engineering, have been extensively used in the area of embedded systems for code generation and verification. One of the most popular behavioral modeling techniques is the state machine. Many state machine modeling guidelines recommend that a state machine should have more than one state in order to be meaningful. However, single-state state machines (SSSMs) violating this recommendation have been used in modeling cases reported in the literature. Objective We aim for understanding the phenomenon of using SSSMs in practice as understanding why developers violate the modeling guidelines is the first step towards improvement of modeling tools and practice. Method To study the phenomenon, we conducted an exploratory study which consists of two complementary studies. The first study investigated the prevalence and role of SSSMs in the domain of embedded systems, as well as the reasons why developers use them and their perceived advantages and disadvantages. We employed the sequential explanatory strategy, including repository mining and interview, to study 1500 state machines from 26 components at ASML, a leading company in manufacturing lithography machines from the semiconductor industry. In the second study, we investigated the evolutionary aspects of SSSMs, exploring when SSSMs are introduced to the systems and how developers modify them by mining the largest state-machine-based component from the company. Results We observe that 25 out of 26 components contain SSSMs. Our interviews suggest that SSSMs are used to interface with the existing code, to deal with tool limitations, to facilitate maintenance and to ease verification. Our study on the evolutionary aspects of SSSMs reveals that the need for SSSMs to deal with tool limitations grew continuously over the years. Moreover, only a minority of SSSMs have been changed between SSSM and multiple-state state machine (MSSM) during their evolution. The most frequent modifications developers made to SSSMs is inserting events with constraints on the execution of the events. Conclusions Based on our results, we provide implications for developers and tool builders. Furthermore, we formulate hypotheses about the effectiveness of SSSMs, the impacts of SSSMs on development, maintenance and verification as well as the evolution of SSSMs.

Author(s):  
Jaiganesh Balasubramanian ◽  
Sumant Tambe ◽  
Balakrishnan Dasarathy ◽  
Shrirang Gadgil ◽  
Frederick Porter ◽  
...  

Author(s):  
Sangram Routray ◽  
Lalit M. Satapathy ◽  
Sanjib k. Nayak

Wireless communication seem destined to make a large and continuing impact on our lives. Recent developments in wireless technologies provide a new channel for implementation of embedded systems with remote access for mobile and non-mobile products and services. Several wireless technologies are available with their own advantages and disadvantages. This paper examines several available short-range wireless technologies and evaluates them for embedded systems.


Author(s):  
Jesús Sánchez Cuadrado ◽  
Javier Luis Cánovas Izquierdo ◽  
Jesús García Molina

Domain Specific Languages (DSL) are becoming increasingly more important with the emergence of Model-Driven paradigms. Most literature on DSLs is focused on describing particular languages, and there is still a lack of works that compare different approaches or carry out empirical studies regarding the construction or usage of DSLs. Several design choices must be made when building a DSL, but one important question is whether the DSL will be external or internal, since this affects the other aspects of the language. This chapter aims to provide developers confronting the internal-external dichotomy with guidance, through a comparison of the RubyTL and Gra2MoL model transformations languages, which have been built as an internal DSL and an external DSL, respectively. Both languages will first be introduced, and certain implementation issues will be discussed. The two languages will then be compared, and the advantages and disadvantages of each approach will be shown. Finally, some of the lessons learned will be presented.


Sign in / Sign up

Export Citation Format

Share Document