DOI QR코드

DOI QR Code

A Metrics-Based Approach to the Reorganization of Class Hierarchy Structures

클래스계층구조의 품질평가척도를 기반으로 하는 재구성기법

  • 황석형 (선문대학교 컴퓨터정보학부) ;
  • 양해술 (호서대학교 벤처전문대학원) ;
  • 황영섭 (선문대학교 컴퓨터정보학부)
  • Published : 2003.08.01

Abstract

Class hierarchies often constitute the backbone of object-oriented software. Their quality is therefore quite crucial. Building class hierarchies with good qualify is a very important and common tasks on the object oriented software development, but such hierarchies are not so easy to build. Moreover, the class hierarchy structure under construction is frequently restructured and refined until it becomes suitable for the requirement on the iterative and incremental development lifecycle. Therefore, there has been renewal of interest in all methodologies and tools to assist the object oriented developers in this task. In this paper, we define a set of quantitative metrics which provide a wav of capturing features of a rough estimation of complexity of class hierarchy structure. In addition to, we suggest a set of algorithms that transform a original class hierarchy structure into reorganized one based on the proposed metrics for class hierarchy structure. Furthermore, we also prove that each algorithm is "object-preserving". That is, we prove that the set of objects are never changed before and after applying the algorithm on a class hierarchy. The technique presented in this paper can be used as a guidelines of the construction, restructuring and refinement of class hierarchies. Moreover, the proposed set of algorithms based on metrics can be helpful for developers as an useful instrument for the object-oriented software development.velopment.

클래스계층구조는 객체지향 소프트웨어의 중심적인 구성요소가 되며, 따라서 이에대한 품질은 매우 중요하다. 좋은 품질을 갖춘 클래스계층 구조를 구축하는 것은 객체지향 소프트웨어 개발에 있어서 매우 중요한 작업이지만, 좋은 품질의 클래스계층구조를 구축하는 작업은 수월하지 않다. 더욱이, 반복 및 점증적인 소프트웨어 개발에 있어서, 요구사양에 적합하도록 개발중인 클래스계층구조를 재구성하거나 세련시키는 작업이 빈번히 발생한다. 따라서, 객체지향 개발자들이 이와같은 클래스계층구조의 재구성 작업을 수행할 경우에 도움이 될 수 있는 기법 및 도구들에 대한 관심이 증가하고 있다. 본 논문에서는, 클래스계층구조의 복잡도를 일정수준 측정가능한 몇가지 평가척도를 제안하고, 이러한 평가척도들을 바탕으로 클래스계층구조를 재구성하는 알고리즘들을 정의한다. 또한, 각 알고리즘들에 대하여, 알고리즘을 적용하기 전과 후의 각 클래스계층구조들로부터 생성할 수 있는 객체들의 집합이 변화하지 알고 보존됨을 증명하였다. 본 논문에서 제안하는 재구성기법은 클래스계층구조의 구축 및 재구성 등의 지침으로서 사용할 수 있으며, 이러한 평가척도들을 기반으로 하는 클래스계층구조의 재구성 알고리즘들은 객체지향 소프트웨어 개발시에 유용한 도구로서 개발자들에게 도움이 될 수 있다.

Keywords

References

  1. Paul L. Bergstein, 'Object Preserving Class Transformations,' SIGPLAN Notices, ACM Press, Vol.26, No.11, pp. 299-313, 1991 https://doi.org/10.1145/118014.117977
  2. 황석형, 양해술, 박정호, '객체지향 소프트웨어의 재구성을 위한 클래스계층구조의 평탄화', 정보처리학회논문지D, 제8-D권 제6호, 2001
  3. 황석형, 양해술, '클래스계층그래프의 문법표현에 관한 연구', 소프트웨어공학논문지, 제4권 제4호, 2001
  4. Lance Tokuda and Don Batory, 'Evolving object-oriented designs with Refactorings,' Journal of Automated Software Engineering, Vol.8, No.1, pp.89-120, 2001 https://doi.org/10.1023/A:1008715808855
  5. Karl Lieberherr and Ian Holland, Assuring Good Style for Object-Oriented Programs, IEEE Software, pp.38-48, Sep-tember, 1989 https://doi.org/10.1109/52.35588
  6. 황석형, 이용근, 양해술, '객체지향 프로그래밍에서의 Demeter 법칙의 정식화', 정보처리학회논문지, 제1권 제1호, pp. 63-72, 1994
  7. Shyam R. Chidamber and Chris F. Kemerer, 'A Metrics Suite for Object Oriented Design,' IEEE Transactions of Software Engineering, Vol.20, No.6, pp.476-493, 1994 https://doi.org/10.1109/32.295895
  8. Mark Lorenz and Jeff Kidd, 'Object-Oriented Software Metrics,' Prentice Hall, 1994
  9. E. Weyuker, 'Evaluating software complexity measures,' IEEE Transactions of Software Engineering, Vol.14, No.9, pp.1357-1365, 1988 https://doi.org/10.1109/32.6178
  10. Victor R. Basil, Lionel C. Briand and WalCelio L. Melo, 'A Validation of Object-Oriented Design Metrics as Quality Indicators,' IEEE Transactions of Software Engineering, Vol.22, No.10, pp.751-761, 1996 https://doi.org/10.1109/32.544352
  11. Tom Mens and Michele Lanza, 'A Graph-Based Metamo-del for Object-Oriented Metrics,' Electronic Notes in The-oretical Computer Science, Elsevier Science, Vol.72, No.2, 2002 https://doi.org/10.1016/S1571-0661(05)80529-8
  12. Ralf ReiBing, 'Towards a Model for Object-Oriented De-sign Measurement,' Proc. of 5th International ECOOP Workshop on Quantitative Approaches in Object-Oriented Software Engineering(QAOOSE 2001), 2001