• 제목/요약/키워드: 동적 프로그램 슬라이싱

검색결과 14건 처리시간 0.02초

요약 해석을 이용한 프로그램 슬라이싱 (Program Slicing using Abstract Interpretation)

  • 정인상;창병모
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제28권8호
    • /
    • pp.551-559
    • /
    • 2001
  • 정적 슬라이싱과 동적 슬라이싱의 차이는 동적 슬라이싱은 프로그램에 주어진 입력을 가정하는 반면에 정정 슬라이싱은 입력에 대한 가정을 하지 않는다는 점이다. 동적 슬라이싱은 실행-시간 정보를 이용할 수 있으므로 정적 슬라이싱보다 적은 슬라이스를 만들 수 있으나 특정 입력 상태에만 적용될 수 있다는 제한을 갖는다. 이 논문은 초기 상태들의 집합에 대해서 프로그래을 슬라이싱하는 요약 프로그램 슬라이싱이라는 새로운 기법을 제시한다. 이 방법은 프로그램으로부터 슬라이스를 구하는데 요약 해석을 이용한다. 요약 해석을 프로그램 실행 없이 프로그램의 실행-시간 동작에 대한 안전한 정보를 제공한다. 따라서 결과적으로 얻은 요약 슬라이스는 주어진 입력 상태들의 집합에 대해서 정적으로 계산되었다는 점에서 동적 슬라이스와는 다르다. 또한 요약 프로그램 슬라이싱은 배열과 같은 자료구조를 정적 슬라이싱보다 정확하게 다룰 수 있으며 슬라이스 크기도 줄일 수 있다.

  • PDF

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

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

  • PDF

다중 기준변수를 사용한 동적 프로그램 슬라이싱 알고리즘의 효율성 비교 (On the Efficiency Comparison of Dynamic Program Slicing Algorithm using Multiple Criteria Variables)

  • 박순형;박만곤
    • 한국정보처리학회논문지
    • /
    • 제6권9호
    • /
    • pp.2384-2392
    • /
    • 1999
  • 프로그램에서 요류가 발생되었을 때 프로그래머는 어떤 시험 사례(test case)를 통해 프로그램을 분석한다. 이처럼 현재 입력 값에 영향을 끼치는 모든 명령문들에 관련된 동적 슬라이싱(dynamic slicing)과 이를 구현하는 기술은 실제 테스팅 및 디버깅 분야에서 매우 중요하다고 할 것이다. 지금까지의 동적 슬라이싱은 슬라이싱 기준 변수가 1개 일 때의 경우에 대해서만 연구해 왔다. 그러나, 실제적인 테스팅 및 디버깅 분야에서는 슬라이싱 기준이 되는 변수가 2개 이상인 경우가 아주 많이 발생한다. 따라서 슬라이싱 기준 변수가 n 개 일 때 동적 프로그램 슬라이스(dynamic program slices)를 만드는 알고리즘을 제시하였고 프로그래밍 언어를 사용하여 동적 프로그램 슬라이싱 알고리즘을 프로그래밍한 뒤 예제 프로그램을 적용시켜 구현하였다. 구현 결과는 실행 이력에 대한 마킹 테이블(marking table)과 동적 종속 그래프로 나타내었다. 그리고, 본 논문에서 제시한 다중기준변수 동적 슬라이스 생성을 위한 마킹 알고리즘이 기존의 단일기준변수 기법보다 실제적인 테스팅 환경에서 더 우수함을 보였다.

  • PDF

