Control Flow Analysis of UML 2.0 Sequence Diagrams

  • Vahid Garousi
  • Lionel C. Briand
  • Yvan Labiche
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3748)


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.


Control Flow Sequence Diagram Consistency Rule Asynchronous Message Software Development Life Cycle 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Muchnick, S.: Advanced Compiler Design and Implementation, 1st edn. Morgan Kaufmann, San Francisco (1997)Google Scholar
  2. 2.
    Chusho, A.T.: Test data selection and quality estimation based on the concept of essential branches for path testing. IEEE Tran. on Soft. Eng. 13(5), 509–517 (1987)CrossRefGoogle Scholar
  3. 3.
    Bertolino, A., Marre, M.: Automatic Generation of Path Covers Based on the Control Flow Analysis of Computer Programs. IEEE Tran. on Soft. Eng. 20(12), 885–899 (1994)CrossRefGoogle Scholar
  4. 4.
    Rapps, S., Weyuker, E.J.: Data flow analysis techniques for test data selection. In: Proc. Int. Conf. on Soft. Eng., pp. 272–278 (1982)Google Scholar
  5. 5.
    Harrold, M., Soffa, M.: Interprocedual data flow testing. In: Proc. Symp. on Soft. Testing, Analysis, and Verification, pp. 158–167 (1989)Google Scholar
  6. 6.
    Marick, B.: Experience With the Cost of Different Coverage Goals For Testing. In: Proc. Pacific Northwest Soft. Quality Conf., pp. 147–164 (1991)Google Scholar
  7. 7.
    Jin, Z., Offutt, J.: Coupling-based Criteria for Integration Testing. Soft. Testing, Verification, and Reliability 8(3), 133–154 (1998)CrossRefGoogle Scholar
  8. 8.
    OMG, Unified Modeling Language Specification (v1.3) (1999)Google Scholar
  9. 9.
    OMG, Unified Modeling Language Specification (v1.5) (2003)Google Scholar
  10. 10.
    OMG, UML 2.0 Superstructure Final Adopted specification (2003)Google Scholar
  11. 11.
    Okazaki, M., Aoki, T., Katayama, T.: Formalizing sequence diagrams and state machines using Concurrent Regular Expression. In: Proc. Int. Workshop on Scenarios and State Machines: Models, Algorithms, and Tools, pp. 74–79 (2003)Google Scholar
  12. 12.
    Rountev, A., Kagan, S., Sawin, J.: Coverage Criteria for Testing of Object Interactions in Sequence Diagrams. In: Proc. Conf. Fundamental Approaches to Soft. Eng., pp. 289–304 (2005)Google Scholar
  13. 13.
    Bernardi, S., Donatelli, S., Merseguer, J.: From UML sequence diagrams and statecharts to analyzable Petri-net Models. In: Proc. Int. Workshop on Soft. and Performance, pp. 35–45 (2002)Google Scholar
  14. 14.
    Cardoso, J., Sibertin-Blanc, C.: Ordering actions in sequence diagrams of UML. In: Proc. Int. Conf. on Information Technology Interfaces, pp. 3–14 (2001)Google Scholar
  15. 15.
    Burd, E., Overy, D., Wheetman, A.: Evaluating Using Animation to Improve Understanding of Sequence Diagrams. In: Proc. Int. Workshop on Program Comprehension, pp. 7–113 (2002)Google Scholar
  16. 16.
    Wu, Y., Chen, M.-H., Offutt, J.: UML-Based Integration Testing for Component-Based Software. In: Erdogmus, H., Weng, T. (eds.) ICCBSS 2003. LNCS, vol. 2580, pp. 251–260. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  17. 17.
    Abdurazik, A., Offutt, J.: Using UML Collaboration Diagrams for Static Checking and Test Generation. In: Evans, A., Kent, S., Selic, B. (eds.) UML 2000. LNCS, vol. 1939, pp. 383–395. Springer, Heidelberg (2000)Google Scholar
  18. 18.
    Fraikin, F., Leonhardt, T.: SeDiTeC-testing based on sequence diagrams. In: Proc. Int. Conf. on Automated Soft. Eng., pp. 261–266 (2002)Google Scholar
  19. 19.
    Kleppe, A., Warmer, J., Bast, W. (eds.): MDA Explained: The Model Driven Architecture-Practice and Promise, 1st edn. Addison-Wesley, Reading (2003)Google Scholar
  20. 20.
    Garg, V.K., Ragunath, M.T.: Concurrent regular expressions and their relationship to Petri nets. Theoretical Computer Science 96(2), 285–304 (1992)zbMATHCrossRefMathSciNetGoogle Scholar
  21. 21.
    Donatelli, S., Franceschinis, G.: PSR Methodology: integrating hardware and software models. In: Billington, J., Reisig, W. (eds.) ICATPN 1996. LNCS, vol. 1091, pp. 133–152. Springer, Heidelberg (1996)Google Scholar
  22. 22.
    Garousi, V., Briand, L., Labiche, Y.: Control Flow Analysis of UML 2.0 Sequence Diagrams, Technical Report SCE-05-09, Carleton University (2005),
  23. 23.
    Long, D.L., Clarke, L.A.: Task interaction graphs for concurrency analysis. In: Proc. Int. Conf. on Soft. Eng., pp. 44–52 (1989)Google Scholar
  24. 24.
    Chamillard, A.T., Clarke, L.A.: Improving the accuracy of Petri net-based analysis of concurrent programs. In: Proc. Int. Symp. on Soft. testing and analysis, pp. 24–38 (1996)Google Scholar
  25. 25.
    Krüger, I., Grosu, R., Scholz, P., Broy, M.: From MSCs to Statecharts. In: Proc. Int. Workshop on Distributed and parallel Embedded Systems, pp. 61–71 (1999)Google Scholar
  26. 26.
    Nielson, H.R., Nielson, F.: Infinitary Control Flow Analysis: a Collecting Semantics for Closure Analysis. In: Symp. on Principles of Programming Languages, pp. 332–345 (1997)Google Scholar
  27. 27.
    Bauer, J.: A control-flow-analysis for multi-threaded java with security applications, Master’s thesis, Universitat des Saarlandes, pp. 97 (2001)Google Scholar
  28. 28.
    Blasio, P.D., Fisher, K., Talcott, C.: A Control-Flow Analysis for a Calculus of Concurrent Objects. IEEE Trans. on Soft. Eng. 26(7) (2000)Google Scholar
  29. 29.
    Brauer, W., Reisig, W., Rozenberg, G. (eds.): APN 1986. LNCS, vol. 254. Springer, Heidelberg (1987)Google Scholar
  30. 30.
    Warmer, J., Kleppe, A.: The Object Constraint Language: Getting Your Models Ready for MDA. Addison Wesley, Reading (2003)Google Scholar
  31. 31.
    Rozenberg, G., Salomaa, A.: Handbook of Formal Languages, 1st edn. Springer, Heidelberg (1997)zbMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Vahid Garousi
    • 1
  • Lionel C. Briand
    • 1
  • Yvan Labiche
    • 1
  1. 1.Software Quality Engineering Laboratory (SQUALL), Department of Systems and Computer EngineeringCarleton UniversityOttawaCanada

Personalised recommendations