Skip to main content
QUICK REVIEW

[논문 리뷰] A Static Program Slicing Approach for Output Stream Objects in JEE Applications

Anas Shatnawi, Hafedh Mili|arXiv (Cornell University)|2017. 01. 01.
Software Testing and Debugging Techniques참고 문헌 2인용 수 4
한 줄 요약

이 논문은 KDM 모델에서 유도된 종속성 호출 그래프를 구축하고, 전치 그래프에 대해 너비 우선 탐색을 적용하여 출력 스트림 객체에 影향을 미치는 모든 문장을 식별함으로써, 자바 EE(JEE) 애플리케이션에서 출력 스트림 객체를 위한 정적 프로그램 슬라이싱 방법을 제안한다. 이 방법은 JEE 서버 사이드 코드에 대해 정밀하고 언어에 종속되지 않는 분석을 가능하게 하여, 변경 영향 분석 및 디버깅과 같은 작업을 높은 정확도로 관련 프로그램 슬라이스를 고립시키는 데 기여한다.

ABSTRACT

In this paper, we propose a program slicing approach for the output stream object in JEE applications. Our approach is based on extracting a dependency call graph from KDM models of JEE applications. Then, it applies breath-first search algorithm to identify the program slice as a graph reachability problem. The proposed approach is implemented as an extension of our DeJEE tool.

연구 동기 및 목표

  • 서버 사이드 자바 코드와 클라이언트 사이드 웹 다이얼렉트를 혼합한 복잡한 JEE 애플리케이션에서 출력 스트림 객체에 대한 프로그램 슬라이스를 식별하는 데 도전 과제를 해결하기 위해.
  • JEE 환경에서의 중첩 스트림, 리플렉션, 다형성 및 구성 파일로 인해 기존 슬라이싱 기법에 한계가 존재하므로 이를 극복하기 위해.
  • KDM 모델 기반의 언어에 종속되지 않는 슬라이싱 방법을 개발하여 다중 언어 JEE 애플리케이션을 지원하기 위해.
  • 실제 소프트웨어 유지보수 및 분석에 활용 가능한 실천 가능성을 확보하기 위해 DeJEE 도구의 확장으로 이 방법을 구현하기 위해.

제안 방법

  • KDM 모델에서 유도된 종속성 호출 그래프 G = ⟨V, E⟩ 를 구축한다. 여기서 노드는 문장을 나타내며, 간선은 데이터 또는 제어 종속성을 나타낸다.
  • 데이터 종속성을 문장 간의 읽기-쓰기 관계로 모델링하며, 순차적 평가를 통해 실행 순서를 보장한다.
  • 제어 종속성을 조건문(예: if, for)과 내부 문장 간의 연결로 모델링하며, 메서드 프로토타입을 루트로 삼는다.
  • 종속성 호출 그래프의 모든 간선을 뒤집어 전치 그래프 GT 를 생성한다. 이를 통해 역방향 도달 가능성 분석이 가능해진다.
  • 출력 스트림 메서드 호출(예: out.print, out.write)에서 시작하여 전치 그래프 GT 에서 너비 우선 탐색(BFS) 알고리즘을 적용하여 도달 가능한 모든 노드를 식별한다.
  • 도달 가능한 노드 집합을 최종 프로그램 슬라이스로 추출한다. 이는 출력 스트림 값에 영향을 미치는 모든 문장을 나타낸다.

실험 결과

연구 질문

  • RQ1혼합 언어 코드와 컨테이너 종속성으로 인해 복잡한 JEE 애플리케이션에서 출력 스트림 객체에 대한 프로그램 슬라이싱을 효과적으로 적용할 수 있는가?
  • RQ2KDM 기반 모델링이 다중 언어 JEE 시스템에서 언어에 종속되지 않는 프로그램 슬라이싱을 얼마나 잘 지원할 수 있는가?
  • RQ3KDM 모델에서 유도된 종속성 호출 그래프가 JEE 환경에서 슬라이싱 목적의 데이터 및 제어 종속성을 정확히 포착할 수 있는가?
  • RQ4전치 그래프에서 BFS를 통한 그래프 도달 가능성 분석이 JEE 애플리케이션에서 최소 프로그램 슬라이스를 식별하는 데 얼마나 효과적인가?

주요 결과

  • 제안된 방법은 KDM 기반 프로그램 표현에서 종속성을 모델링하여 출력 스트림 객체에 영향을 주는 모든 문장을 성공적으로 식별한다.
  • KDM 모델의 사용은 언어 독립성을 보장하여, 이 슬라이싱 방법이 JEE 애플리케이션의 다수 언어에 적용 가능하게 한다.
  • 종속성 호출 그래프 구축 과정은 데이터 및 제어 종속성을 정확히 포착하여 슬라이싱의 견고한 기반을 마련한다.
  • 전치 그래프에서의 너비 우선 탐색은 도달 가능한 노드 집합을 효율적으로 계산하여 최소화되고 정밀한 프로그램 슬라이스를 도출한다.
  • DeJEE 도구의 확장으로 구현된 결과는 실제 JEE 애플리케이션 분석에 대한 실현 가능성과 실용성을 입증한다.
  • 이 방법은 정적 분석에서 중첩 스트림, 메서드 오버로딩, 다형적 디스패칭과 같은 복잡한 JEE 패턴을 효과적으로 처리할 수 있다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.