Control Flow Analysis of UML 2.0 Sequence Diagrams

This article presents a control flow analysis methodology based on UML 2.0 sequence diagrams (SD). In contrast to the conventional code-based control flow analysis techniques, this technique can be used earlier in software development life cycle, when the UML design model of a system becomes available. Among many applications, this technique can be used in SD-based test techniques, model comprehension and model execution in the context of MDA. Based on the well-defined UML 2.0 activity diagrams, we propose an extended activity diagram metamodel, referred to as Concurrent Control Flow Graph (CCFG), to support control flow analysis of UML 2.0 sequence diagrams. Our strategy in this article is to define an OCL-based mapping in a formal and verifiable form as consistency rules between a SD and a CCFG, so as to ensure the completeness of the rules and the CCFG metamodel with respect to our control flow analysis purpose and enable their verification. Completeness here means if the CCFG metamodel has all classes and associations needed, and the rules are adequate with respect to our purpose. Furthermore, we define Concurrent Control Flow Paths, which are a generalization of the conventional Control Flow Path concept. The control flow analysis technique is applied to an example SD to demonstrate the feasibility of the approach.

[1]  Takeshi Chusho,et al.  Test Data Selection and Quality Estimation Based on the Concept of Essential Branches for Path Testing , 1987, IEEE Transactions on Software Engineering.

[2]  Bjørn N. Freeman-Benson,et al.  Visualizing dynamic software system information through high-level models , 1998, OOPSLA '98.

[3]  Karl-Filip Faxén Optimizing Lazy Functional Programs Using Flow Inference , 1995, SAS.

[4]  Wolfgang Reisig,et al.  Petri Nets: Central Models and Their Properties , 1986, Lecture Notes in Computer Science.

[5]  Spencer Rugaber,et al.  User interface reengineering , 1998 .

[6]  Thomas Schmitt,et al.  JAVAVIS: Automatic Program Visualization with Object and Sequence Diagrams Using the Java Debug Interface (JDI) , 2001, Software Visualization.

[7]  J. Cardoso,et al.  Ordering actions in sequence diagrams of UML , 2001, Proceedings of the 23rd International Conference on Information Technology Interfaces, 2001. ITI 2001..

[8]  A. Jefferson Offutt,et al.  Coupling‐based criteria for integration testing , 1998 .

[9]  Robert B. France,et al.  Rigorous Testing by Merging Structural and Behavioral UML Representations , 2003, UML.

[10]  Robert V. Binder,et al.  Testing Object-Oriented Systems: Models, Patterns, and Tools , 1999 .

[11]  Nick Mitchell,et al.  Visualizing the Execution of Java Programs , 2001, Software Visualization.

[12]  Flemming Nielson,et al.  Abstract interpretation: a semantics-based tool for program analysis , 1995, LICS 1995.

[13]  Garry D. Coleman,et al.  Advancing the Standard , 1999 .

[14]  John Dean,et al.  COTS-Based Software Systems , 2001, Lecture Notes in Computer Science.

[15]  John H. Reppy Concurrent ML: Design, Application and Semantics , 1993, Functional Programming, Concurrency, Simulation and Automated Reasoning.

[16]  A. Jefferson Offutt,et al.  Using UML Collaboration Diagrams for Static Checking and Test Generation , 2000, UML.

[17]  Suresh Jagannathan,et al.  Analyzing stores and references in a parallel symbolic language , 1994, LFP '94.

[18]  Suresh Jagannathan,et al.  A unified treatment of flow analysis in higher-order languages , 1995, POPL '95.

[19]  Grzegorz Rozenberg,et al.  Handbook of Formal Languages , 1997, Springer Berlin Heidelberg.

[20]  Suresh Jagannathan,et al.  Effective Flow Analysis for Avoiding Run-Time Checks , 1995, SAS.

[21]  Paolo Tonella,et al.  Reverse engineering of the interaction diagrams from C++ code , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[22]  Steven S. Muchnick,et al.  Advanced Compiler Design and Implementation , 1997 .

[23]  Carolyn L. Talcott,et al.  A Control-Flow Analysis for a Calculus of Concurrent Objects , 2000, IEEE Trans. Software Eng..

[24]  Lionel C. Briand,et al.  A UML-Based Approach to System Testing , 2001, UML.

[25]  Susanna Donatelli,et al.  From UML sequence diagrams and statecharts to analysable petri net models , 2002, WOSP '02.

[26]  Brian Marick,et al.  EXPERIENCE WITH THE COST OF DIFFERENT COVERAGE GOALS FOR TESTING , 1991 .

