Toward automatically quantifying the impact of a change in systems

Abstract Software maintenance is becoming more challenging with the increased complexity of the software and the frequently applied changes. Performing impact analysis before the actual implementation of a change is a crucial task during system maintenance. While many tools and techniques are available to measure the impact of a change at the code level, only a few research work is done to measure the impact of a change at an earlier stage in the development process. Measuring the impact of a change at the model level speeds up the maintenance process allowing early discovery of critical components of the system before applying the actual change at the code level. In this paper, we present model-based impact analysis approach for state-based systems such as telecommunication or embedded systems. The proposed approach uses model dependencies to automatically measure the expected impact for a requested change instead of relying on the expertise of system maintainers, and it generates two impact sets representing the lower bound and the upper bound of the impact. Although it can be extended to other behavioral models, the presented approach mainly addresses extended finite-state machine (EFSM) models. An empirical study is conducted on six EFSM models to investigate the usefulness of the proposed approach. The results show that on average the size of the impact after a single modification (a change in a one EFSM transition) ranges between 14 and 38 % of the total size of the model. For a modification involving multiple transitions, the average size of the impact ranges between 30 and 64 % of the total size of the model. Additionally, we investigated the relationships (correlation) between the structure of the EFSM model, and the size of the impact sets. Upon preliminary analysis of the correlation, the concepts of model density and data density were defined, and it was found that they could be the major factors influencing the sizes of impact sets for models. As a result, these factors can be used to determine the types of models for which the proposed approach is the most appropriate.

[1]  Matthias Jarke,et al.  Toward Reference Models of Requirements Traceability , 2001, IEEE Trans. Software Eng..

[2]  Alexander Pretschner,et al.  One evaluation of model-based testing and its automation , 2005, ICSE.

[3]  Chris Fox,et al.  Concurrent statechart slicing , 2010, 2010 2nd Computer Science and Electronic Engineering Conference (CEEC).

[4]  Bogdan Korel,et al.  Requirement-based automated black-box test generation , 2001, 25th Annual International Computer Software and Applications Conference. COMPSAC 2001.

[5]  Bogdan Korel,et al.  Model based regression test reduction using dependence analysis , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[6]  Cláudia Werner,et al.  Mining Change Traces from Versioned UML Repositories , 2007, SBES.

[7]  Bogdan Korel,et al.  Experimental Comparison of Code-Based and Model-Based Test Prioritization , 2009, 2009 International Conference on Software Testing, Verification, and Validation Workshops.

[8]  Keith H. Bennett,et al.  Software maintenance and evolution: a roadmap , 2000, ICSE '00.

[9]  Eleni Stroulia,et al.  Understanding class evolution in object-oriented software , 2004, Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004..

[10]  Joanne M. Atlee,et al.  Evaluation of a State-Based Model of Feature Interactions , 1997, FIW.

[11]  Robert S. Arnold,et al.  Software Change Impact Analysis , 1996 .

[12]  Yanping Chen,et al.  Regression test suite reduction based on SDL models of system requirements , 2009, J. Softw. Maintenance Res. Pract..

[13]  Jean-Marc Jézéquel,et al.  Efficient object-oriented integration and regression testing , 2000, IEEE Trans. Reliab..

[14]  Markus Völter,et al.  Model-Driven Software Development: Technology, Engineering, Management , 2006 .

[15]  Eda Marchetti,et al.  The Cow_Suite Approach to Planning and Deriving Test Suites in UML Projects , 2002, UML.

[16]  Colin F. Snook,et al.  UML-B: Formal modeling and design aided by UML , 2006, TSEM.

[17]  Douglas C. Schmidt,et al.  Guest Editor's Introduction: Model-Driven Engineering , 2006, Computer.

[18]  Bran Selic,et al.  The Pragmatics of Model-Driven Development , 2003, IEEE Softw..

[19]  Lionel C. Briand,et al.  Automating impact analysis and regression test selection based on UML designs , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[20]  Volker Gruhn,et al.  Model-Driven Software Development , 2005 .

[21]  Mark Harman,et al.  Regression testing minimization, selection and prioritization: a survey , 2012, Softw. Test. Verification Reliab..

[22]  Ritu Sibal,et al.  Prioritization of test scenarios derived from UML activity diagram using path complexity , 2012, CUBE.

[23]  Eleni Stroulia,et al.  UMLDiff: an algorithm for object-oriented design differencing , 2005, ASE.

[24]  C. Robert Kenley,et al.  Creating Executable Agent‐Based Models Using SysML , 2015 .

[25]  Mark Harman,et al.  Regression test suite prioritization using system models , 2012, Softw. Test. Verification Reliab..

[26]  Mark Harman,et al.  Regression Testing Minimisation, Selection and Prioritisation - A Survey , 2009 .

