DOI QR코드

DOI QR Code

Quality Visualization of Quality Metric Indicators based on Table Normalization of Static Code Building Information

정적 코드 내부 정보의 테이블 정규화를 통한 품질 메트릭 지표들의 가시화를 위한 추출 메커니즘

  • 박찬솔 (홍익대학교 소프트웨어융합학과) ;
  • 문소영 (홍익대학교 소프트웨어융합학과) ;
  • 김영철 (홍익대학교 소프트웨어융합학과)
  • Received : 2022.12.20
  • Accepted : 2023.02.28
  • Published : 2023.05.31

Abstract

The current software becomes the huge size of source codes. Therefore it is increasing the importance and necessity of static analysis for high-quality product. With static analysis of the code, it needs to identify the defect and complexity of the code. Through visualizing these problems, we make it guild for developers and stakeholders to understand these problems in the source codes. Our previous visualization research focused only on the process of storing information of the results of static analysis into the Database tables, querying the calculations for quality indicators (CK Metrics, Coupling, Number of function calls, Bad-smell), and then finally visualizing the extracted information. This approach has some limitations in that it takes a lot of time and space to analyze a code using information extracted from it through static analysis. That is since the tables are not normalized, it may occur to spend space and time when the tables(classes, functions, attributes, Etc.) are joined to extract information inside the code. To solve these problems, we propose a regularized design of the database tables, an extraction mechanism for quality metric indicators inside the code, and then a visualization with the extracted quality indicators on the code. Through this mechanism, we expect that the code visualization process will be optimized and that developers will be able to guide the modules that need refactoring. In the future, we will conduct learning of some parts of this process.

현대 소프트웨어의 규모는 커지고 있다. 이에 따라 고품질 코드를 위한 정적 분석의 중요성이 커지고 있다. 코드에 대한 정적 분석을 통해 결함과 복잡도를 식별하는 것이 필요하다. 이를 가시화하여 개발자 및 이해 관계자가 알기 쉽게 가이드도 필요하다. 기존 코드 가시화 연구들은 정적 분석의 코드 내부 정보들을 데이터베이스 테이블에 저장하여 및 품질 지표(CK Metrics, Coupling, Number of function calls, Bed smell)에 대한 계산을 질의어화 하고 추출된 정보를 가시화하는 과정을 구현하는 것에만 초점을 두었다. 이러한 연구들은 방대한 코드로부터 추출한 정보를 이용하여 코드를 분석할 때 많은 시간과 자원이 소모된다는 한계점이 있다. 또한 각 코드 내 정보 테이블들이 정규화되지 않았기 때문에 코드 내부의 정보(클래스, 함수, 속성 등)들에 대한 테이블 조인 연산 시 메모리 공간과 시간 소비가 발생할 수 있다. 이러한 문제들을 해결하기 위해, 데이터베이스 테이블의 정규화된 설계와 이를 통한 코드 내부의 품질 메트릭 지표에 대한 추출 및 가시화 메커니즘 제안한다. 이러한 메커니즘을 통해 코드 가시화 공정이 최적화되고, 개발자가 리팩토링해야 할 모듈을 가이드 할 수 있을 것으로 기대한다. 앞으로는 부분 학습도 시도할 예정이다.

Keywords

Acknowledgement

이 논문은 2022 년도 정부(교육부)의 재원으로 한국연구재단의 지원을 받아 수행된 연구임(No. 2021R1I1A3050407, No. 2021R1I1A1A01044060).

References

  1. J. H. Song and M. S. Ahn, "2021 SW Convergence Survey Results Report," Software Policy & Research Institute, 2022, report num.: 385001.
  2. M. H. Choi and I. S. Jeon, "2021 Software Industry Survey" Software Policy & Research Institute, 2022, report num.: 127005.
  3. C. S. Park, B. K. Jeon, and R. Y. C. Kim, "Effective code static analysis and visualization based on Normalization of internal code information," Proceedings of the Korea Information Processing Society Conference, Vol.29, No.2, pp.85-87, 2022.
  4. X. Rival and K. Yi, "Introduction to static analysis: An abstract interpretation perspective." Mit Press, 2020.
  5. E. J. Chikofsky and J. H. Cross, "Reverse engineering and design recovery: A taxonomy," IEEE Software, Vol.7, No.1, pp.13-17, 1990. https://doi.org/10.1109/52.43044
  6. K. H. Kang, K. S. Lee, Y. S. Kim, Y. B. Park, H. S. Son, and R. Y. C. Kim, "A study on code static analysis with open source-based tool chainization," KIISE Transactions on Computing Practices, Vol.21, No.2, pp.148-153, 2015. https://doi.org/10.5626/KTCP.2015.21.2.148
  7. S. J. Jung, J. H. Kim, W. Y. Lee, B. K. Park, H. S. Son, and R. Y. C. Kim, "Automatic UML design extraction with software visualization based on reverse engineering," International Journal of Advanced Smart Convergence, Vol.10, No.3, pp.89-96, 2021. https://doi.org/10.7236/IJASC.2021.10.3.89
  8. H. E. Kwon and R. Y. C. Kim, "Extracting use case design mechanisms via programming based on reverse engineering," International Journal of Applied Engineering Research, Vol.10, No.90, pp.503-505, 2015.
  9. B. K. Park, K. H. Kang, H. S. Son, B. K. Jeon, and R. Y. C. Kim, "Code visualization for performance improvement of java code for controlling smart traffic system in the smart city," Applied Sciences, Vol.10, No.8, 2020.
  10. C. S. Park et al., "Design validation practices on design extraction of solidity's smart contract code based on reverse engineering," Advanced and Applied Convergence Letters, Vol.17, pp.26-31, 2021.
  11. S. R. Chidamber and C. F. Kemerer, "A metrics suite for object oriented design," in IEEE Transactions on Software Engineering, Vol.20, No.6, pp.476-493, 1994. https://doi.org/10.1109/32.295895
  12. S. R. Chidamber and C. F. Kemerer, "Towards a metrics suite for object oriented design," SIGPLAN, Vol.26, No.11, pp.197-211, 1991. https://doi.org/10.1145/118014.117970
  13. W. Li and S. Henry, "Object-oriented metrics that predict maintainability," Journal of Systems and Software, Vol.23, No.2, pp.111-122, 1993. https://doi.org/10.1016/0164-1212(93)90077-B
  14. B. Henderson-Sellers, "Object-oriented metrics: Measures of complexity," Prentice-Hall, pp.142-147, 1996.