• 제목/요약/키워드: 클래스 응집도

검색결과 33건 처리시간 0.052초

객체지향 패러다임에서 응집도 측정 (Measuring Cohesion in the Objec-oriented Paradigm)

  • 최완규
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2001년도 가을 학술발표논문집 Vol.28 No.2 (1)
    • /
    • pp.481-483
    • /
    • 2001
  • 클래스의 응집도를 측정하기 위한 여러 연구들이 제안되었지만, 이런 연구들은 데이터 상호작용에 의해 응집도를 측정하므로 메소들간에 데이터 상호작용이 없지만 객체의 또 다른 속성들을인 데이터들이 함께속하는 경우를 고려하지 못하고 있다. 따라서 본 연구에서는 데이터 상호작용이 없는 경우를 고려하고, 또한 클래스 내의 멤버들과 멤버들간의 연결을 모두 고려하여 응집도를 측정할 수 있는 새로운 응집도 척도를인 강 클래스 응집도(Strong Class Cohesion: SCC)와 약 클래스 응집도(Weak Class Cohesion: WCC)를 제안하였다. 또한 기존 척도들과의 비교평가를 통해서 WCC와 SCC가 향상된 측정을 제시함을 보여 주었다.

  • PDF

객체지향 패러다임에서 저해요인에 기반한 응집도 척도 (Cohesion Measure by the Decreasing Factors for an Object-Oriented Paradigm)

  • 김성애;최완규;이성주
    • 한국정보처리학회논문지
    • /
    • 제7권11호
    • /
    • pp.3372-3383
    • /
    • 2000
  • 객체지향 패러다임에서 응집도가 높은 클래스들은 단 하나의 데이터 요소만이 정의되고 모든 메소드(또는 연산)들이 그 데이터 요소 상에서 수행되거나, 메소드와 데이터 요소간에 최대연결이 이루어진 클래스이다. 따라서 데이터 요소의 증가와 최대연결을 저해하는 연산들은 클래스의 응집을 저해하는 주 요인들이다. 본 연구에서는 이러한 저해요인들에 근거하여, 응집도에 관한 우리의 직관과 더욱 일치하는 측정을 할 수 있는 새로운 클래스 응집도 척도인 CM(Cohesion Metric)을 제안하였다. 본 연구에서는 응집도를 저해하는 요인의 식별을 위해 참조 그래프(reference graph)를 이용하고, 참조 그래프의 분석을 기초로 하여 클래스의 응집도를 측정하였다. 또한 제한된 CM 측정값이 응집도 척도가 만족해하는 특성들을 만족함을 보였고, 기존 응집도 척도들과의 비교평가를 통해서 CM이 기존의 척도들보다 향상된 측정을 제시함을 보였다.

  • PDF

참조 그래프에 의한 클래스 응집도 척도 분석 (Analysis of Class Choeshion Measure by Reference Graph)

  • 김성애;최완규;이성주
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2000년도 추계학술발표논문집 (하)
    • /
    • pp.1385-1388
    • /
    • 2000
  • 본 연구에서는 클래스의 응집도를 측정하는 기존 척도들을 클래스의 참조 그래프에 근거하여 분석하였다. 기존의 척도들이 참조 그래프의 관점에서 어떠한 문제점들이 있는가를 분석하고, 기존 척도들의 분석에 근거하여 클래스 응집도를 측정하기 위해 응집도 척도가 고려해야할 사항들을 제시하였다.

  • PDF

