C 프로그램의 이해를 지원하는 동적 조각화 알고리즘

Dynamic Slicing Algorithms for Understanding of C Programs

  • 김태희 (동신대학교 정보생활과학대학 디지털콘텐츠학과) ;
  • 강문설 (광주대학교 공과대학 컴퓨터학과)
  • 발행 : 2005.02.01

초록

동적 조각화 기법은 프로그램을 이해하기 쉬운 조각단위로 분해하여 소프트웨어 개발자나 유지보수자가 프로그램을 쉽게 이해할 수 있도록 지원한다. 본 논문에서는 프로그램을 조각화하는데 걸리는 시간을 단축할 수 있는 동적 조각화 알고리즘을 제안하였다. 모든 문장에 대해 배정연산자를 기준으로 우측에서 사용되는 참조변수집합과 좌측에서 사용되어 변수의 값에 영향을 미치는 변경변수집합을 산출하고, 변수선어부분의 모든 변수에 대해 변수간 관련성(VV)을 작성하였다. 이를 활용하여 제안한 알고리즘을 적용하면 동적조각을 추출할 수 있다. 제안한 알고리즘의 성능을 기존방법과 비교한 결과 기준변수의 개수가 3개 이상인 경우에는 문장의 평균 비교횟수를 35% 감소시킴으로써 동적조각을 추출하는 과정에 소요되는 시간을 단축시킬 수 있었다.

Dynamic slicing method decomposes a program into slices and supports to be understood programs easily by software developer or maintainer. In this paper, we propose dynamic slicing algorithm to reduce time to decompose a program. We produce reference-variable set used in right and modify-variable set used in left on the basis of the assignment operator of all sentences and extract Inter-Variable Relationship(VV) for all variables of variable declaration. Proposed algorithm extracts dynamic slices by using them and execution trace of program. In conclusion, proposed algorithm improved the performance by reducing the time to extract dynamic slices by decreasing average comparison count of sentence when the number of criterion variables is three or more.

키워드

참고문헌

  1. Xiangyu Zhang, Rajiv Gupta, Youtao Zhang, 'Precise Dynamic Slicing Algorithms', Proceedings of the 25th International Conference on Software Engineering( ICSE'03), 2003
  2. Arpad Beszedes, Tamas Gergely, Zsolt Mihaly Szabo, Janos Csirik and Tibor Gyimothy, 'Dynamic Slicing Method for Maintenance of Large C Programs', Proceedings of the Fifth European Conference on Software Maintenance and Reengineering( CSMR'01), 2001
  3. H.Agrawal, R. DeMillo, and E. Spafford, 'Debugging with Dynamic Slicing and Backtracking' Software Practice and Experience(SP&E), Vol. 23, No.6, pp589-616, 1993 https://doi.org/10.1002/spe.4380230603
  4. D.C.Atkinson, M.Mock, C.Chambers, and S.J.Eggers, 'Program Slicing Using Dynamic Point-to Data', ACM SIGSOFT 10th Symposium on the Foundations of Software Engineering(FSE), pp29-40, November, 2002
  5. F. Tip, 'A Survey of Program Slicing tools', Technical Report, Dept. of Computer and Information Science, Linkoping University, 1993
  6. B.Korel, 'Computation of Dynamic Program Slices for Unstructured Programs' IEEE Transaction on Software Engineering, 23(1), pp17-34, January 1997 https://doi.org/10.1109/32.581327
  7. B. Korel, S. Yalamanchili, 'Forward computation of dynamic program slices' International Symposium on Software Testing and Analysis(ISSTA), August 1994