[27]  Vineet Sinha,et al.  Using dependency models to manage complex software architecture , 2005, OOPSLA '05.

[28]  Bente Anda,et al.  Understanding software maintenance and evolution by analyzing individual changes: a literature review , 2009 .

[29]  Mark Harman,et al.  Control Dependence for Extended Finite State Machines , 2009, FASE.

[30]  Ji Wang,et al.  Slicing Hierarchical Automata for Model Checking UML Statecharts , 2002, ICFEM.

[31]  A. Jefferson Offutt,et al.  Maintaining evolving component-based software with UML , 2003, Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings..

[32]  Bogdan Korel,et al.  Dependence analysis in reduction of requirement based test suites , 2002, ISSTA '02.

[33]  Bogdan Korel,et al.  Application of system models in regression test suite prioritization , 2008, 2008 IEEE International Conference on Software Maintenance.

[34]  Bogdan Korel,et al.  Model-based test prioritization heuristic methods and their evaluation , 2007, A-MOST '07.

[35]  A. Berztiss,et al.  Requirements Engineering , 2002, J. Object Technol..

[36]  Jean-Marc Jézéquel,et al.  Model Driven Engineering , 2017, Encyclopedia of GIS.

[37]  Jacques Julliand,et al.  B model slicing and predicate abstraction to generate tests , 2013, Software Quality Journal.

[38]  David Harel,et al.  Executable object modeling with statecharts , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[39]  Hareton K. N. Leung,et al.  A survey of code‐based change impact analysis techniques , 2013, Softw. Test. Verification Reliab..

[40]  Lionel C. Briand,et al.  Automated impact analysis of UML models , 2006, J. Syst. Softw..

[41]  Mark Harman,et al.  Test prioritization using system models , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[42]  Mats Per Erik Heimdahl,et al.  Reduction and slicing of hierarchical state machines , 1997, ESEC '97/FSE-5.

[43]  Jeremy Dick Design Traceability , 2005, IEEE Softw..

[44]  Kwang-Ting Cheng,et al.  Automatic Functional Test Generation Using The Extended Finite State Machine Model , 1993, 30th ACM/IEEE Design Automation Conference.

[45]  Olly Gotel,et al.  An analysis of the requirements traceability problem , 1994, Proceedings of IEEE International Conference on Requirements Engineering.

[46]  Vahid Garousi,et al.  Traffic-aware stress testing of distributed systems based on UML models , 2006, ICSE.

[47]  Lionel C. Briand,et al.  Impact analysis and change management of UML models , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[48]  Jeremy Dick,et al.  Automating the Generation and Sequencing of Test Cases from Model-Based Specifications , 1993, FME.

[49]  Chris Fox,et al.  And-Or Dependence Graphs for Slicing Statecharts , 2005, Beyond Program Slicing.

[50]  Hasan Ural,et al.  Regression test suite selection using dependence analysis , 2013, J. Softw. Evol. Process..

[51]  Hüsnü Yenigün Identifying the effects of modifications as data dependencies , 2013, Software Quality Journal.

[52]  Steffen Lehnert,et al.  A review of software change impact analysis , 2011 .

[53]  David A. Padua,et al.  Dependence graphs and compiler optimizations , 1981, POPL '81.

[54]  Stuart Kent,et al.  Model Driven Engineering , 2002, IFM.

[55]  Andrea Polini,et al.  Model-Based Generation of Testbeds for Web Services , 2008, TestCom/FATES.

[56]  Eleni Stroulia,et al.  Data-mining in Support of Detecting Class Co-evolution , 2004, SEKE.

[57]  Luay Tahat,et al.  Identifying the Effect of Model Modifications in State-Based Models and Systems , 2012 .

[58]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[59]  Mark Harman,et al.  A theoretical and empirical study of EFSM dependence , 2009, 2009 IEEE International Conference on Software Maintenance.

[60]  Bogdan Korel,et al.  Slicing of state-based models , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[61]  Mark Harman,et al.  State-based model slicing: A survey , 2013, CSUR.

[62]  Thai Son Hoang,et al.  Rodin: an open toolset for modelling and reasoning in Event-B , 2010, International Journal on Software Tools for Technology Transfer.

[63]  Orest Pilskalns,et al.  Regression Testing UML Designs , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[64]  Julia Rubin,et al.  Model traceability , 2006, IBM Syst. J..

[65]  F. Wagner VFSM executable specification , 1992, CompEuro 1992 Proceedings Computer Systems and Software Engineering.

[66]  Jean-Pierre Gallois,et al.  Slicing communicating automata specifications: polynomial algorithms for model reduction , 2008, Formal Aspects of Computing.

[67]  Siddhartha R. Dalal,et al.  Model-based testing in practice , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[68]  Bogdan Korel,et al.  Understanding modifications in state-based models , 2004, Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004..