동적 제어 정보를 이용한 효율적인 프로그램 슬라이싱 알고리즘 (An Efficient Program Slicing Algorithm using Dynamic Control Information)

  • 박순형;정은이;박만곤
    • 한국멀티미디어학회논문지
    • /
    • 제3권1호
    • /
    • pp.92-100
    • /
    • 2000
  • 일반적인 소프트웨어 시스템은 새로운 요구와 오류의 발견으로 인해 계속적인 개발과 확장 그리고 수정이 요구된다. 이러한 일련의 작업과정에서 기존 프로그램의 정확한 이해는 매우 필요하다. 어떤 프로그램의 특정 명령문에 있는 변수에 대한 관련 명령문을 찾고 싶을 때 프로그래머는 입력 자료의 값에 대해 프로그램의 실행궤도 추적을 통해 프로그램을 분석한다. 그러므로, 현재 입력 값에 영향을 끼치는 모든 명령문들에 관련된 동적 프로그램 슬라이싱(dynamic program slicing)과 이를 구현하는 기술의 개발은 매우 중요하다고 할 것이다. 그러나 전통적인 동적 슬라이싱 기법은 구현 초기에 프로그램 실행이력을 만들어야 하는 불편이 있었다. 본 논문에서는 실행이력 파일을 사용하지 않고 동적 제어 정보와 프로그램 슬라이싱 기법을 사용하여 효율적으로 프로그램 슬라이스를 산출하는 알고리즘을 제시하였고 이것을 프로그래밍한 뒤 예제 프로그램을 적용시켜 구현하였다. 그리고, 본 논문에서 제시한 슬라이스 생성기법이 기존의 기법보다 더 효율성이 높다는 것을 보였다.

  • PDF

효율적인 동적 시스템 종속 그래프 (Efficient Dynamic System Dependence Graph)

  • 박순형;박만곤
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2000년도 제13회 춘계학술대회 및 임시총회 학술발표 논문집
    • /
    • pp.729-734
    • /
    • 2000
  • 전통적인 기존의 슬라이싱 기법들은 종속 그래프를 통해 슬라이스를 산출하였고, 슬라이스의 정확성을 입증하였다. 그러나, 기존의 종속 그래프 기법은 정적 슬라이싱 기법을 바탕으로 하기 때문에 프로시져 간의 매개변수별 자료 전달 링크를 나타내기 위하여 많은 정점들과 간선들이 필요하다. 그래서 그래프가 매우 복잡하다. 본 논문에서는 어떤 작업을 처리하기 위해 관련된 여러 개의 프로그램으로 구성된 소프트웨어 시스템의 슬라이싱을 수행하기 위한 동적 시스템 종속 그래프의 표현법에 대해 제안하였다. 그리고, 본 논문에서 제안한 동적 시스템 종속 그래프 기법과 기존의 프로그램 종속 그래프 기법에 대한 복잡도 측정 공식을 제안하였으며, 동적 시스템 종속 그래프 기법이 기존의 기법에 비해 그래프의 복잡도가 작아 효율적임을 보였다.

  • PDF

개선된 동적 객체지향 종속 그래프 (Improved Dynamic Object-Oriented Dependence Graph)

  • 박순형;박만곤
    • 한국멀티미디어학회:학술대회논문집
    • /
    • 한국멀티미디어학회 2004년도 춘계학술발표대회논문집
    • /
    • pp.806-809
    • /
    • 2004
  • 동적 객체지향 프로그램 슬라이싱을 구현하기 위해서 프로그램 종속 그래프가 필요하다. 본 논문에서는 기존의 동적 객체지향 프로그램 종속 그래프 기법 보다 효율적인 동적 객체지향 프로그램 종속 그래프 기법을 제안하였다. 본 논문에서 제안한 기법이 기존에 비해 효율적임을 보이기 위해 그래프의 복잡도를 측정하여 비교하였다. 그리고 프로그램 슬라이스의 크기도 함께 측정하여 본 논문에서 제시한 기법이 효율적임을 증명하였다.

  • PDF

복잡한 자료 구조를 지니는 프로그램에 대한 슬라이싱 (Program Slicing in the Presence of Complicated Data Structure)

  • 류호연;강원임;박재홍
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 1999년도 가을 학술발표논문집 Vol.26 No.2 (1)
    • /
    • pp.557-559
    • /
    • 1999
  • 프로그램 슬라이싱은 프로그램의 특정 문장에서 변수에 영향을 주는 문장들을 분해하는 방법으로 디버깅, 최적화, 프로그램 유지보수, 테스팅, 재사용 부품 추출 그리고 프로그램 이해를 포함하는 여러 응용 분야들에서 그 유용성을 확인할 수 있다. 본 논문은 포인터 변수와 포인터 변수에 의해 참조되는 동적 객체, 구조체, 배열을 포함하는 프로그램에 대한 정확한 슬라이스 생성에 관한 연구이다. 포인터 변수와 같은 복잡한 구조를 가지는 프로그램에서 포인터 변수나 포인터 변수가 참조하는 객체의 상태를 파악하기 위해서 객체 참조상태 그래프를 제시한다.

  • PDF

