Coding Style Score Visualization Using Facial Expression

얼굴 표정을 이용한 코딩 스타일 점수 시각화

  • 지정훈 (부산대학교 컴퓨터공학과) ;
  • 이윤정 (부산대학교 컴퓨터공학과) ;
  • 우균 (부산대학교 컴퓨터공학과)
  • Received : 2009.11.18
  • Accepted : 2010.04.20
  • Published : 2010.07.15

Abstract

This paper presents an automated visualization system, called StyleVisualizer, which checks the coding style of source codes and visualizes the coding style score using facial expression. Our system represents some kinds of facial expressions according to the evaluated score of the code style: A smile face means that the source code follows coding standards correctly. To measure the effectiveness of the StyleVisualizer, some experiments have been conducted on two class students in an applied computer course. In the experiments, we have compared the error ratio for obeying the coding standards when the StyleVisualizer was used or not. According to the experimental results, the error ratio with the StyleVisualizer was reduced above 30% than that without it. We expect that our system can encourage the students to obey the coding standards by providing the feedback of the visualized faces corresponding to their programs, resulting in high readable programs.

본 논문에서는 소스코드의 코딩 스타일을 검사하고 코딩 스타일 점수를 얼굴 표정을 이용해 시각화하는 시스템인 StyleVisualizer 를 제안한다. StyleVisualizer 는 스타일 평가 점수에 따라 몇 가지 얼굴로 표현한다. 웃는 표정은 소스코드가 코딩 표준을 잘 준수했음을 의미한다. StyleVisualizer 의 효과를 알아보기 위해 두 분반의 실용 컴퓨터 교과목 수강생을 대상으로 실험을 진행하였다. 실험에서는 StyleVisualizer 를 사용한 분반과 사용하지 않은 분반에 대해 코딩 표준 준수에 대한 오류 비율을 비교했다. 실험결과, StyleVisualizer 를 사용한 경우 30% 이상 오류 비율이 감소하였다. 논문에서 제안하는 시스템은 학생들에게 자신들의 프로그램에 대한 시각화된 결과를 피드백해 줌으로써 코딩 표준을 준수하고 가독성이 높은 프로그램을 작성하는 능력을 기르는 데 도움을 줄 수 있을 것으로 기대된다.

Keywords

Acknowledgement

Grant : SaaS기반 이동형 개인맞춤 사무환경 구축 기술 개발

Supported by : 정보통신연구진흥원

References

  1. H. Cho, M. Hwang, "A Study on the C Source Code Restructuring for Effective Maintenance," Proc of the KIISE Korea Computer Congress 1996, vol.23, no.2, pp.1573-1576, 1996. (in Korean)
  2. T. Tenny, "Program Readability: Procedures Versus Comments," IEEE Transactins on Software Engineering, vol.14, no.9, pp.1271-1279, 1988. https://doi.org/10.1109/32.6171
  3. H. Sutter, A. Alexandresuc, "C++ Coding Standards: Rules and Guidelines for Writing Programs," Addison Wesley, 2004.
  4. R. Stallman, et al., "GNU Coding Standards," 2007.
  5. L. Hatton, "Language Subsetting in an Industrial Context: A Comparison of MISRA C 1998 and MISRA C 2004," Information Software Technology, vol.49, no.5, pp.475-482, 2007. https://doi.org/10.1016/j.infsof.2006.07.004
  6. X. Li and C. Prasad, "Effectively teaching coding standards in programming," In Proceedings of the 6th Conference on Information Technology Education, pp.239-244, 2005.
  7. L.W. Cannon, et al., "Recommend C Style and Coding Standards," AT&T Bell Labs, 1997.
  8. X. Fang, "Using a Coding Standard to Improve Program Quality," In Proceedings of the 2nd Asia-Pacific Conference on Quality Software (APAQS'01), pp.73-78, 2001.
  9. S. Cho, Y. Moon, C. Yoo, Y. Kim, O. Chang, "Object-Orented Design and C++ Programming Style Guidelines Offer Tool," Proc of the KIISE Korea Computer Congress, 1996, vol.23, no.2, pp.1445-1448, 1996. (in Korean)
  10. J. Hwang, "Design and Implementation of a C Coding Style Checker," Journal of KSCI, vol.13, no.2, pp.31-40, 2008.
  11. Y. Moon, C. Yoo, O. Chang, "Object-Orient Design and Programming Style Guidelines based on Congnitive Psychology Theories," Journal of KIISE(B), vol.25, no.3, pp.530-542, 1998.
  12. G. Greeno, "The Structure of Memory and the Process of Problem Solving," Contemporary Issues in Cognitive Psychology, pp.23-45, 1973.
  13. R. Mayer and B. Shnejderman, "Syntactic/Semantic Interactions in Programmer Behavior: Model and Experimental Result," International Journal of Computer and Information Sciences, vol.8, pp.213-238, 1979.
  14. Y. Moon, J. Kim, H. Cho, C. Yoo, Y. Kim, O. Chang, "A Reverse Engineering Visualization Tool for Increasing Understandability of C++ Programs," Journal of KIISE(C), vol.1, no.2, pp.160-171, 1995
  15. P.W. Oman, C.R. Cook, "A Taxonomy for programming style," Proceedings of the 1990 ACM Annual Conference Cooperation, pp.244-250, 1990.