• Title/Summary/Keyword: Program Slicing

Search Result 42, Processing Time 0.021 seconds

A Study on the Improved Dynamic Object-Oriented Program Slicing (개선된 동적 객체지향 프로그램 슬라이싱에 관한 연구)

  • Park Soon-Hyung;Park Man-Gon
    • Journal of Korea Multimedia Society
    • /
    • v.7 no.10
    • /
    • pp.1485-1495
    • /
    • 2004
  • We propose the representation of a improved dynamic object-oriented program dependence graph so as to process the slicing of object-oriented programs that is composed of related programs in order to process certain jobs. We also propose an efficient slicing algorithm using the relations of relative tables in order to compute dynamic slices of object-oriented programs. We programmed the algorithm by using fortran and Visual C++. The procedure that computes the dynamic object-oriented program slices using the improved dynamic object-oriented program dependence graph(IDOPDC) is divided into four steps. Consequently, the efficiency of the proposed improved dynamic object-oriented program dependence graph(IDOPDG) technique is also compared with the dependence graph techniques discussed previously. As a result, this certifies that an improved dynamic object-oriented program dependence graph is more efficient in comparison with the traditional dynamic object-oriented program dependence graph(DOPDG).

  • PDF

Program Slicing Using the PIFG : with emphasis on Jump Statement (PIFG를 이용한 프로그램 슬라이싱:Jump문을 중심으로)

  • Kang, Won-Im;Park, Joong-Yang;Park, Jae-Heung
    • The Transactions of the Korea Information Processing Society
    • /
    • v.5 no.10
    • /
    • pp.2556-2566
    • /
    • 1998
  • Program slicing is a technique to extract the statements which influence the value of a variable at a particular point of the program. It has been proposed that this technique is useful in debugging, iptimization, program maintenance, testing, extraction reusable components and other applications including the understanding of the program behavior. This paper aims to address the problem of slicing programs with Jump goto, break, continue in C statements, It was found that previous slicing algorithms do not always generate semantically correct slices when applied to such programs. We, therefore, point out why the previous methods do not work in this more general setting, and describe our eficient solutions that compate more correctly executable slices for such programs.

  • PDF

Dynamic Slicing Algorithms for Understanding of C Programs (C 프로그램의 이해를 지원하는 동적 조각화 알고리즘)

  • Kim, Tae-Hee;Kang, Moon-Seol
    • Journal of the Korea Institute of Information and Communication Engineering
    • /
    • v.9 no.1
    • /
    • pp.172-180
    • /
    • 2005
  • 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.

CodeAnt : Code Slicing Tool for Effective Software Verification (CodeAnt : 소프트웨어 검증 효율 향상을 위한 코드 슬라이싱 도구)

  • Park, Mingyu;Kim, Dongwoo;Choi, Yunja
    • KIPS Transactions on Software and Data Engineering
    • /
    • v.4 no.1
    • /
    • pp.1-8
    • /
    • 2015
  • Safety critical systems require exhaustive verification of safety properties, because even a single corner-case fault can cause a critical safety failure. However, existing verification approaches are too costly in terms of time and computational resource required, making it hard to be applied in practice. In this paper, we implemented a tool for minimizing the size of the verification target w.r.t. verification properties to check, based on program slicing technique[1]. The efficacy of program slicing using our tool is demonstrated in a case study with a verification target Trampoline[3], which is an open source automotive operating system compliant with OSEK/VDX[2]. Experiments have shown enhanced performance in verification, with a 71% reduction in the size of the code.

A Study on the Program Slicing Model (Program Slice 생성 모형에 관한 연구)

  • Yun Chang-Byeon;Cha Yeong-Heon;Jeong Chang-Mo
    • Journal of the military operations research society of Korea
    • /
    • v.14 no.1
    • /
    • pp.42-52
    • /
    • 1988
  • Many programmers start debugging by reading the faulty program from start to bottom without investigating carefully the erroneous program. Expert programmers, however, trace backward from a particular variable in a specific statement to identify all possible sources of influence on the value of variable (program slice). Weiser proposed a slicing algorithm (method) that is complex, iterative and still in modification [3,4]. This paper presents a method to generate a program slice by use of matrix computation which represents all possible slices of the program. The matrix representation of a program is soundly based on the graph theory of data dependency.

  • PDF

