• 제목/요약/키워드: 프로그램 종속성 그래프

검색결과 21건 처리시간 0.027초

객체지향 프로그램 표현을 위한 객체지향 프로그램 종속성 그래프 (A Object-oriented Program Dependency Graph for Object-oriented Program Representation)

  • 류희열;박중양;박재흥
    • 한국정보처리학회논문지
    • /
    • 제5권10호
    • /
    • pp.2567-2574
    • /
    • 1998
  • 소프트웨어 공학 기법과 툴들은 제어 흐름 그래프, 프로그램 종속성 그래프, 시스템 종속성 그래프와 같은 프로그램의 그래픽한 표현에 의존한다. 본 논문은 기존의 객체지향 프로그램의 표현방법의 복잡하고 중복된 표현의 문제점을 개선하여 새로운 객체 지향 프로그램 종속성 그래프를 제안한다. 객체지향 프로그램 종속성 그래프는 클래스 종속성 그래프와 클래스 계층구조 그래프, 그리고 프로시듀어 종속성 그래프로 구성된다. 제안된 객체지향 프로그램 종속성 그래프는 기존의 방법에 비해 그 표현이 간결할 뿐만 아니라, 쉽게 확장이 가능하여 프로그램이 점진적으로 개발되는 경우에도 사용할 수 있다. 뿐만 아니라 프로그램에 대한 동적 정보를 제공할수 있도록 확장될 수 있다.

  • PDF

병행 자바 프로그램 슬라이싱을 위한 다중쓰레드 종속성 그래프의 개선에 대한 연구 (A Study on Enhancement of Multithreaded Dependence Graphs for Concurrent Java Program Slicing)

  • 류희열;김은정
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2002년도 추계학술발표논문집 (하)
    • /
    • pp.2055-2058
    • /
    • 2002
  • 병행 자바 프로그램의 슬라이싱 방법은 Jianjun Zhao에 의해 제안된 다중 쓰레드 종속성 그래프를 이용하여 Susan Horwitz, Thomas Reps, David Binkly가 제안한 2단계 마킹 알고리즘을 적용하여 슬라이스를 계산한다. 다중 쓰레드 종속성 그래프를 이용하는 방법은 쓰레드동기화 문장들 사이의 동기화 종속성과 서로 다른 쓰레드에 존재하는 공유객채들 사이의 통신 종속성 관계를 표현하여 병행 자바 프로그램의 슬라이스를 계산할 수 있는 것이다. 그러나 프로그램 종속성 그래프를 기반으로 하기 때문에 클래스 맴버 변수들에 대한 formal_in, formal_out, actual_in, actual_out정점들의 추가로 그래프의 복잡도가 증가하고 또한 부정확한 슬라이스 계산을 위한 다중 쓰레드 종속성 그래프를 개선하여 제안한다. 제안하는 개선된 다중 쓰레드 종속성 그래프는 주어진 슬라이싱 기준에 대한 2단계 마킹 알고리즘을 적용한 결과 정확한 슬라이스 계산과 복잡도 개선을 확인하였다.

  • PDF

객체지향 프로그램 슬라이싱을 위한 개선된 시스템 종속성 그래프에 대한 연구 (A study on the Enhanced System Dependence Graph for slicing of object-oriented Program)

  • 류희열;김은정
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2002년도 가을 학술발표논문집 Vol.29 No.2 (2)
    • /
    • pp.115-117
    • /
    • 2002
  • 객체지향 프로그램 슬라이싱을 위한 Loren D Larsen and Marry Jean Harrold가 제안하는 방법은 절차적 프로그램 슬라이싱을 위한 시스템 종속성 그래프 표현방법에 객체지향 패러다임을 표현할 수 있도록 확장하며 2단계 마킹 알고리즘을 적용하여 슬라이스를 계산한다. 시스템 종속성 그래프를 이용한 슬라이싱 방법은 클래스 멤버 변수와 전역변수 및 인스턴스 변수에 대하여 각 메소드 호출 및 진입정점에 actual_in, actual_out, formal_in, formal_out 정점들이 추가되어 복잡도가 증가한다. 본 논문에서는 이들 변수를 클래스 정점의 멤버간선으로 연결하여 각 메소드의 문장에서 사용하면 진출간선 정의하면 진입간선으로 연결하여 정점과 간선들의 개수를 최소화할 수 있도록 시스템 종속성 그래프를 개선하였다. 제안하는 시스템 종속성 그래프는 그래프 복잡도의 최소화와 2단계 알고리즘에 의한 정확한 슬라이스 계산이 장점이다. C++ 예제 프로그램을 적용하여 그래프 복잡도의 감소와 정확한 슬라이스 계산을 기존의 방법과 비교하여 개선됨을 확인하였다.

  • PDF

