DOI QR코드

DOI QR Code

An Automatic Construction Approach of State Diagram from Class Operations with Pre/Post Conditions

클래스 연산의 선행/후행 조건에 바탕을 둔 클래스의 상태 다이어그램 자동 구성 기법

  • 이광민 ((주)사이버맵월드부설연구소) ;
  • 배정호 (부산대학교 컴퓨터공학과) ;
  • 채흥석 (부산대학교 컴퓨터공학과)
  • Published : 2009.08.31

Abstract

State diagrams describe the dynamic behavior of an individual object as a number of states and transitions between these states. In this paper, we propose an automated technique to the generation of a state diagram from class operations with pre/post conditions. And I also develop a supporting tool, SDAG (State Diagram Automatic Generation tool). Additionally, we propose a complexity metric and a state diagram generation approach concerning types of each operation for decreasing complexity of generated state diagram.

상태 다이어그램은 객체가 가질 수 있는 상태와 각 상태에서 수행 할 수 있는 전이를 사용하여 객체의 동적행위를 표현한다. 본 논문에서는 클래스 연산들의 선행/후행 조건들을 이용하여 상태다이어그램을 자동으로 생성하는 기법을 제안한다. 그리고 본 논문에서 제시한 기법을 구현하는 도구 SDAG(State Diagram Automatic Generation Tool)을 제작하였다. 추가적으로 생성된 상태 다이어그램의 복잡도를 감소시키기 위하여 연산의 종류를 고려한 상태 다이어그램 생성 방법과 생성된 다이어그램을 측정하는 방법을 제안하고 실험하였다.

Keywords

