Visualization Techniques for Massive Source Code

대용량 소스코드 시각화기법 연구

  • Received : 2015.06.03
  • Accepted : 2015.06.16
  • Published : 2015.07.29

Abstract

Program source code is a set of complex syntactic information which are expressed in text forms, and contains complex logical structures. Structural and logical complexity inside source code become barriers in applying visualization techniques shown in traditional big-data approaches when the volume of source code become over ten-thousand lines of code. This paper suggests a procedure for making visualization of structural characteristics in source code. For this purpose, this paper defines internal data structures as well as inter-procedural relationships among functions. The paper also suggests a means of outlining the structural characteristics of source code by visualizing the source codes with network forms The result of the research work can be used as a means of controling and understanding the massive volume of source code.

프로그램 소스코드는 텍스트를 기반으로 하는 정보이며 동시에 논리 구조를 포함하고 있는 복잡한 구문의 집합체이다. 특히 소스코드의 규모가 수만 라인에 이르는 경우 구조적, 논리적인 복잡함으로 인해 기존의 빅데이터 시각화 기법이 잘 적용되기 힘들다는 문제가 발생한다. 본 논문은 소스코드가 갖는 구조적인 특징을 시각화하는데 있어 필요한 절차를 제안한다. 이를 위해 본 논문은 파싱 과정을 거쳐 생성된 추상구문트리를 대상으로 프로그램의 구조특징을 표현하기 위한 자료형의 정의, 함수간 호출관계를 표현한다. 이들 정보를 바탕으로 제어 정보를 네트워크 형태로 시각화함으로써 모듈의 구조적인 특징을 개괄적으로 살펴볼 수 있는 방법을 제시한다. 본 연구의 결과는 대규모 소프트웨어의 구조적 특징을 이해하거나 변경을 관리하는 효과적인 수단으로 활용할 수 있다.

Keywords

References

  1. 이진형(2012). 데이터 빅뱅, 빅 데이터(BIG DATA)의 동향. 방송통신전파저널 (47). 43-55
  2. 한국정보화진흥원(2013). 새로운 미래를 여는 빅데이터 시대. 한국정보화진흥원 빅데이타 연구센터
  3. 신화숙, 임정묵, 박준석(2013). 정보 시각화 기술과 시각장애인을 위한 정보표현 기술. 전자통신동향분석. 한국전자통신연구원. 28(1). 81-91 https://doi.org/10.22648/ETRI.2013.J.280109
  4. Servant, F, Jones, J.(2013). Chronos: Visualizing Slice of Source Code History. IEEE Working Conference on Software Visualization (VISSOFT 2013). 1-4
  5. Kastner C. et al (2008) Visualizing Software Product Line Variability in Source Code. Proc. SPLC Workshop on Visualization in Software Product Line Engineering, 303- 313
  6. Briand, C. et al(2006). Toward the Reverse Engineering of UML Sequence Diagrams for Distributed Java Software. IEEE Trans on Software Engineering 32(9). 642-663 https://doi.org/10.1109/TSE.2006.96
  7. Milanova, A, Rountev A, Ryder B(2004), Precise and Efficient Call Graph Construction for C programs with Function Pointers. Automated Software Engineering 11(1), 7-26 https://doi.org/10.1023/B:AUSE.0000008666.56394.a1
  8. Chen, F et al,(2015), Discovering and Visualizing Operations Processes with POD-Discovery and POD-Viz. International Conference on Dependable Systems and Networks (DSN), Rio de Janeiro
  9. Ware, C(2013), Information Visualization: Perception for Design. Morgan Kaufmann Press
  10. Kim, H., Park, J, Seo D (2014), Readability Visualization for Massive Text Data, International Journal of Multimedia and Ubiquitous Engineering. 9(9). 241-248 https://doi.org/10.14257/ijmue.2014.9.9.25
  11. Silic A.(2010), Basic Visualization of Text Streams: A Survey. 14th International Conference, KES, Cardiff, UK,
  12. Chess, B., West, J.(2007), Secure Programming with Static Analysis, Addison Wesley
  13. Khedker, U., Sanyal, A., Karkare, B.(2009) Data Flow Analysis: Theory and Practice. CRC Press
  14. Bastian, M., Heymann, S., Jacomy, M.(2009) Gephi: An Open Source Software for Exploring and Manipulation Networks. ICWSM, (8) 361-362
  15. Ball, T, Eick, S.(1996). Software Visualization in the Large. Computer, 29(4) 33-43 https://doi.org/10.1109/2.488299