자바스크립트에 특화된 프로그램 종속성 그래프를 이용한 표절 탐지 (Plagiarism Detection Using Dependency Graph Analysis Specialized for JavaScript)

  • 김신형;한태숙
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제37권5호
    • /
    • pp.394-402
    • /
    • 2010
  • 자바스크립트는 현재 웹 사이트, 웹 어플리케이션에서 가장 많이 사용되는 스크립트 언어 중 하나이다. 자바스크립트로 작성된 프로그램은 원본 프로그램 형태로 클라이언트에게 전송되므로 무단 복제, 도용에 쉽게 노출된다. 때문에 자바스크립트 프로그램의 도용을 탐지하기 위한 연구가 필요하다. 현재 일반적으로 프로그램 표절 탐지를 위해 사용되는 자동화 도구들의 경우 고수준의 표절 기법에 적절히 대응하지 못한다. 반면에 프로그램 종속성 그래프에 기반을 둔 기존 연구들의 경우 자바스크립트의 동적인 특징을 적절히 반영하지 못한다. 또한 지나친 일반화로 인해 일부 틀린 판정(false positive)을 보이며 대상 프로그램의 크기가 클 경우 탐지 속도에 문제를 보이고 있다. 본 논문에서는 자바스크립트에 특화된 프로그램 종속성 그래프(이하 JS PDG)와 이를 사용한 도용 탐지 기법을 제안하여 이러한 문제를 해결하고자 한다. 본 논문에서 제안하는 JS PDG는 세분화된 노드 타입을 가지고 있어 기존 PDG와 비교해 보다 정확한 그래프 간 비교를 할 수 있도록 하며 포함하고 있는 노드 타입에 따라 정의되는 JS PDG의 타입은 탐색 범위를 분할을 가능하게 해 전체 도용 탐지 속도가 개선 될 수 있도록 한다. 실험 결과 기존 PDG에서 나타나는 틀린 판정을 확인할 수 있었으며 PDG간 비교 횟수가 줄어들어 도용 탐지 속도가 개선됨을 확인할 수 있었다.

그래프 중간표현 형태를 기반으로 한 병렬 프로그래밍 환경의 설계 및 구현 (A Design and Implementation of Parallel Programming Environment using Graph Type Intermediate Representation Form)

  • 이원용;박두순;송상주
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2001년도 가을 학술발표논문집 Vol.28 No.2 (3)
    • /
    • pp.850-852
    • /
    • 2001
  • 본 논문에서는 사용자의 병렬 프로그램 작성을 도와주는 병렬 프로그래밍 환경을 제공한다. 병렬 프로그램은 다양한 하드웨어의 특성에 따라 또는 프로그램의 특성에 따라 사용자가 병렬 프로그램을 작성하여야 하기 때문에 병렬프로그램을 작성하는 것이 매우 어렵다. 본 논문에서는 많은 병렬화 연구에서 제시되고 있는 그래프 중간 표현 형태를 그래프 사용자 인터페이스로 구현하였다. 이 병렬 환경에서는 프로그램 편집기능, 종속성 분석기능, 루프 변환기능, CFG, DPG, HTG등 중간 코드를 그래프 중간 표현 형태를 통해 보여 줌으로 최적의 병렬프로그래밍 환경을 제공한다.

  • PDF

객체지향 프로그램 정보 분석기 설계 및 구현 (Design and Implementation of an Information Analyzer for Object-Oriented Program)

  • 김운용;최영근
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 1999년도 가을 학술발표논문집 Vol.26 No.2 (1)
    • /
    • pp.490-492
    • /
    • 1999
  • 본 논문에서는 객체지향 프로그램에 대한 프로그램 정보를 분석하여 이들간의 관계를 표현할 수 있는 방법을 제시한다. 현재까지 프로그램을 분석하고 표현하기 위한 그래프 표현으로 호출 그래프, 제어흐름 그래프 및 종속 그래프 등이 있으며 이를 이용하여 테스팅, 슬라이싱, 디버깅, 프로그램 이해, 병렬처리, 역공학과 같은 다양한 분야에 적용되고 있다. 본 논문에서는 객체지향 언어의 프로그램의 시각적 이해를 돕고, 분석에 필요한 정보를 표현하는 그래프들간의 관계성을 고려한 효율적인 분석기를 표현한다. 이를 위해 클래스, 상속관계, 호출관계, 제어흐름 및 데이터 종속관계를 고려하여 객체 지향언어 분석에 필요한 그래프 요소를 멤버함수레벨, 클래스 레벨, 모듈 클래스 레벨 단위로 추출하고 이들간의 정보를 저장소로 통합 구성한다. 이를 통해 기존의 특정목적을 위해 표현하는 그래프 표현 방식은 그래프간의 관계성과 분석정보의 독립성 그리고 재사용성의 특징을 가지는 통합 분석기로 구성될 수 있다. 이러한 특징은 프로그램의 이해와 정보의 관리효과를 증가시킬 수 있으며, 많은 소프트웨어 엔지니어링 도구와 기술들에 필요한 통합화된 정보를 제공하고 이용될 수 있을 것이다.

  • PDF