References

  1. T. S. Chow. Testing software design modeled by finite-state machines. IEEE Trans. Software Eng., 4(3):178-187, 1978 https://doi.org/10.1109/TSE.1978.231496
  2. P. Chevalley and P. Thevenod-Fosse. Automated generation of statistical test cases from uml state diagrams. In COMPSAC, pp.205-214, 2001
  3. H. S. Hong, Y. G. Kim, S. D. Cha, D. -H. Bae, and H. Ural. A test sequence selection method for statecharts. Softw. Test., Verif. Reliab., 10(4):203-227, 2000 https://doi.org/10.1002/1099-1689(200012)10:4<203::AID-STVR212>3.0.CO;2-2
  4. Y. Kim, H. Hong, D. Bae, and S. Cha. Test cases generation from uml state diagrams https://doi.org/10.1049/ip-sen:19990602
  5. G. Antoniol, L. C. Briand, M. D. Penta, and Y. Labiche. A case study using the round-trip strategy for state-based class testing. In ISSRE, pp.269-279, 2003 https://doi.org/10.1109/ISSRE.2002.1173268
  6. L. C. Briand, Y. Labiche, and Y. Wang. Using simulation to empirically investigate test coverage criteria based on statechart. In ICSE, pp.86-95, 2004
  7. L. C. Briand, M. D. Penta, and Y. Labiche. Assessing and improving state-based class testing: A series of experiments. IEEE Trans. Software Eng., 30(11):770-793, 2004 https://doi.org/10.1109/TSE.2004.79
  8. A. David, M. O. M?ller, and W. Yi. Formal verification of uml statecharts with real-time extensions. In FASE, pp.218-232, 2002 https://doi.org/10.1007/3-540-45923-5_15
  9. J. van Katwijk, H. Toetenel, A.-E.-K. Sahraoui, E. Anderson, and J. Zalewski. Specification and verification of a safety shell with statecharts and extended timed graphs. In SAFECOMP, pp.37-52, 2000 https://doi.org/10.1007/3-540-40891-6_4
  10. K. C. Kang and K.-I. Ko. Formalization and verification of safety properties of statechart specifications. In APSEC, pp.16-27, 1996 https://doi.org/10.1109/APSEC.1996.566736
  11. G. Pinter and I. Majzik. Runtime verification of statechart implementations. In WADS, pp.148-172, 2004 https://doi.org/10.1007/11556169_7
  12. H. J. Kohler, U. Nickel, J. Niere, and A. Zondorf. Integrating UML diagrams for production control systems. In ICSE '00: Proceedings of the 22nd international conference on Software engineeering, pp.241-251, New York, NY, USA, 2000. ACM Press https://doi.org/10.1145/337180.337207
  13. I. Niaz and J. Tanaka. Code generation from UML statecharts. In SEA '03: Proceedings of international conference on Software Engineering and Applications, 2003
  14. R. Knor, G. Trausmuth, and J. Weidl. Reengineering c/c++ source code by transforming state machines. In ESPRIT ARES Workshop, pp.97-105, 1998 https://doi.org/10.1007/3-540-68383-6_15
  15. J. C. Corbett, M. B. Dwyer, J. Hatcliff, S. Laubach, C. S. Pasareanu, Robby, and H. Zheng. Bandera: extracting finitestate models from java source code. In ICSE, pp.439-448, 2000 https://doi.org/10.1145/337180.337234
  16. N. Pywes and P. Rehmet. Recovery of software design, statemachines, and specifications from source code. In ICECCS, pp.279-288, 1996 https://doi.org/10.1109/ICECCS.1996.558574
  17. C. Nebut, F. Fleurey, Y. L. Traon, and J.-M. Jezequel. Automatic test generation: A use case driven approach. IEEE Trans. Software Eng., 32(3):140-155, 2006 https://doi.org/10.1109/TSE.2006.22
  18. J. Dick and A. Faivre. Automating the generation and sequencing of test cases from model-based specifications. In FME, pp.268-284, 1993 https://doi.org/10.1007/BFb0024651
  19. M. Riebisch, I. Philippow, and M. Gotze. UML-based statistical test case generation. In NetObject-Days, pp.394-411, 2002
  20. B. Meyer. Applying 'Design by Contract', In Computer, 25 (10):40-51, 1992 https://doi.org/10.1109/2.161279
  21. OMG. UML 2.1 Superstructure specification. 'http://www.uml.org'
  22. J. Warmer and A. Kleppe. The Object Constraint Language: Getting Your Models Ready for MDA. Addison-Wesley Professional, 2nd edition, 2003
  23. R. Kramer. iContract - the java(tm) design by contract(tm) tool. In TOOLS (26), pp.295-307, 1988 https://doi.org/10.1109/TOOLS.1998.711021
  24. M. Karaorman and P. Abercrombie. jContractor: Introducing design-by-contract to java using reflective bytecode instrumentation. Formal Methods in System Design, 27(3):275-312, 2005 https://doi.org/10.1007/s10703-005-3400-1
  25. J. Newmarch. Adding contracts to java. In TOOLS (27), pp. 2-7, 1988 https://doi.org/10.1109/TOOLS.1998.713581
  26. S. H. Edwards, M. Sitaraman, B. W. Weide, and J. E. Hollingsworth. Contract-checking wrappers for c++ classes. IEEE Trans. Software Eng., 30(11):794-810, 2004 https://doi.org/10.1109/TSE.2004.80
  27. P. Guerreiro. Simple support for design by contract in c++. In TOOLS (39), pp.24-34, 2001 https://doi.org/10.1109/TOOLS.2001.941656
  28. R. Plosch and J. Pichler. Contracts: From analysis to c++ implementation. In TOOLS (30), pp.248-257, 1999 https://doi.org/10.1109/TOOLS.1999.787553
  29. McCabe, T. A Complexity Measure. IEEE Trans. Software Eng., 2(4):308-320, 1976 https://doi.org/10.1109/TSE.1976.233837
  30. Cruz-Lemus, J. A., Genero, M. Olivas, J. A., Romero, F.P. Piattini, M. Predicting UML statechart diagrams understandability using fuzzy logic-based techniques. Proceedings of the Sixteenth International Conference on Software Engineering & Knowledge Engineering SEKE 2004, pp.238-245, 2004
  31. Stump, A., Barrett, C.W., Dill., D.L.: CVC: a cooperating validity checker. In Proc. of CAV'02. Vol.2404 of LNCS. 2002 https://doi.org/10.1007/3-540-45657-0_40
  32. E. Koutsofios and S. C. North. Drawing graphs with dot. AT&T Bell Laboratories, Murray Hill, NJ
  33. JML. The Java Modeling Language. 'http://www.eecs.ucf.edu/~leavens/JML/'
  34. H. Liang, J. Dingel, and Z. Diskin. A comparative survey of scenario-based to state-based model synthesis approaches. In SCESM, pp.5-12, 2006 https://doi.org/10.1145/1138953.1138956
  35. J.Whittle and J. Schumann. Generating statechart designs from scenarios. In ICSE, pp.314-323, 2000 https://doi.org/10.1145/337180.337217
  36. J. Whittle, R. Kwan, and J. Saboo. From scenarios to code: An air traffic control case study. Software and System Modeling, 4(1):71-93, 2005 https://doi.org/10.1007/s10270-004-0067-9
  37. E. Makinen and T. Systa. Mas - an interactive synthesizer to support behavioral modeling in uml. In ICSE, pp.15-24, 2001 https://doi.org/10.1109/ICSE.2001.919077
  38. S. Uchitel and J. Kramer. A workbench for synthesising behaviour models from scenarios. In ICSE, pp.188-197, 2001 https://doi.org/10.1109/ICSE.2001.919093
  39. M. Mukund, K. N. Kumar, and M. A. Sohoni. Synthesizing distributed finite-state systems from mscs. In CONCUR, pp. 521-535, 2000 https://doi.org/10.1007/3-540-44618-4_37

Cited by

  1. Derivation of State Transition Diagram from Class Using Tree Structure vol.2, pp.1, 2013, https://doi.org/10.3745/KTSDE.2013.2.1.019