동적 시스템 종속 그래프를 사용한 동적 슬라이싱 (Dynamic Slicing using Dynamic System Dependence Graph)

  • 박순형;박만곤
    • 한국멀티미디어학회논문지
    • /
    • 제5권3호
    • /
    • pp.331-341
    • /
    • 2002
  • 기존의 슬라이싱 기법들은 슬라이스를 생성하며 생성된 슬라이스의 정확성을 위해 종속 그래프를 사용한다. 그러나, 기존의 많은 슬라이싱 기법들은 동적 슬라이싱 기법에 바탕을 두고 데이터 통신 링크를 표현하기 때문에 많은 정점들(vertices)과 간선들(edges)을 필요로 한다. 그러므로 그 그래프는 매우 복잡하다. 어떤 프로그램 시스템에 대한 소프트웨 어 슬라이싱을 처리하기 위해 본 논문에서는 동적 시스템 종속그래프를 제안한다. 그리고, 소프트웨어 시스템의 동적 슬라이스를 산출하기 위해 관련 테이블들의 관계도를 이용한 효율적인 슬라이싱 알고리즘을 제안한다. 동적 슬라이스의 생성을 위한 동적시스템종속그래프는 제안된 알고리즘으로부터 얻어진 마킹테이블을 사용해서 얻어진다. 슬라이스의 최종 결과는 이 그래프를 추적함으로써 얻어진다. 결론적으로 제안된 동적시스템종속그래프 기법의 효율성을 기존의 종속그래프 기법과 비교하였다.

  • 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

클래스 계층구조 슬라이싱을 이용한 C++프로그램 최적화에 관한 연구 (A Study on the Optimization of C++ Program Using the Class Hierarchies Slicing)

  • 김운용;정계동;최영근
    • 한국정보처리학회논문지
    • /
    • 제6권6호
    • /
    • pp.1542-1555
    • /
    • 1999
  • 본 논문에서는 C++ 클래스 계층구조(상속관계를 가진 클래스들의 모음)를 대상으로 객체 지향 언어의 특성인 단일/다중 상속, 정적/동적 바인딩, 함수중복/함수재정의(Overloading & Overriding), 순수가상/가상함수, 생성자 문제를 고려하여 멤버데이터와 멤버함수를 최적화 할 수 있는 알고리즘을 제안한다. 프로그램 계층 구조와 그 계층 구조를 사용하는 프로그램은 일반적으로 클래스 계층 구조의 부분적인 기능만을 사용하기 때문에 많은 구성요소를 포함하는 클래스들에서 불필요한 기능을 제거하는 것이 필요하게 되었다. 지금까지 연구되어 왔던 고전적인 슬라이싱이나 다른 변형된 슬라이싱은 출력데이터를 선택하고 그와 관련된 프로그램 문장을 포함하는데 초점을 맞추고 있다. 그 대상은 대부분 구조적 프로그램 언어로 이루어졌으며 이러한 슬라이싱은 주로 오류 검출, 소프트웨어의 유지보수, 유연한 테스팅을 위한 주제로 연구가 되어 왔다. 본 논문에서는 그 대상 범위를 객체 지향 언어로 확장시키고, 분석단계에서 테이블 구성형태를 링크형태로 구성함으로써 보다 정보관리의 효율을 높일 수 있고, 이 테이블을 이용한 최적화 시스템 구현을 통해 필요한 알고리즘을 제시하였다. 이러한 과정을 통해 불필요한 멤버데이터, 멤버함수, 클래스 상속관계를 제거함으로 프로그램 코드의 간소화, 시스템 성능의 향상을 가져올 수 있다.

  • PDF