• Title/Summary/Keyword: 클래스 응집도

Search Result 33, Processing Time 0.03 seconds

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

  • 최완규
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2001.10a
    • /
    • 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 (객체지향 패러다임에서 저해요인에 기반한 응집도 척도)

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

  • PDF

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

  • Kim, Sung-Ae;Choi, Wan-Kyoo;Lee, Sung-Joo
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2000.10b
    • /
    • pp.1385-1388
    • /
    • 2000
  • 본 연구에서는 클래스의 응집도를 측정하는 기존 척도들을 클래스의 참조 그래프에 근거하여 분석하였다. 기존의 척도들이 참조 그래프의 관점에서 어떠한 문제점들이 있는가를 분석하고, 기존 척도들의 분석에 근거하여 클래스 응집도를 측정하기 위해 응집도 척도가 고려해야할 사항들을 제시하였다.

  • PDF

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

  • Chae, Hong-Seok;Gwon, Yong-Rae;Bae, Du-Hwan
    • Journal of KIISE:Software and Applications
    • /
    • v.26 no.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 (클래스의 응집도와 결합도를 이용한 객체 지향 설계 재구조화)

  • 이종석;천은홍
    • Journal of Korea Society of Industrial Information Systems
    • /
    • v.7 no.5
    • /
    • pp.83-90
    • /
    • 2002
  • Recent commercial systems are too large and too complex to restructure their design by hand without tools and cost too much time and effort. This thesis presents a restructuring approach using cohesion and coupling of classes to change object-oriented designs automatically. The matrix which represents the relation between methods is defined by distance between methods using cohesion and coupling, Class restructuring starts to isolate to dividing class, selects the class to have the lowest cohesion and combines the selected class with the closest class.

  • PDF

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

  • Chae Heung Seok;Kwon Yong Rae;Bae Doo Hwan
    • Journal of KIISE:Software and Applications
    • /
    • v.31 no.9
    • /
    • pp.1131-1141
    • /
    • 2004
  • Cohesion refers to the degree of the relatedness of the elements in a module, and it is widely accepted that the module of higher cohesion is easier to understand, maintain, and reuse. Recently, several cohesion metrics have been proposed to measure the cohesiveness of classes in an object-oriented program. However, the existing cohesion metrics do not consider the characteristics of dependent instance variables that are commonly used in a class and, thus, do not properly reflect the cohesiveness of the class. This paper presents an approach for improving the cohesion metrics by considering the characteristics of the dependent instance variables in an object-oriented program. To demonstrate the importance of the dependent instance variables, a case study has been conducted on a class library.

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

  • Woo, Gyun;Chae, Heung-Seok
    • Journal of KIISE:Software and Applications
    • /
    • v.32 no.11
    • /
    • pp.1036-1046
    • /
    • 2005
  • Cohesion refers to the degree of the relatedness of the members in a class and it is widely accepted that the higher the cohesion of a module is, the easier the module to understand and maintain. Recently, several cohesion measures have been proposed to measure the cohesiveness of classes in an object-oriented program. In this paper, we propose an approach to improving the existing cohesion measures by considering the impact of write dependencies between class members. We have developed a cohesion measurement tool for supporting our approach and describe a case study performed with a C++ class library.

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

  • 이종석
    • Proceedings of the Korea Society for Industrial Systems Conference
    • /
    • 2002.06a
    • /
    • pp.260-265
    • /
    • 2002
  • Recent commercial systems are too large and too complex to restructure their design by hand without tools and cost too much time and effort. This thesis presents a restructuring approach using cohesion and coupling of classes to change object-oriented designs automatically. The matrix which represents the relation between methods is defined using cohesion and coupling, restructuring approach selects the class to have the lowest cohesion and combines the selected class with the closest class.

  • PDF

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

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

  • PDF

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

  • Jung, Young-A.;Park, Young-B.
    • The KIPS Transactions:PartB
    • /
    • v.13B no.5 s.108
    • /
    • pp.547-552
    • /
    • 2006
  • There have been various cohesion measurements studied considering reference relation among attributes and methods in a class. Generally, these cohesion measurement are camed out in one class. If the range of reference relation considered are extended from one class to two classes, we could find out the reference relation between two classes. Tn this paper, we proposed a neural network to determine the method location. Neural network is effective to predict output value from input data not to be included in training and generalize after training input and output pattern repeatedly. Learning vector is generated with 30-dimensional input vector and one target binary values of method location in a constraint that there are two classes which have less than or equal to 5 attributes and methods The result of the proposed neural network is about 95% in cross-validation and 88% in testing.