Painting Flowers: Reasons for Using Single-State State Machines in Model-Driven Engineering

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 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. We study 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 employ the sequential explanatory strategy to study 1500 state machines from 26 components at ASML, a leading company in manufacturing lithography machines from the semiconductor industry. We observe that 25 out of 26 components contain SSSMs, making up 25.3% of the model base. To understand the reasons for this extensive usage we conduct a series of interviews followed by a grounded theory building. The results suggest that SSSMs are used to interface with the existing code, to deal with tool limitations, to facilitate maintenance and to ease verification. Based on our results, we provide implications to modeling tool builders. Furthermore, we formulate two hypotheses about the effectiveness of SSSMs as well as the impacts of SSSMs on development, maintenance and verification.

[1]  Alexander Serebrenik,et al.  Poster: How Do Community Smells Influence Code Smells? , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering: Companion (ICSE-Companion).

[2]  Stéphane Ducasse,et al.  Semantic clustering: Identifying topics in source code , 2007, Inf. Softw. Technol..

[3]  Ahmed E. Hassan,et al.  Static test case prioritization using topic models , 2014, Empirical Software Engineering.

[4]  Alexander Serebrenik,et al.  Analyzing the Eclipse API Usage: Putting the Developer in the Loop , 2013, 2013 17th European Conference on Software Maintenance and Reengineering.

[5]  Scott W. Ambler,et al.  The Elements of UML™ 2.0 Style: UML Deployment Diagrams , 2005 .

[6]  Daniel M. Russell,et al.  Model-driven development within a legacy system: an industry experience report , 2005, 2005 Australian Software Engineering Conference.

[7]  Mark Rouncefield,et al.  Model-driven engineering practices in industry: Social, organizational and managerial factors that lead to success or failure , 2014, Sci. Comput. Program..

[8]  Steffen Prochnow Efficient development of complex statecharts , 2008 .

[9]  Ramon R. H. Schiffelers,et al.  Interface protocol inference to aid understanding legacy software components , 2018, Software and Systems Modeling.

[10]  Jörgen Hansson,et al.  Assessing the State-of-Practice of Model-Based Engineering in the Embedded Systems Domain , 2014, MoDELS.

[11]  Nan Yang,et al.  Improving Model Inference in Industry by Combining Active and Passive Learning , 2019, 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER).

[12]  Alexandre Petrenko,et al.  Confirming configurations in EFSM testing , 2004, IEEE Transactions on Software Engineering.

[13]  Gabriele Bavota,et al.  When and Why Your Code Starts to Smell Bad (and Whether the Smells Go Away) , 2015, IEEE Transactions on Software Engineering.

[14]  Paul Ralph,et al.  Grounded Theory in Software Engineering Research: A Critical Review and Guidelines , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[15]  Gargi Dasgupta,et al.  Runtime Monitoring in Continuous Deployment by Differencing Execution Behavior Model , 2018, ICSOC.

[16]  Fredrik Kronlid,et al.  Turn Taking for Artificial Conversational Agents , 2006, CIA.

[17]  M. Engelmann The Philosophical Investigations , 2013 .

[18]  Emily Hill,et al.  A comparison of stemmers on source code identifiers for software search , 2011, 2011 27th IEEE International Conference on Software Maintenance (ICSM).

[19]  Alexander Serebrenik,et al.  Automated analyses of model-driven artifacts: obtaining insights into industrial application of MDE , 2017, IWSM-Mensura.

[20]  Arie van Deursen,et al.  An Experience Report on Applying Passive Learning in a Large-Scale Payment Company , 2017, ICSME.

[21]  Daniela E. Damian,et al.  Selecting Empirical Methods for Software Engineering Research , 2008, Guide to Advanced Empirical Software Engineering.

[22]  R. Yin Case Study Research: Design and Methods , 1984 .

[23]  Doo-Hwan Bae,et al.  Test cases generation from UML state diagrams , 1999, IEE Proc. Softw..

[24]  Mark Rouncefield,et al.  Empirical assessment of MDE in industry , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[25]  Alexander Serebrenik,et al.  Model Management Tools for Models of Different Domains: A Systematic Literature Review , 2019, 2019 IEEE International Systems Conference (SysCon).

[26]  Michel R. V. Chaudron,et al.  In practice: UML software architecture and design description , 2006, IEEE Software.

[27]  Arie van Deursen,et al.  Domain-specific languages: an annotated bibliography , 2000, SIGP.

[28]  J. Hooman,et al.  Complementary verification of embedded software using ASD and Uppaal , 2012, 2012 International Conference on Innovations in Information Technology (IIT).

[29]  Alexander Serebrenik,et al.  Beyond Technical Aspects: How Do Community Smells Influence the Intensity of Code Smells? , 2018, IEEE Transactions on Software Engineering.

[30]  Håkan Burden,et al.  Industrial Adoption of Model-Driven Engineering: Are the Tools Really the Problem? , 2013, MoDELS.

[31]  Ralph E. Johnson,et al.  Design Patterns: Abstraction and Reuse of Object-Oriented Design , 1993, ECOOP.