A Study on the Program Slicing Model (Program Slice 생성 모형에 관한 연구)

  • Yun Chang-Byeon;Cha Yeong-Heon;Jeong Chang-Mo
    • Journal of the military operations research society of Korea
    • /
    • v.13 no.2
    • /
    • pp.42-52
    • /
    • 1987
  • Many programmers start debugging by reading the faulty program from start to bottom without investigating carefully the erroneous program. Expert programmers, however, trace backward from a particular variable in a specific statement to identify all possible sources of influence on the value of variable (program slice). Weiser proposed a slicing algorithm (method) that is complex, iterative and still in modification [3,4]. This paper presents a method to generate a program slice by use of matrix computation which represents all possible slices of the program. The matrix representation of a program is soundly based on the graph theory of data dependency.

  • PDF

Design of Hybrid Debugging Technique for Locating Logical Errors in Java Source Codes (자바 원시 코드에서 논리적인 오류를 찾는 복합 디버깅 기술의 설계)

  • Kouh, Hoon-Joon
    • The Journal of the Korea Contents Association
    • /
    • v.6 no.10
    • /
    • pp.114-125
    • /
    • 2006
  • In the previous work, we presented HDT for locating logical errors in Java programs. The HDT locates an erroneous method at an execution tree using an algorithmic program debugging technique and locates a statement with errors in the erroneous method using a step-wise program debugging. It reduced the number of programmer debugging in Java programs. But the HDT still increases the number of debugging because the size of the recent programs increases than the past programs and the number of methods is increasing. This paper proposes HDTS using a program slicing technique (PST) at the MDT. HDTS can reduce the number of programmer debugging. Specially, the more the number of methods and statements increases, the more HDTS has effects.

  • PDF

A Decision Method of Error Positions Compounding Prigram Slicing Method and Bacdtracking Method (프로그램 슬라이스 기법과 백트랙 기법을 조합한 오류 위치의 결정 방법)

  • Yang, Hae-Sul;Lee, Ha-Yong
    • The Transactions of the Korea Information Processing Society
    • /
    • v.4 no.4
    • /
    • pp.982-992
    • /
    • 1997
  • Almost all the software develpoment cost is especially spwnede in the test phase of kifecycle.Backtracking method and program slicing methed are often used for debugging.But these have need of abundant experience on debuggers or can't apply for large scale programs.In this paper, I used informations of design documents which is generally used, and proposed a new determination method of error positions combining backtracking method and program slcing method.I described several fundamental concepts, error classes, standard design documents and determination method of error positions to porpose a debugging method, and I explained the process of proposed method using an example program with errors.Finally, I compared and analysed the proposed method with usual slicing methods.

  • PDF

On the Efficiency Comparison of Dynamic Program Slicing Algorithm for Software Testing (소프트웨어 테스팅을 위한 동적 프로그램 슬라이싱 알고리즘의 효율성 비교)

  • Park, Soon-Hyung;Park, Man-Gon
    • The Transactions of the Korea Information Processing Society
    • /
    • v.5 no.9
    • /
    • pp.2323-2333
    • /
    • 1998
  • Software engineers generally analyze the program behavior under the test case that revealed the error, not under any teneric est case. In this paper we discuss the dynamic slice consisting of all statements that actually affect the value of a variable occurrence for a given program input. We propose an efficient algorithm to make dynamic program slices. The eficiency of this algorithm is evaluated on some developed program. results are shown by a marking table of execution history. Dynamic Dependence Graph, and Reduced Dynamic Dependence Graph, Consequently, the efficiency of the proosed algorithm is also presented by the compariso with algorithm that was announced previously.

  • PDF

Design of Hybrid Debugging System for Java Programs (자바 프로그램을 위한 복합 디버깅 시스템의 설계)

  • Kouh, Hoon-Joon
    • The Journal of the Korea Contents Association
    • /
    • v.9 no.1
    • /
    • pp.81-88
    • /
    • 2009
  • In the previous work, we presented HDTS for locating logical errors in Java programs. The HDTS locates an erroneous method at an execution tree using an algorithmic program debugging technique and locates a statement with errors in the erroneous method using a step-wise program debugging. The technique can remove the unnecessary statements and nodes in debugging using a program slicing technique at the execution tree. So HDTS reduces the number of program debugging. In this paper, we design HDTS system for debugging java programs. We define small subset of Java language and design the translator that translates java source codes and the virtual machine that runs java programs. We design GUI(Graphical User Interface) for debugging.