Exception-chain Analysis: Revealing Exception Handling Architecture in Java. Server Applications
www.research.rutgers.edu/~chenfu/research/icse07.pdf
This makes it very difficult for a programmer to locate the root cause of an observed problem, if hte knowledge of the error recovery behavior of the components and their interactions in the system is not available.
In this paper we propose a new compile-time analysis built on top of previous exception flow analysis. It combines exception flow links into chains of exception handling paths, and thus reveals complete exception propagation paths.
즉, 논문에서는 java환경에서 exception이 발생되었을 때 이것을 처리하는 위치가 어디인지를 추적할 수 있는 기능을 설명한다. 사실 기존의 연구가 이미 진행이 되고 있었다. 하지만 논문에서는 catch문에서 rethrow를 할 경우 추적이 안 된다는 것을 지적한다. 그리고 이를 추적할 수 있는 로직을 소개한다.
(로직의 내용을 정확하게 이해하지는 못하였다.)
논문에서는 다섯개의 application을 대상으로 적용을 시도한다. 그리고 Tomcat(java sevlet server)에 대한 내역을 보다 자세하게 분석하여 설명하였다.
Dynamic, Static 모두 적용이 가능하다는 것을 설명하고 각각의 제약사항도 설명한다.
그리고 execption 처리에 따른 의존관계가 동일한 모듈 내부에서 발생할 수도 있지만 각기 다른 component 간에도 발생할 수 있다는 것을 설명한다.
(Tomcat을 대상으로 적용하였을 때 exception에 따른 의존관계를 보면 exception을 발생시키는 모듈과 이를 처리해 주는 모듈이 많은 경우 각기 다르게 존재한다는 것을 확인할 수 있다.)
* 대다수 static, dynamic analysis 도구의 경우 event handling에 따른 dependency 관계를 쉽게 알 수 있도록 제공하는 기능은 아직 없는 듯 하다. (물론 유추는 가능할 것이다.) 때문에 java의 exception handling은 일종의 event handling방식으로 발생을 하기 때문에 기존의 도구로는 추적이 어려울 것으로 생각이 된다. 때문에 본 논문이 제기한 이슈는 의의가 클 것으로 생각이 된다.)
'Papers > Static&Dynamic Analysis' 카테고리의 다른 글
JProbe에 의한 Dynamic Analysis 활용 (0) | 2009.05.10 |
---|---|
Object Flow Analysis - Taking an Object-Centric View on Dynamic Analys (0) | 2009.05.03 |
Towards Employing Use-cases and Dynamic Analysis to Comprehend Mozilla (0) | 2009.05.01 |
Dynamic Analysis Techniques for the Reconstruction of Architectural ~ (0) | 2009.05.01 |
TestRT 적용사례 (0) | 2009.04.30 |