객체지향 프로그램 슬라이싱에 관한 연구 (A Study on the Object-Orient Program Slicing)

  • 방극인;박영옥;이준
    • 한국정보통신학회:학술대회논문집
    • /
    • 한국해양정보통신학회 2002년도 춘계종합학술대회
    • /
    • pp.461-465
    • /
    • 2002
  • 일반적인 소프트웨어 시스템은 새로운 요구와 오류의 발견으로 인해 계속적인 개발과 확장 수정이 요구되며, 어떤 프로그램에 특정 명령문의 변수에 대한 관련 명령문을 찾고 싶을 때 프로그래머는 입력자료의 값에 대해 프로그램의 실행 궤도 추적을 통해 프로그램을 분석한다. 그러므로 본 논문은 기존의 프로그램 슬라이싱 방법에 객체지향 프로그램 슬라이싱을 적용하여 프로그램의 실행 궤도를 통하여 객체지향 그래프와 슬라이싱의 알고리즘을 보인다. 객체지향 프로그램 종속성 그래프는 클래스 종속성 그래프와 클래스 계층구조 그래프로 구성된다. 여기에 제안된 알고리즘은 쉽게 확장이 가능하며 프로그램이 점진적으로 개발되는 경우에 유리하게 사용될 수 있다.

  • PDF

종속성 그래프 기반 클래스 테스팅 (The class testing based on a dependence graph)

  • 임동주;배상현
    • 인터넷정보학회논문지
    • /
    • 제1권1호
    • /
    • pp.105-113
    • /
    • 2000
  • 절차적 프로그램의 표현방법은 클래스, 객체, 계승, 동적 바인딩 등으로 이루어진 객체지향 프로그램 표현에 그대로 적용될 수 없다. 더군다나 기존의 프로그램 종속성은 변수간이 아니라 문장간의 종속성을 나타내고 있다. 즉, 주어진 변수에 어떠한 변수들이 영향을 미치고 있는가 하는 문제를 해결할 수 없다. 따라서 본 연구는 객체지향 프로그램에서 변수간의 종속성을 포함한 구현 수준의 정보를 나타내는 메소드 종속성 모델을 제시하고자 한다. 또한 객체지향 프로그램의 테스트 적합성 기준에 근거한 구현기반 클래스 테스팅 방법을 제안한다. 데이터 멤버간 종속성과 테스트 데이터 적합성에 대한 공리들을 고려하여 흐름 그래프 기반 테스팅 기준을 만족시키는 테스트 케이스인 메소드의 시퀀스를 생성시킨다. 파생 클래스 테스팅을 위해서 유산관계와 실험을 통해 테스트 비용 절감을 검증한 부모 클래스에 대한 테스팅 정보의 재사용성을 고려한다.

  • PDF

C#프로그램의 정적 분할에서의 모호성 해결 (solution of ambiguity in Static Slicing of C# Programs)

  • 강성관;고훈준;김기태;조선문;유원희
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2004년도 가을 학술발표논문집 Vol.31 No.2 (1)
    • /
    • pp.757-759
    • /
    • 2004
  • C# 언어로 작성된 프로그램을 정적으로 분할할 때 기존의 객체 지향 프로그램에 이용하던 방법을 일반적으로 적용할 수 있다. 그러나 기존의 두 경로 그래프 도달 가능성 분할 알고리즘을 적용하였을 때 프로시져들 간의 전지적인 종속 관계를 표현하는 요약 간선만을 이용하면 두 번째 경로에서 역추적 할 때 모호성이 발생한다. 이러한 모호성 C#의 이벤트, 델리게이트(delegate)들과 메소드의 다형적 호출 관계에서 발생될 수 있다. 본 논문은 호출된 프로시져의 호출하는 문맥을 설명하기 위하여 호출 지점에서 요약간선 및 경로 간선을 이용하여 C#에서 다형적 호출에 대한 시스템 종속성 그래프(system dependence graph)에 대한 새로운 표현을 제안한다. 이 방법은 다형적 호출에서 발생하는 모호성을 해결할 수 있다.

  • PDF

C# 프로그램의 정적 분할 (Static Slicing of C# Programs)

  • 강성관;고훈준;김기태;조선문;유원희
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2004년도 춘계학술발표대회
    • /
    • pp.925-928
    • /
    • 2004
  • C# 언어로 작성된 프로그램에서 기존의 객체 지향 프로그램에서 이용하던 정적 분할 방법을 적용한다. 기존의 두 경로 그래프 도달 가능성 분할 알고리즘을 적용하였을 때 프로시져들 간의 전이적인 종속 관계를 표현하는 요약 간선만을 이용하면 두 번째 경로에서 역 추적 할 때 모호성이 발생한다. 이러한 모호성은 C#의 이벤트, 델리게이트(delegate)들과 메소드의 다형적 호출 관계에서 발생될 수 있다. 본 논문은 호출된 프로시져의 호출하는 문맥을 설명하기 위하여 호출 지점에서 요약 간선 및 경로 간선을 이용하여 C#에서 다형적 호출에 대한 시스템 종속성 그래프(system dependence graph)에 대한 새로운 표현을 제안한다. 이 방법은 다형적 호출에서 발생하는 모호성을 해결할 수 있다.

  • PDF