DOI QR코드

DOI QR Code

A Practical Study on Code Static Analysis through Open Source based Tool Chains

Open Source 기반 툴 체인화를 통한 코드 정적 분석 연구

  • 강건희 (홍익대학교 컴퓨터정보통신 SE.Lab) ;
  • 김영철 (홍익대학교 컴퓨터정보통신 SE.Lab) ;
  • 이근상 ((재)전북테크노파크) ;
  • 김영수 (NIPA 소프트웨어공학센터) ;
  • 박용범 (단국대학교 컴퓨터과학과) ;
  • 손현승 (홍익대학교 컴퓨터정보통신 SE.Lab)
  • Received : 2014.09.15
  • Accepted : 2014.11.19
  • Published : 2015.02.15

Abstract

In our domestic software industries, it is focused on such a high quality development/ testing process, maturity measurement, and so on. But the real industrial fields are still working on a code-centric development. Most of the existing legacy systems did not keep the design and highly increased the code complexity with more patching of the original codes. To solve this problem, we adopt a code visualization technique which is important to reduce the code complexity among modules. To do this, we suggest a tool chaining method based on the existing open source software tools, which extends NIPA's Software Visualization techniques applied to procedural languages. In addition, it should be refactored to fix bad couplings of the quality measurement indicators within the code visualization. As a result, we can apply reverse engineering to the legacy code, that is, from programming via model to architecture, and then make high quality software with this approach.

국내의 소프트웨어 산업계는 고품질 소프트웨어를 위해, 개발/테스트 프로세스, 성숙도 측정등에 초점을 두고 있다. 그러나 실제 중소기업의 산업현장에서는 코드중심으로 개발되고 있다. 그리고 대부분의 기존 레거시 시스템은 설계의 부재 그리고 코드 패칭으로 코드 내부의 복잡도가 매우 높은 현실이다. 이를 해결하고자, 코드의 가시화(visualization)를 적용하였다. 이 가시화는 모듈간의 복잡도를 줄이려는 목적을 가지고 있다. 이를 위해 기존 공개 도구로 툴 체인 구성 방법을 제안한다. 제안한 방법은 NIPA의 SW Visualization 기법을 적용 확장하였다. 또한 코드 가시화내의 품질지표 중에 결합도 요소 중의 나쁜 지표에 대한 리팩토링 시도이다. 결과적으로 레가시 코드에 대해 역 공학 기법(from programming via model to architecture)적용과 이를 통한 소프트웨어 고품질화이다.

Keywords

Acknowledgement

Supported by : 한국연구재단

References

  1. NIPA SW Engineering Center, SOFTWARE ENGINEERING WHITE BOOK : KOREA 2013, NIPA, 2013.
  2. SN group. Source Navigator User Guide [Online]. Available: http://sourcenav.sourceforge.net/
  3. GV team. GraphViz User's Guide [Online]. Available: http://www.graphviz.org/Documentation.php
  4. SQLite. About SQLite [Online]. Available: http://www.sqlite.org/about.html
  5. C. Collberg, S. Kobourov, J. Nagra, J. Pitts, K. Wampler, "A System for Graph-Based Visualization of the Evolution of Software," Proc. of The SoftVis '03 ACM symposium on Software visualization, pp. 77-86, 2003.
  6. M. Lanza, "The Evolution Matrix: Recovering Software Evolution using Software Visualization Techniques," Proc. of The IWPSE '01 4th International Workshop on Principles of Software Evolution, pp. 37-42, 2001.
  7. B. Bruegge, A .Dutoit, Object-Oriented Software Engineering Using UML, Patterns and Java Third Edition, 3rd Ed., Pearson, 2010.
  8. Geon-Hee Kang, Keun Sang Yi, Dong Ho Kim, Jun Sun Hwang, Young Soo Kim, Young B. Park, R. Young Chul Kim, "A Practical Study on Tool Chain for Code Static Analysis on Procedural Language," Proc. of The KIISE KCC2014, pp. 559-561, 2014. (in Korean)
  9. Roger S. Pressman, Software Engineering: A Practitioner's Approach, 7th Ed., Pressman, 2009.
  10. Hyun Seung Son, Woo Yeol Kim, Robert Young Chul Kim, "Semi-Automatic Software Development based on MDD for Heterogeneous Multi-Joint Robots," Proc. of The International Symposium on Control and Automation, pp. 93-98, 2008. (in China)
  11. Woo Yeol Kim, Hyun Seung Son, R. Young Chul Kim, C. R. Carlson, "MDD based CASE Tool for Modeling Heterogeneous Multi-Jointed Robots," Proc. of The IEEE Computer Society CSIE 2009, Vol. 7, pp. 775-779, 2009. (in USA)
  12. Hongik SELab, Hongik MDA based Embedded Software Development Methodology (HiMEM) [Online]. Available: http://selab.hongik.ac.kr
  13. Jae Soo Kim, embedded System For Small heterogeneous Moving Object based on Modeling & Simulation, Doctoral dissertation, Hongik University Graduate, 2009.