객체지향 시스템의 클래스에 대한 응집도 (A Cohesion Metric for Classes in Object-Oriented Systems)

  • 채홍석;권용래;배두환
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제26권9호
    • /
    • pp.1095-1104
    • /
    • 1999
  • 객체지향 시스템의 개발은 클래스를 통해서 이루어진다. 즉, 문제 영역에 존재하는 중요한 대상 또는 개념을 클래스로 모델링하고, 이로부터 생성된 객체들 사이의 메시지 교환을 통해서 시스템은 구축된다. 또한, 클래스는 정보 은닉을 제공함으로써, 객체지향 시스템의 재사용성과 유지보수성에 상당한 기여를 한다. 그러나, 설계 단계에서 실세계의 대상을 부적절하게 모델링하거나, 또는 유지보수 단계에서 클래스에 무분별한 변경을 가하는 경우 클래스의 품질은 악화될 수 있고, 이는 결국 시스템을 유지보수 하거나 확장하는데 상당한 장애를 초래한다.응집도는 모듈의 구성 요소들 사이의 연관성 정도를 나타내는 척도로서 전통적으로 모듈의 품질을 평가하기 위한 기준으로 사용되어 왔다. 이 논문에서는 클래스의 품질을 평가하는 방법으로서의 클래스 응집도를 제안한다. 즉, 클래스가 실세계의 대상을 적절하게 모델링한다면, 그 구성요소들 사이에 밀접한 관련이 있고 결국 높은 응집도를 가지게 될 것이다. 반대로 실세계의 대상에 대한 적절한 모델이 아니라면, 그 클래스의 구성 요소들 사이에는 밀접한 관련성이 없을 것이고 따라서 낮은 응집도를 보일 것이다.Abstract Object-oriented systems are developed by means of classes; that is, classes captures the essential entities or concepts in the problem domain, and the system is embodied by the interactions of objects instantiated from the classes. In addition to the basic units of object-oriented systems, classes serves as the units of encapsulation, which considerably promote the modifiability and the extensibility of them. However, improper modeling in the design phase or uncontrolled changes during the maintenance phase can degrade the quality of classes, which leads to systems cumbersome to maintain and extend.Cohesion refers to the degree of connectivity among the elements of a single module, and is being used as a factor which characterizes the quality of a module. In this paper, we propose a new cohesion metric for assessing the quality of classes. If a class captures properly the essential features of objects, the members of the class surely have strong relationship among them. On the contrary, the poor relationship among class members can indicate that the class is not a proper model of objects.

클래스의 응집도와 결합도를 이용한 객체 지향 설계 재구조화 (Restructuring of Object-Oriented Designs using Cohesion and Coupling of Class)

  • 이종석;천은홍
    • 한국산업정보학회논문지
    • /
    • 제7권5호
    • /
    • pp.83-90
    • /
    • 2002
  • 최근의 많은 소프트웨어들은 규모가 방대하고 복잡하여 개발자가 도구를 사용하지 않고 수작업으로 설계를 재구조화하기 매우 어려우며 또한 많은 시간과 노력의 요구된다 본 논문에서는 클래스의 응집도와 결합도를 이용하여 객체 지향 설계를 자동으로 재구조화하는 방법을 기술한다 먼저 메소드들의 연관 관계를 규정하는 행렬을 응집도와 결합도를 이용한 메소드 사이의 거리로 정의한 후, 분리 클래스를 먼저 분할하고, 다음에 가장 낮은 응집도를 가진 클래스부터 분할하여 가장 거리가 가까운 클래스와 결합시킴으로써 설계를 재구조화한다.

  • PDF

의존 인스턴스 변수를 고려한 클래스 응집도 척도의 개선 (Improving Cohesion Metrics for Classes By Considering Dependent Instance Variables)

  • 채흥석;권용래;배두환
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제31권9호
    • /
    • pp.1131-1141
    • /
    • 2004
  • 응집도는 모듈의 구성 요소들 사이의 관련성 정도를 나타내는 척도로서, 응집도가 높을수록 소프트웨어에 대한 이해 및 유지보수가 용이하다고 알려져 있다. 최근에 응집도의 개념을 객체지향 시스템의 클래스에 적용하기 위하여 많은 응집도 척도들이 제안되고 있다. 그러나, 기존의 응집도 척도들은 다른 인스턴스 변수의 값에 의존하는 의존 인스턴스 변수의 특성을 고려하지 않았기 때문에 클래스의 응집도를 정확하게 측정하지 못하였다. 본 논문에서는 응집도 평가 시 의존 인스턴스 변수에 대한 고려를 통하여 기존의 응집도 척도를 개선시킬 수 있음을 소개한다. 그리고, 의존 인스턴스의 특성을 기존의 응집도 척도에 반영한 실험을 통하여 의존 인스턴스 변수에 대한 고려의 중요성을 소개한다.

클래스 멤버 사이의 쓰기 연산을 고려한 새로운 TCC 및 LCOM 척도 (New TCC and LCOM Measures Considering the Write Operations between Class Members)

  • 우균;채흥석
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제32권11호
    • /
    • pp.1036-1046
    • /
    • 2005
  • 응집도는 모듈의 구성 요소들 사이의 관련성 정도를 나타내는 척도로서, 응집도가 높을수록 소프트웨어에 대한 이해 및 유지보수가 용이하다고 알려져 있다. 최근에 응집도의 개념을 객체지향 시스템의 클래스에 적용하기 위하여 많은 응집도 척도들이 제안되고 있다. 본 논문에서는 클래스 멤버 간의 쓰기 의존성의 영향을 고려함으로써 기존의 응집도 척도를 개선시킬 수 있음을 소개한다. 본 논문의 기법을 지원하는 도구를 개발하였으며 이 도구를 이용하여 C++ 클래스 라이브러리에 이 기법을 적용한 사례 결과를 소개한다.

