이미 존재하는 기능의 조각인 컴포넌트를 조림함으로써 시스템의 개발 시간과 비용을 줄이고, 소프트웨어의 품질과 생산성을 향상시키고자 하는 컴포넌트 기반 개발 방법론이 새로운 재사용 기술로 나타나기 시작했다. 컴포넌트 기반 시스템은 컴포넌트의 조합으로 구성되기 때문에 개별 컴포넌트의 품질에 의해 영향을 받는다. 그러므로, 개발될 컴포넌트 시스템의 품질을 향상시키기 위해서는, 조림될 개별 컴포넌트의 품질에 대한 측정이 필요하다. 따라서, 본 논문에서는 컴포넌트 인터페이스와 내부의 클래스 또는 클래스들 사이의 관련성으로 컴포넌트 응집성을 측정하는 메트릭스를 제안한다. 이는 소프트웨어 개발 주기의 초기인 분석단계에 적용하여, 향후 개발될 컴포넌트의 기능적 응집 정도를 측정해 볼 수 있다. 컴포넌트의 기능 독립성을 예측 가능함으로써, 소프트웨어 개발에 대한 노력을 줄일 수 있으며 컴포넌트 재사용을 통한 시스템의 품질 향상을 가져올 수 있는 효과를 기대할 수 있다.
이미 존재하는 기능의 조각인 컴포넌트를 조림함으로써 시스템의 개발 시간과 비용을 줄이고, 소프트웨어의 품질과 생산성을 향상시키고자 하는 컴포넌트 기반 개발 방법론이 새로운 재사용 기술로 나타나기 시작했다. 컴포넌트 기반 시스템은 컴포넌트의 조합으로 구성되기 때문에 개별 컴포넌트의 품질에 의해 영향을 받는다. 그러므로, 개발될 컴포넌트 시스템의 품질을 향상시키기 위해서는, 조림될 개별 컴포넌트의 품질에 대한 측정이 필요하다. 따라서, 본 논문에서는 컴포넌트 인터페이스와 내부의 클래스 또는 클래스들 사이의 관련성으로 컴포넌트 응집성을 측정하는 메트릭스를 제안한다. 이는 소프트웨어 개발 주기의 초기인 분석단계에 적용하여, 향후 개발될 컴포넌트의 기능적 응집 정도를 측정해 볼 수 있다. 컴포넌트의 기능 독립성을 예측 가능함으로써, 소프트웨어 개발에 대한 노력을 줄일 수 있으며 컴포넌트 재사용을 통한 시스템의 품질 향상을 가져올 수 있는 효과를 기대할 수 있다.
The component-based development methodology becomes famous as the new technology for reuse. That technology can help us easily develop a complex and large system by composing reusable components in short period with high-quality and low-cost. The component-based system nay be developed by composing ...
The component-based development methodology becomes famous as the new technology for reuse. That technology can help us easily develop a complex and large system by composing reusable components in short period with high-quality and low-cost. The component-based system nay be developed by composing more than one component. So, the quality of component-based system is determined by individual component duality. Therefore, it is necessary to measure individual component quality for the improvement in quality of component-based system. Hence, in this paper, we propose new component metrics for measuring the cohesion as relationship between classes and interfaces or among classes. Those can be applied in the early stage of software development life cycle. So, we can measure the functional cohesion of component which will be developed. Predicting functional independence of a component, we expect to reduce the software developing cost & effort and improve software quality by reusing a component.
The component-based development methodology becomes famous as the new technology for reuse. That technology can help us easily develop a complex and large system by composing reusable components in short period with high-quality and low-cost. The component-based system nay be developed by composing more than one component. So, the quality of component-based system is determined by individual component duality. Therefore, it is necessary to measure individual component quality for the improvement in quality of component-based system. Hence, in this paper, we propose new component metrics for measuring the cohesion as relationship between classes and interfaces or among classes. Those can be applied in the early stage of software development life cycle. So, we can measure the functional cohesion of component which will be developed. Predicting functional independence of a component, we expect to reduce the software developing cost & effort and improve software quality by reusing a component.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
그러나, 컴포넌트는 하나 이상의 클래스와 인터페이스로 구성되므로, 객체지향 시스템에 적용되던 기존의 메트릭스를 그대로 컴포넌트 기반 시스템에 적용하는 것은 부적당하다. 그러므로, 기존의 클래스 수준의 객체지향 메트릭스와는 측정 단위가 다른 컴포넌트의 추가적인 정보를 고려한 컴포넌트 메트릭스를 제안하며, 이로써 컴포넌트의 기능적 응집성을 측정해 보고자 한다.
그러므로, 상호작용이이루어지는 컴포넌트 내 클래스들과 인터페이스와 같은 추가적인 정보를 고려한 새로운 컴포넌트 메트릭스가 필요하다. 따라서, 본 논문에서는 컴포넌트 메트릭스를 제안하여, 컴포넌트의 구성에 대한 기능적 응집성을 측정하고자 한다.
따라서, 본 논문에서는 컴포넌트의 기능적 응집성을 측정하기 위한 새로운 컴포넌트 메트릭스를 제안한다. 객체지향시스템에 적용되던 기존의 메트릭스는 클래스, 인스턴스 변수, 메소드, 상속성 등을 고려하여 클래스를 기반으로 측정하였다.
따라서, 본 논문에서는 컴포넌트의 응집성을 측정하기 위 한 새로운 컴포넌트 메트릭스를 제안하였다. 새로운 컴포넌 트 메트릭스는 클래스의 속성과 상호 작용하는 메소드의 연 관 정도인 클래스의 응집도를 컴포넌트로 확장하여 컴포넌 트의 응집성을 측정하였다.
제안 방법
Bieman와 Kang⑻은 LCOM[6]과 유사한 TCC(Tight Class Cohesion)와 LCC(Loose Class Cohesion)을 제안하였다. 두 메소드가 하나 이상의 공통 인스턴스 변수를 사용할 때는 직접적으로 연결되었다고 하고, 다른 간접적인 연결메소드에 의해 연결되었을 때는 간접적으로 연결되었다고 한다.
객체지향시스템에 적용되던 기존의 메트릭스는 클래스, 인스턴스 변수, 메소드, 상속성 등을 고려하여 클래스를 기반으로 측정하였다. 그러나, 컴포넌트는 하나 이상의 클래스와 인터페이스로 구성되므로, 객체지향 시스템에 적용되던 기존의 메트릭스를 그대로 컴포넌트 기반 시스템에 적용하는 것은 부적당하다.
따라서, 제안된 컴포넌트 메트릭스의 적합성을 Briand[16] 가 제안한 응집도 측정이 가져야만 하는 필요조건적 성질과 Weyuker의 성질 중 MerhaU기가 재정의한 응집도 관련 성질에 적용하여 평가해 본다.
측정하는 것이다[12-14]. 본 연구에서는 클래스의 속성과 이에 상호 작용하는 메소드의 연관 정도인 클래스의응집성을 컴포넌트로 확장하여 컴포넌트의 응집성이라 하겠다. 응집도란 모듈 구성 요소들이 얼마나 연관되어 있는지를 측정하는 소프트웨어의 속성이다.
본 장에서는 컴포넌트의 응집성을 측정하기 위해 컴포넌트 메트릭스를 제안한다. 컴포넌트의 응집성 측정은 임의의 한 컴포넌트에 대해, 인터페이스와 컴포넌트 내부의 클래스 사이의 연관 정도를 측정하는 인터페이스에 의한 응집도 RCP (the Ratio of Class-type Parameters to interface's parameters)와, 내부의 클래스가 속성으로 다른 클래스를 사용하는 정도에 의한 클래스에 의한 응집도 RG4(the Ratio of Class-type Attributes to class's attributes)의 두 가지로 측정한다.
따라서, 본 논문에서는 컴포넌트의 응집성을 측정하기 위 한 새로운 컴포넌트 메트릭스를 제안하였다. 새로운 컴포넌 트 메트릭스는 클래스의 속성과 상호 작용하는 메소드의 연 관 정도인 클래스의 응집도를 컴포넌트로 확장하여 컴포넌 트의 응집성을 측정하였다. 컴포넌트 응집도는 임의의 한 컴 포넌트에 대해, 인터페이스와 컴포넌트 내부의 클래스 사이 의 연관 정도를 측정하는 인터페이스에 의한 응집도와 내부 의 클래스가 속성으로 다른 클래스를 사용하는 정도에 의한 클래스에 의한 응집도의 두 가지로 측정한다.
메트릭스를 제안한다. 컴포넌트의 응집성 측정은 임의의 한 컴포넌트에 대해, 인터페이스와 컴포넌트 내부의 클래스 사이의 연관 정도를 측정하는 인터페이스에 의한 응집도 RCP (the Ratio of Class-type Parameters to interface's parameters)와, 내부의 클래스가 속성으로 다른 클래스를 사용하는 정도에 의한 클래스에 의한 응집도 RG4(the Ratio of Class-type Attributes to class's attributes)의 두 가지로 측정한다. 다시 말하면, 시스템의 임의의 한 컴포넌트 Co에 대해, 컴포넌트의 응집성 측정 MCo)는 RCP와 RCA 의 두 가지 요소에 의해 이루어진다.
성능/효과
첫째, 인터페이스에 의한컴포넌트의 응집도 RCP는 인터페이스 오퍼레이션의 전체매개변수의 수는 9개이고, MemberlD, ExternalReason 이 라는 클래스가 매개변수로 사용된 수는 5개이므로, 븡이 다. 둘째, 클래스에 의한 컴포넌트의 응집도 RG4는 컴포넌 트 내부 클래스들의 전체 속성의 수는 12개이고, 그중 다 른 클래스를 속성으로 사용하는 속성은 2개이므로, 음 이다.
따라서, 같은 인터페이스와 같은 클래스들로 구다. 둘째, 클래스에 의한 컴포넌트의 응집도 RG4는 컴포넌성되며, 또한 같은 관계를 이루며 구성되는 컴포넌트는 하트 내부 클래스들의 전체 속성의 수는 12개이고, 그중 다른 클래스를 속성으로 사용하는 속성은 2개이므로, 음 나 이상 존재할 수 없다. 그러므로, 서로 다른 두 컴포넌트로부터 계산된 측정값이 다르다는 사실은 쉽게 알 수 있으므로, 성질 7은 만족된다.
연관 관계가 있는지를 측정하게 된다. 따라서, 인터페이스가 컴포넌트 내부의 클래스와 얼마나 연관되는지의 응집성을 통해, 컴포넌트의 기능적 독립성을 확인할 수 있다. 속성과 연산으로 이루어지는 클래스는 속성으로 일반 데이터 타입의 변수나 클래스 타입의 변수로 다른 클래스를 사용할 수 있다.
객체지향에서는 재사용을 위해 상속성을 강조하기 때문에 이는 높을수록 좋으나, 지나친 결합도는 캡슐화와 정보 은닉을 해칠수 있으므로 피해야 한다. 메시지 전달을 통한 결합도는 메시지 전달이 많은 클래스간의 결합도가 높다는 것을 의미하고, 추상 데이터형을 통한 결합도는 클래스 내에서 정의된 추상 데이터형의 수로 정의하였는데, 이 값이 크다는 것은 다른 클래스의 정의에 연관된 자료 구조가 많다는 것을 의미한다.
제안된 메트릭스는 성질 1 에서 설명되었듯이, 0에서 1사이의 값으로 정규화 되었기 때문에, 측정값들 사이에 상대적 크기 비교로 이행적 성질을 만족하므로, 성질 6은 만족된다.
응집성을 측정해 보겠다. 첫째, 인터페이스에 의한컴포넌트의 응집도 RCP는 인터페이스 오퍼레이션의 전체매개변수의 수는 9개이고, MemberlD, ExternalReason 이 라는 클래스가 매개변수로 사용된 수는 5개이므로, 븡이 다. 둘째, 클래스에 의한 컴포넌트의 응집도 RG4는 컴포넌 트 내부 클래스들의 전체 속성의 수는 12개이고, 그중 다 른 클래스를 속성으로 사용하는 속성은 2개이므로, 음 이다.
후속연구
향후 연구과제로 충분한 사례 연구를 통한 메트릭스를 통한 실제적 유효성 검증이 요구된다.
참고문헌 (17)
C. W. Krueger, 'Software Reuse,' ACM Computing Surveys, Vol.24, No.2, pp.131-184, Jun., 1992
The Software Engineering Institute (SEI) in Carnegie Mellon University, 'Component-Based Software Development/COTS Integration,' URL:http://www.sei.cmu.edu/str/descriptions/cbsd_body.html
Clemens Szyperski, 'Component Software : Beyond Object-Oriented Programming,' ACM Press and Addison-Wesley, 1998
George T. Heineman, William T. Councill, 'Component-Based Software Engineering : Putting the Pieces Together,' Addison-wesley, 2001
Roger S. Pressman, 'Software Engineering, A Practitioner's Approach,' 4th ed., McGrawHill, 1998
Chidamber S. R., Kemerer C. F., A Metric Suit for Object Oriented Design, PP. 476-493, IEEE Transactions on Software Engineering, 20(6), 1994
J. Bieman, B. K. Kang, 'Cohesion and reuse in an object-oriented system,' Proceedings of ACM Symposium on Software Reusability (SSR'95), pp.259-262, Apr., 1995
R. Binder, 'Testing Object-Oriented Systems : A Status Report,' American Programmer, Vol.7, No.4, pp.22-29, Apr., 1994
채흥석, 권용래, 배두환, '객체지향 시스템의 클래스에 대한 응집도', 한국정보과학회논문지(B), 제26권 제9호, pp.1095-1105, 1999
M. H. Samadzadeh, S. J. Khan, 'Stability, Coupling, and Cohesion of Object-Oriented Software Systems,' Proceedings of the 22nd Annual ACM Computer Science Conference (CSC'94), pp.312-319, Mar., 1994
L. Briand, S. Morasca, V. R. Basili, 'Property-based Software Engineering Measurement,' IEEE Transactions on Software Engineering, Vol.22, No.1, pp.68-85, 1996
Bindu Mehra, 'A Critique of Cohesion Measures in the object-Oriented Paradigm,' Master thesis, department of computer science, Michigan Technological university, 1997
※ AI-Helper는 부적절한 답변을 할 수 있습니다.