[32]  Tom Mens,et al.  Challenges in Model-Driven Software Engineering , 2009, MoDELS.

[33]  Boudewijn F. van Dongen,et al.  Process Discovery using Integer Linear Programming , 2009, Fundam. Informaticae.

[34]  Ramon R. H. Schiffelers,et al.  Model-Based Software Engineering: A Multiple-Case Study on Challenges and Development Efforts , 2018, MoDELS.

[35]  Nenad Medvidovic,et al.  A comparative analysis of software architecture recovery techniques , 2013, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[36]  Alan R. Dennis,et al.  Systems Analysis and Design with UML Version 2.0: An Object-Oriented Approach , 2007 .

[37]  Michel R. V. Chaudron,et al.  How effective is UML modeling ? , 2012, Software & Systems Modeling.

[38]  Parastoo Mohagheghi,et al.  Where Is the Proof? - A Review of Experiences from Applying MDE in Industry , 2008, ECMDA-FA.

[39]  Joanne M. Atlee,et al.  An Empirical Investigation to Understand the Difficulties and Challenges of Software Modellers When Using Modelling Tools , 2018, MoDELS.

[40]  Cheng Zhang,et al.  What Do We Know about the Effectiveness of Software Design Patterns? , 2012, IEEE Transactions on Software Engineering.

[41]  Feng Lin,et al.  Modular Supervisory Control with Priorities for Discrete Event Systems , 1995, Proceedings of 1995 34th IEEE Conference on Decision and Control.

[42]  Mark Rouncefield,et al.  The State of Practice in Model-Driven Engineering , 2014, IEEE Software.

[43]  Antonio Ruiz Cortés,et al.  Article in Press G Model the Journal of Systems and Software an Overview of Dynamic Software Product Line Architectures and Techniques: Observations from Research and Industry , 2022 .

[44]  R. Fisher On the Interpretation of χ2 from Contingency Tables, and the Calculation of P , 2010 .

[45]  Wil M. P. van der Aalst,et al.  Process Mining - Discovery, Conformance and Enhancement of Business Processes , 2011 .

[46]  M. Marcelli,et al.  Design and Methods , 2011 .

[47]  Bernhard Rumpe,et al.  Integration of Handwritten and Generated Object-Oriented Code , 2015, MODELSWARD.

[48]  Apostolos Ampatzoglou,et al.  The Effect of GoF Design Patterns on Stability: A Case Study , 2015, IEEE Transactions on Software Engineering.

[49]  Per Runeson,et al.  Guidelines for conducting and reporting case study research in software engineering , 2009, Empirical Software Engineering.

[50]  Giuliano Antoniol,et al.  Design pattern recovery in object-oriented software , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[51]  Roberto Baldoni,et al.  A Survey of Symbolic Execution Techniques , 2016, ACM Comput. Surv..

[52]  Helmut Veith,et al.  Progress on the State Explosion Problem in Model Checking , 2001, Informatics.

[53]  David M. Beazley,et al.  SWIG: An Easy to Use Tool for Integrating Scripting Languages with C and C++ , 1996, Tcl/Tk Workshop.

[54]  R ChaudronMichel,et al.  How effective is UML modeling , 2012 .

[55]  Miroslaw Staron,et al.  Adopting model driven software development in industry: a case study at two companies , 2006, MoDELS'06.

[56]  Jaco van de Pol,et al.  From POOSL to UPPAAL: Transformation and Quantitative Analysis , 2010, 2010 10th International Conference on Application of Concurrency to System Design.

[57]  Jing Dong,et al.  DP-Miner: Design Pattern Discovery Using Matrix , 2007, 14th Annual IEEE International Conference and Workshops on the Engineering of Computer-Based Systems (ECBS'07).

[58]  Steven Kelly,et al.  Integrating models with domain-specific modeling languages , 2010, DSM '10.

[59]  Michel R. V. Chaudron,et al.  Does UML Modeling Associate with Lower Defect Proneness?: A Preliminary Empirical Investigation , 2019, 2019 IEEE/ACM 16th International Conference on Mining Software Repositories (MSR).

[60]  Jiawei Han,et al.  Mining Software Specifications: Methodologies and Applications , 2011 .

[61]  General LTL Specification Mining , 2015 .

[62]  Michel R. V. Chaudron,et al.  Automated Classification of Class Role-Stereotypes via Machine Learning , 2019, EASE.

[63]  Jordi Cortadella,et al.  Mining structured petri nets for the visualization of process behavior , 2016, SAC.

[64]  Miguel A. Fernández,et al.  An empirical study of the state of the practice and acceptance of model-driven engineering in four industrial cases , 2012, Empirical Software Engineering.

[65]  Ioannis Stamelos,et al.  An empirical investigation on the reusability of design patterns and software packages , 2011, J. Syst. Softw..

[66]  Carlos José Pereira de Lucena,et al.  Analyzing the Effort of Composing Design Models of Large-Scale Software in Industrial Case Studies , 2013, MoDELS.