[27]  Vijay K. Garg,et al.  Concurrent Regular Expressions and Their Relationship to Petri Nets , 1992, Theor. Comput. Sci..

[28]  Martin P. Ward The FermaT assembler re-engineering workbench , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[29]  Falk Fraikin,et al.  SeDiTeC-testing based on sequence diagrams , 2002, Proceedings 17th IEEE International Conference on Automated Software Engineering,.

[30]  A. Jefferson Offutt,et al.  UML-Based Integration Testing for Component-Based Software , 2003, ICCBSS.

[31]  Anneke Kleppe,et al.  MDA explained - the Model Driven Architecture: practice and promise , 2003, Addison Wesley object technology series.

[32]  Elaine J. Weyuker,et al.  Data flow analysis techniques for test data selection , 2015, ICSE '82.

[33]  Mary Lou Soffa,et al.  Interprocedual data flow testing , 1989 .

[34]  Stephen J. Mellor,et al.  Executable UML - A Foundation for Model-Driven Architecture , 2002, Addison Wesley object technology series.

[35]  Jean-Marc Jézéquel,et al.  Test Synthesis from UML Models of Distributed Software , 2007, IEEE Transactions on Software Engineering.

[36]  Atanas Rountev,et al.  Control Flow Analysis for Reverse Engineering of Sequence Diagrams , 2004 .

[37]  Atanas Rountev,et al.  Coverage Criteria for Testing of Object Interactions in Sequence Diagrams , 2005, FASE.

[38]  Gregg Rothermel,et al.  Performing data flow testing on classes , 1994, SIGSOFT '94.

[39]  Lionel C. Briand,et al.  Towards the reverse engineering of UML sequence diagrams , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..

[40]  Lori A. Clarke,et al.  Task interaction graphs for concurrency analysis , 1989, ICSE '89.

[41]  Flemming Nielson,et al.  Systematic realisation of control flow analyses for CML , 1997, ICFP '97.

[42]  Shing-Chi Cheung,et al.  Automated test case generation for the stress testing of multimedia systems , 2002, Softw. Pract. Exp..

[43]  John C. Mitchell,et al.  A lambda calculus of objects and method specialization , 1993, [1993] Proceedings Eighth Annual IEEE Symposium on Logic in Computer Science.

[44]  Flemming Nielson,et al.  Infinitary control flow analysis: a collecting semantics for closure analysis , 1997, POPL '97.

[45]  Lori A. Clarke,et al.  Improving the accuracy of Petri net-based analysis of concurrent programs , 1996, ISSTA '96.

[46]  Manfred Broy,et al.  From MSCs to Statecharts , 1998, DIPES.

[47]  Rajiv Gupta,et al.  Data Flow Testing , 2002, The Compiler Design Handbook.

[48]  Anneke Kleppe,et al.  The Object Constraint Language: Getting Your Models Ready for MDA , 2003 .

[49]  Frances E. Allen,et al.  Control-flow analysis , 2022 .

[50]  Elizabeth Burd,et al.  Evaluating using animation to improve understanding of sequence diagrams , 2002, Proceedings 10th International Workshop on Program Comprehension.

[51]  Antonia Bertolino,et al.  Automatic Generation of Path Covers Based on the Control Flow Analysis of Computer Programs , 1994, IEEE Trans. Software Eng..

[52]  Nevin Charles Heintze,et al.  Set based program analysis , 1992 .

[53]  Wolfgang Reisig,et al.  Application and Theory of Petri Nets 1996 , 1996, Lecture Notes in Computer Science.

[54]  Priti Shankar,et al.  The Compiler Design Handbook: Optimizations and Machine Code Generation , 2002, The Compiler Design Handbook.

[55]  Giuliana Franceschinis,et al.  The PSR Methodology: Integrating Hardware and Software Models , 1996, Application and Theory of Petri Nets.

[56]  Martin Gogolla,et al.  Capturing dynamic program behaviour with UML collaboration diagrams , 2001, Proceedings Fifth European Conference on Software Maintenance and Reengineering.

[57]  Tom Pender UML Bible , 2003 .

[58]  Grzegorz Rozenberg,et al.  Advances in Petri Nets 1985 , 1985, Lecture Notes in Computer Science.

[59]  Ian J. Hayes,et al.  Integration of generic program analysis tools into a software development environment , 2005, ACSC.

[60]  Hausi A. Müller,et al.  Shimba—an environment for reverse engineering Java software systems , 2001, Softw. Pract. Exp..