DOI QR코드

DOI QR Code

Development of Analysis and Visualization Tool for Java Source Code Changes using Reverse Engineering Technique

역공학을 이용한 자바 소스 코드의 변화량 분석 및 시각화 도구 개발

  • 권진욱 (LG전자 P1실 프레임워크) ;
  • 최윤자 (경북대학교 IT대학 컴퓨터학부) ;
  • 이우진 (경북대학교 IT대학 컴퓨터학부)
  • Received : 2011.08.05
  • Accepted : 2011.11.02
  • Published : 2012.02.29

Abstract

In order to quickly understand which changes of source codes have been made and to perform effective maintenance of a system, it is important to visualize the changed parts. Although there are many works for analyzing software changes, there are few works for visualizing both of the change types and change quantifications for Java based systems. In this paper, we propose a change analysis technique based on class diagram and provide a change visualization technique by using change quantification information. In order to check the structural changes in source codes, source codes are transformed to class diagrams by reverse engineering methods. On the class diagrams, the changes are analyzed and quantified by numbers. Based on the change quantification, the changes are visualized on the class diagram by color spectrum. By using visualization techniques, maintainers can easily recognize the code changes to reduce the cost and time of maintenance.

소프트웨어 시스템을 효율적으로 유지보수 및 관리하기 위해서는 변경 전후의 시스템의 변경사항을 쉽게 파악할 수 있도록 시각적으로 표현해주는 것이 중요하다. 소프트웨어 변경사항 분석에 대한 연구는 많이 진행되어 왔으나 변경 유형뿐만 아니라 변경 정도를 정량화하고 이를 시각화하여 나타내려는 연구는 많지 않다. 이 연구에서는 자바로 구현된 시스템에 대해 클래스 다이어그램에서의 변경사항 분석 및 정량화 방법과 이를 시각적으로 나타내는 방법에 대해 제시한다. 먼저 소스 코드의 구조적인 변화를 검사하기 위해, 역공학을 이용하여 클래스 다이어그램을 추출한다. 그리고 클래스 다이어그램 정보를 이용하여 변경 유형 및 변경량을 정량화한 다음, 색상 스펙트럼을 이용하여 클래스 다이어그램에 변경량을 시각적으로 나타낸다. 이러한 시각화 기법을 이용하면, 유지보수 관리자가 쉽게 변경된 부분을 파악할 수 있어 유지보수에 소요되는 시간과 노력을 조금이라도 줄일 수 있다.

Keywords

References

  1. Ian Sommerville, Software Engineering, 9th Edition, Pearson, 2011.
  2. Beat Fluri, Michael Wursch, Martin Pinzger, Harald C. Gall, "Change Distilling: Tree Differencing for Fine-Grained Source Code Change Extraction," IEEE Transactions on Software Engineering, Vol.33, No.11, Nov., 2007
  3. Masatomo Hashumoto, Akira Mori, "Diff/TS: A Tool for Fine-Grained Structural Change Analysis," Proceedings of the 15th Working Conference on Reverse Engineering, 2008.
  4. Jonathan I. Maletic, Michael L. Collard, "Supporting Source Code Difference Analysis," Proceedings of the 20th IEEE International Conference on Software Maintenance, 2004.
  5. Jingwei Wu, Claus W. Spitzer, Ahmed E. Hassan, and Richard C. Holt, "Evolution Spectrographs: Visualizing Punctuated Change in Software Evolution," Proceedings of the 7th International Workshop on Principles of Software Evolution, 2004.
  6. Dirk Beyer, Ahmed E. Hassan, "Animated Visualization of Software History using Evolution Storyboards," Proceedings of the 13th Working Conference on Reverse Engineering, 2006.
  7. Tom Arbuckle, "Visually Summarising Software Change," Proceedings of the 12th International Conference on Information Visualization, 2008.
  8. Daniel M German, Gregorio Robles, and Ahmed E. Hassan, "Change Impact Graphs: Determining the Impact of Prior Code Changes," Proceedings on 8th IEEE International Working Conference on Source Code Analysis and Manipulation, 2008.
  9. Jochen Seemann, Jurgen Wolff von Gudenberg, "Visualization of Differences between Versions of Object-Oriented Software," Proceedings of the Second Euromicro Conference on Software Maintenace and Reengineering, 1998.
  10. V. I .Levenshtein, "Binary codes capable of correcting deletions, insertions and reversals," Soviet Physics-Doklady, Vol.SE-10, No.8, pp.707-710, February, 1966.
  11. Eclipse, Graphical Modeling Framework(GMF), http://www. eclipse.org/modeling/gmf/
  12. Eclipse, Eclipse Modeling Framework(EMF), http://www.eclipse.org/modeling/emf/
  13. Eclipse, Graphical Editing Framework(GEF), http://www. eclipse.org/gef/
  14. 박인수, 이정선, 조성래, 정우영, 이우진, "AUTOSAR 기반 차량용 소프트웨어 컴포넌트 모델링 도구", 정보처리학회논문지A, 제17-A권, 제4호, pp. 203-212, 2010년 8월.