클래스의 응집도와 결합도를 이용한 객체 지향 설계 재구조화 (Restructuring of Object-Oriented Designs using Cohesion and Coupling of Class)

  • 이종석
    • 한국산업정보학회:학술대회논문집
    • /
    • 한국산업정보학회 2002년도 춘계학술대회 논문집
    • /
    • pp.260-265
    • /
    • 2002
  • 최근의 많은 소프트웨어들은 규모가 방대하고 복잡하여 개발자가 도구를 사용하지 않고 수작업으로 설계를 재구조화하기 매우 어려우며 또한 많은 시간과 노력의 요구된다. 본 논문에서는 클래스의 응집도와 결합도를 이용하여 객체 지향 설계를 자동으로 재구조화하는 방법을 기술하다. 먼저 메소드들의 연관 관계를 규정하는 행렬을 응집도와 결합도를 이용하여 정의한 후 가장 낮은 응집도를 가진 클래스부터 분할하여 가장 가까운 클래스와 결합시킴으로써 설계를 재구조화한다.

  • PDF

Java 프로그램에 대한 복잡도 척도들의 실험적 검증 (An Empirical Validation of Complexity Metrics for Java Programs)

  • 김재웅;유철중;장옥배
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제27권12호
    • /
    • pp.1141-1154
    • /
    • 2000
  • 본 논문에서는 Java 프로그램의 복잡도를 측정하기 위해 필요한 인자들을 제안하였다. 이러한 인자들을 추출하기 위해 Java 프로그램을 분석하여 객체지향 설계 척도 값들을 계산하고 통계적 분석을 수행하였다. 그 결과 기존의 연구에서 발견되었던 클래스의 크기 인자 외에도 메소드 호출 빈도, 응집도, 자식 클래스의 수, 내부 클래스 및 상속 계층의 깊이가 주요 인자임이 파악되었다. 클래스의 크기 척도로 분류되었던 자식 클래스의 수는 다른 크기 척도들과 다른 성질을 가진다는 것을 발견하였다. 또한 프로그램의 크기가 커지고 결합도가 높아질수록 응집도가 떨어진다는 것을 입증하였다. 그리고 인자 분석을 바탕으로 인간의 인지 능력과 인자의 상관관계를 고려한 가중치를 적용하기 위해 인자별로 회귀분석을 수행하였다. 보다 적은 척도를 가지고 인자를 설명할 수 있는 회귀식을 도출하였다. 두 그룹에 대한 교차 검증 결과 회귀식이 높은 신뢰도를 가지는 것으로 나타났다. 따라서 본 논문에서 제안한 인자들을 이용하는 경우 Java 프로그램의 복잡도를 측정할 수 있는 새로운 척도로 사용할 수 있다.

  • PDF

신경망을 이용한 클래스 간 메소드 위치 결정 메커니즘 (A Mechanism to Determine Method Location among Classes using Neural Network)

  • 정영애;박용범
    • 정보처리학회논문지B
    • /
    • 제13B권5호
    • /
    • pp.547-552
    • /
    • 2006
  • 클래스의 속성과 메소드 참조관계를 고려한 응집도 측정 방법은 다양한 형태로 연구되어 왔다 이러한 응집도의 측정 방법은 일반적으로 하나의 클래스에서 이루어진다. 단일 클래스에서 두 개의 클래스로 참조 범위를 확장하면 두 클래스 사이에 발생할 수 있는 참조관계를 알 수 있다. 본 논문에서는 메소드의 위치 결정을 위하여 신경망 학습모델을 제안하였다. 신경망은 입출력 패턴에 대한 반복학습 후, 학습 패턴에 포함되지 않았던 입력 패턴의 목적 값을 예측하고, 일반화(generalization)하는데 효과적이다. 두 개의 클래스 안의 속성과 메소드를 5개 이하로 제한하였고, 학습 벡터는 30개의 이진 값으로 구성된 입력 벡터와 메소드 위치 결정 값인 이진 목적 값으로 생성되었다. 제안된 신경망은 교차검증에서 약 95%, 테스트 데이터에 대해서는 약88%의 예측율을 보였다.