A Software Complexity Measurement Technique for Object-Oriented Reverse Engineering

객체지향 역공학을 위한 소프트웨어 복잡도 측정 기법

  • Kim Jongwan (Department of Computer Science and Engineering, Korea University) ;
  • Hwang Chong-Sun (Graduate School of Computer Science and Technology at Korea University)
  • Published : 2005.09.01

Abstract

Over the last decade, numerous complexity measurement techniques for Object-Oriented (OO) software system have been proposed for managing the effects of OO codes. These techniques may be based on source code analysis such as WMC (Weighted Methods per Class) and LCOM (Lack of Cohesion in Methods). The techniques are limited to count the number of functions (C++). However. we suggested a new weighted method that checks the number of parameters, the return value and its data type. Then we addressed an effective complexity measurement technique based on the weight of class interfaces to provide guidelines for measuring the class complexity of OO codes in reverse engineering. The results of this research show that the proposed complexity measurement technique ECC(Enhanced Class Complexity) is consistent and accurate in C++ environment.

지난 10여년간 객체지향 코드의 관리 및 분석을 위해 객체지향 소프트웨어 시스템에 대한 다양한 복잡도 계산 기법들이 제안되었다. 이러한 기법들은 WMC(Weighted Methods per Class), LCOM(Lack of Cohesion in Methods)과 같이 소스코드 분석을 기반으로 한다. 기존 기법들의 한계는 코드에서 함수의 개수만 계산한다는 것이다. 본 논문에서는 함수의 파라메타 개수, 반환값 여부 그리고 자료형까지도 확인하는 새로운 가중치 기법을 제안하며, 이를 역공학에 적용한다. 또한 역공학과정에서 객체지향 코드를 위한 클래스 복잡도 계산 지침을 제공하기 위해 인터페이스에 가중치를 부여하는 효율적인 복잡도 측정 기법을 제안한다. 제안기법인 ECC(Enhanced Class Complexity)는 C++ 환경에서 일관성 있고 정확한 결과를 보여준다.

Keywords

References

  1. Jean-Marc DeBaud, Bijith Moopen, Spencer Rugaber, Domain Analysis and Reverse Engineering, pp. 326-335, IEEE, 1994 https://doi.org/10.1109/ICSM.1994.336762
  2. Jianqiang Zhuo, Paul Oman, Ramkumar Pichai, Sujay Sahni, Using Relative Complexity to Allocate Resources in Gray-Box Testing of Object-Oriented Code, pp. 74-81, IEEE METRICS, 1997 https://doi.org/10.1109/METRIC.1997.637167
  3. N. V. Balasubramanian, Object-oriented Metrics, pp. 30-34, in Proc. Int. Asia-Pacific Conf. Software Engineering, 1996
  4. Chidamber S. R, Kemerer C. F., Towards a Metrics Suit for Object Oriented Design, pp. 197-211, OOPSLA, 1991 https://doi.org/10.1145/117954.117970
  5. Warren Harrison, Using Software Metrics to Allocate Testing Resources, pp. 93-105, Journal of Management Information Systems, Vol. 4, No. 4, 1988 https://doi.org/10.1080/07421222.1988.11517810
  6. John C. Munson and Taghi M. Khoshgoftaar, Applications of Relative Complexity Metric for Software Project Management, pp. 283-291, J. Syst. Software, Vol. 12, No. 3, 1990 https://doi.org/10.1016/0164-1212(90)90051-M
  7. Chidamber S. R., Kemerer C. F., A Metric Suit for Object Oriented Design, PP. 476-493, IEEE Transactions on Software Engineering, 20(6), 1994 https://doi.org/10.1109/32.295895
  8. Tom Mens, Michele Lanza, A graph-based metamodel for object-oriented software metrics, Electronic Notes in Theoretical Computer Science 72 No. 2, 2002
  9. D. von Winterfeldt and W. Edwards. Decision Analysis and Behavioral Research, Cambridge University Press, Cambridge, 1986