• 제목/요약/키워드: program slicing

검색결과 42건 처리시간 0.022초

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

  • 박순형;박만곤
    • 한국멀티미디어학회논문지
    • /
    • 제7권10호
    • /
    • pp.1485-1495
    • /
    • 2004
  • 본 논문에서는 효율적인 동적 객체지향 프로그램 슬라이싱을 구현하기 위한 개선된 동적 객체지향 프로그램 종속 그래프 기법 을 제안하였고, 이 그래프를 이용한 동적 객체지향 프로그램 슬라이싱 구현 단계를 제안하였다. 이 구현 단계는 프로그램 노드 분석 단계, 프로그램 실행이력 분석 단계, 동적 객체지향 프로그램 종속 그래프 작성 단계 그리고, 프로그램 슬라이스 작성 단계 등 모두 4단계로 구성되어 있다. 본 논문에서 제시한 기법이 정확함을 보이기 위해 본 논문에서 제시한 알고리즘을 실제 구현하였다. 구현 프로그램은FORTRAN과 VISUAL C++를 사용하였다. 그리고, 본 논문에서 제안한 동적 객체지향 프로그램 슬라이싱 기법이 기존의 객체지향 프로그램 슬라이싱 기법과 기존의 동적 객체지향 프로그램 슬라이싱 기법에 비해 효율적임을 보이기 위해 그래프의 복잡도를 측정하여 비교하였다. 그리고, 프로그램 슬라이스의 크기도 함께 측정하여 본 논문에서 제시한 기법이 효율적임을 증명하였다.

  • PDF

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

  • 강원임;박중양;박재흥
    • 한국정보처리학회논문지
    • /
    • 제5권10호
    • /
    • pp.2556-2566
    • /
    • 1998
  • 프로그램 슬라이싱은 프로그램의 특정 위치에서 변수들의 값에 영향을 주는 문장을 추출하는 방법이다. 프로그램 슬라이싱의 유용성은 디버깅, 최적화, 프로그램 유지보수, 테스팅, 재사용 부품 추출 그리고 프로그램 이해를 포함하는 다른 응용 분야에 널리 알려져 있다. 본 논문은 Jump문을 포함한 프로그램에 적용했을 때 구문적으로 정확한 슬라이스 생성에 실패한다. 본 논문에서는 기존 방법들의 문제점을 지적하고, 정확하고 수행가능한 슬라이스를 생성하는 효율적인 방법을 제안한다.

  • PDF

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

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

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

  • 박민규;김동우;최윤자
    • 정보처리학회논문지:소프트웨어 및 데이터공학
    • /
    • 제4권1호
    • /
    • pp.1-8
    • /
    • 2015
  • 고안전성이 요구되는 소프트웨어의 경우 극히 낮은 확률로 발생하는 오류로 인하여 전체시스템의 안전에 치명적인 상황을 야기할 수 있으므로, 철저한 안전성 검증이 요구된다. 하지만 모든 가능한 실행경로를 고려해야 하는 안전성 검증은 고비용이 발생한다는 단점이 있다. 본 논문에서는 안전성 검증의 고비용 문제를 개선하기 위해 안전성 특질을 기준으로 코드 슬라이싱 기법[1]을 구현한 도구를 개발하였다. 개발한 도구를 OSEK/VDX[2] 기반의 개방형 차량 전장용 운영체제인 Trampoline[3] 소스코드에 적용한 결과 분석 대상의 코드의 크기를 평균 71% 줄일 수 있었고, 실제 검증을 수행했을 시에도 도구 적용 이전보다 검증 비용을 절감할 수 있었음을 보였다.

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

  • 윤창변;차영헌;정창모
    • 한국국방경영분석학회지
    • /
    • 제14권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

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

  • 윤창변;차영헌;정창모
    • 한국국방경영분석학회지
    • /
    • 제13권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)

  • 고훈준
    • 한국콘텐츠학회논문지
    • /
    • 제6권10호
    • /
    • pp.114-125
    • /
    • 2006
  • 이전 논문은 자바 프로그램에서 논리적인 오류를 찾기 위한 기술로 HDT를 제안했었다. HDT는 알고리즈믹 프로그램 디버깅 기술을 이용하여 실행트리에서 오류를 포함하고 있는 메소드를 찾고, 단계적 프로그램 디버깅 기술을 이용하여 오류를 포함하고 있는 메소드에서 오류가 있는 문장을 찾아낸다. 이 기술은 전통적인 디버깅 기술보다 자바 프로그램에서 프로그래머가 디버깅하는 횟수를 줄였다. 그러나 최근에는 프로그램 크기가 증가하고 메소드의 수가 증가하고 있기 때문에 아직까지 HDT는 디버깅하는 횟수가 많다. 이 논문은 HDT에 프로그램 분할 기술을 적용하는 HDTS를 제안한다. 이 방법은 자바 프로그램을 디버깅할 때, HDT보다 프로그래머가 디버깅하는 횟수를 줄여 줄 수 있다. 특히, HDTS는 메소드와 문장의 수가 증가할수록 효율성이 증가한다.

  • PDF

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

  • 양해술;이하용
    • 한국정보처리학회논문지
    • /
    • 제4권4호
    • /
    • pp.982-992
    • /
    • 1997
  • 소프트웨어 개발비용의 대부분이 생명주기 중에서도 특히 테스트 공정에 소비된다. 일반적으로 디버깅을 위해 자주 사용되는 기법으로서 백트랙(backtrack) 기법과 프로 그램 슬라이스 기법이 있으나 디버거에 대한 풍부한 경험이 요구되거나 대규모 프로그램 에 대해서는 적용하기 곤란하다. 본 논문에서는 표준적으로 사용되고 있는 설계문서의 정보를 이용하고 벡트랙기법과 프로그램 슬라이스 기법을 조합시킨 새로운 오류 위치의 결정 방법을 제안하였다. 디버깅 기법을 제안하기 위해 몇 가지 기본개념과 대상으로 하는 오류, 표준적인 설계문서 및 제안하는 오류 위치의 결정방법에 대해서 기술하였다. 그리고 오류가 포함한 프로그램의 예를 이용하여 제안한 방법의 절차를 설명하였으며 끝으로 제안방법과 일반 슬라이스 기법을 비교.분석하였다.

  • PDF

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

  • 박순형;박만곤
    • 한국정보처리학회논문지
    • /
    • 제5권9호
    • /
    • pp.2323-2333
    • /
    • 1998
  • 어떤 프로그램에서 오류가 발견되었을 때 프로그래머는 어떤 시험 사례(test-case)를 통해 프로그램을 분석한다. 이처럼 현재 입력 값에 영향을 끼치는 모든 명령문들에 관련된 동적 슬라이싱(dynamic slicing)과 이를 구현하는 기술은 실제 테스팅 및 디버깅 분야에서 매우 중요하다고 할 것이다. 본 논문에서는 이러한 동적 프로그램 슬라이스(dynamic program slices)를 산출하는 마킹 알고리즘을 제시하였고 이것을 프로그래밍한 뒤 예제 프로그램을 적용시켜 구현하였다. 구현 결과는 실행 이력에 대한 마킹 테이블(marking table), 동적 종속 그래프(Dynamic Dependence Graph) 그리고, 축소 동적 종속 그래프(Reduced Dynamic Dependence Graph)로 나타내었다. 그리고, 본 논문에서 제시한 효율적인 동적 슬라이스 생성을 위한 마킹 알고리즘과 동적 종속 그래프가 기존의 기법 보다 더 효율성이 높다는 것을 보였다.

  • PDF

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

  • 고훈준
    • 한국콘텐츠학회논문지
    • /
    • 제9권1호
    • /
    • pp.81-88
    • /
    • 2009
  • 기존 연구에서는 자바 프로그램에서 논리적인 오류를 찾기 위한 기술로 HDTS를 제안했었다. HDTS는 알고리즈믹 프로그램 디버깅 기술을 이용하여 실행트리에서 오류를 포함하고 있는 메소드를 찾고, 단계적 프로그램 디버깅 기술을 이용하여 오류를 포함하고 있는 메소드에서 오류가 있는 문장을 찾아낸다. 그리고 분할 기술을 이용하여 오류를 포함하고 있는 메소드 내의 문장 중에서 디버깅에 관련이 없는 문장과 실행트리에서 불필요한 노드를 제거하여 노드의 수를 줄임으로서 사용자가 디버깅하는 횟수를 최소화할 수 있는 프로그램 디버깅 기술이다. 본 논문은 자바 프로그램을 디버깅할 수 있는 HDTS 시스템을 구현하기 위한 설계를 한다. 먼저, 자바의 부분언어를 정의하고 자바 원시 코드를 번역할 수 있는 번역기와 실행할 수 있는 가상머신을 설계한다. 그리고 사용자가 디버깅하기 위한 사용자 그래픽 인터페이스를 설계한다.