• 제목/요약/키워드: object-oriented metrics

검색결과 65건 처리시간 0.032초

Unified Process의 분석 클래스에 대한 복잡도 척도 (Complexity Metrics for Analysis Classes in the Unified Software Development Process)

  • 김유경;박재년
    • 정보처리학회논문지D
    • /
    • 제8D권1호
    • /
    • pp.71-80
    • /
    • 2001
  • 구조적 개발 방법론에 적용하도록 만들어진 복잡도 척도들은 클래스, 상속성, 메시지 전달 그리고 캡슐롸와 같은 객체지향의 개념에 직접적으로 적용할 수 없다. 또한, 기존이 객체지향 소프트웨어에 대한 척도의 연구는 프로그램의 복잡도나, 설계 단계의 척도가 대부분이었다. 실제로 분석 단계 클래스의 복잡도를 낮춤으로써, 시스템의 개발 노력이나 비용 및 유지보수 단계에서의 노력이 크게 줄어들게 되므로, 분석 클래스에 대한 복잡도를 측량하기 위한 척도가 필요하다. 본 논문에서는 객체지향 개발방법론인 Unified Process의 분석 단계에서 추출되는 분석 클래스에 대하여 복잡도를 측정할 수 있는 새로운 척도를 제안한다. 협력의 복잡도 CC(Collaboration Complexity)는 가능한 협력의 최대 수로서 클래스가 잠재적으로 얼마나 복잡할 수 있는지를 측정하기 위한 척도이며, 각 협력자들의 인터페이스를 이해하는 것과 관련된 총체적 어려움을 측정하는 인터페이스 복잡도 IC(Interface Complexity)를 정의하였다. 제안된 척도는 클래스의 크기 및 상속성에 대하여 수학적인 증명을 하였으며, Weyuker의 9가지 공리적 성질에 대하여 이론적인 검증을 하였다. 또한, 텍스트 마이닝 기법을 사용하여 사용자의 질문에 자동으로 응답하는 시스템의 분석 클래스에 대하여 제안된 척도를 사용하여 복잡도를 측정하였고 기존의 복잡도 척도인 CBO와 WMC의 값을 계산하여 비교하였다. CC와 CBO, IC와 WMC의 값을 비교해 본 결과 제안된 복잡도 척도의 계산 결과 제안된 복잡도 척도의 계산 결과 값이 그 값들보다 좀 더 복잡도를 잘 표현하고 있었다. 이로써 소프트웨어 개발 주기의 초기에 클래스에 대한 복잡도를 평가해 보고, 나머지 단계에 필요한 시간과 노력을 예측함으로써 보다 비용-효과적인 객체지향 소프트웨어를 개발할 수 있는 가능성이 높아진다.

  • PDF

Use Case에 의한 소프트웨어 규모 예측 방법에 대한 실증적 연구 (An Empirical Study of Software Size Estimation Techniques by Use Case)

  • 서예영;이남용
    • 한국전자거래학회지
    • /
    • 제6권2호
    • /
    • pp.143-157
    • /
    • 2001
  • There has been a need for predicting development efforts and costs of the system during the early stage of the software process and hundreds of metrics have been proposed for computer software, but not all provide practical support to the software engineer. Some demand measurement that is too complex, others are so esoteric that few real-world professionals have any hope of understanding them, and others violate the basic intuitive notions of what high-quality software really is. It is worthwhile that metrics should be tailored to best accommodate specific products and processes after grasping their good and no good point. This paper describes two size estimation techniques, the Karner technique and the Marchesi technique, and compares and analyzes them with proposed evaluation criteria. Both techniques are to estimate software size analyzed by use case that is mainly described during the object-oriented analysis phase. We also present an empirical comparison of them, both are applied in the Internet Medicine Prescription System. We also propose some guidance for experiments based on our analysis. We believe that it should be facilitating project management more effective by adjusting software metrics properly.

  • PDF

객체 지향 시스템에서의 클래스 간 의존성 강도 측정을 위한 커플링 척도 (A Coupling Metric for Measuring Strength of Dependency between Classes in Object-Oriented Systems)

  • 화지민;이숙희;권용래
    • 한국정보과학회논문지:컴퓨팅의 실제 및 레터
    • /
    • 제14권1호
    • /
    • pp.81-85
    • /
    • 2008
  • 객체지향 패러다임에서 커플링은 유지보수활동에 가장 큰 영향을 주는 속성 중 하나로 많은 연구들이 진행되어 왔다. 그러나 기존의 커플링 척도는 클래스들간의 의존성 여부만 측정할 뿐 의존성 강도를 표현하지 못하기 때문에 리팩토링이나 시스템 분해와 같이 의존성 강도 정보가 필요한 유지보수활동에서 의사 결정을 지원하는데 한계가 있다. 이 논문에서는 이를 해결하기 위해 클래스 간의 의존성 여부뿐만 아니라 유지 보수성-재검사 비용 측면에서 클래스 간의 의존성 강도까지 표현할 수 있는 커플링 척도를 제안한다. 그리고 시스템 분해 문제에 적용한 예제를 통하여 시스템 유지 보수를 위한 여러 분야에 적용될 수 있음을 보인다.

컴포넌트 설계에 대한 응집도와 결합도 메트릭스 (Cohesion and Coupling Metrics for Component Design Model)

  • 고병선;박재년
    • 정보처리학회논문지D
    • /
    • 제10D권5호
    • /
    • pp.745-752
    • /
    • 2003
  • 소프트웨어 개발의 독립성과 높은 생산성을 향상시키기 위한 재사용 기술로 컴포넌트 기반 개발 방법론은 널리 사용되게 되었다. 소프트웨어의 품질을 향상시키기 위해서는 측정 가능해야 하므로, 컴포넌트의 특성을 반영한 컴포넌트 메트릭스가 필요하다. 따라서 본 논문에서는 컴포넌트 기반 시스템의 컴포넌트 설계 정보에 기반한 컴포넌트 응집도와 결합도 메트릭스를 제안한다. 오퍼레이션이 컴포넌트의 서비스를 제공하기 위해 공통으로 사용하는 클래스에 대한 정보를 이용해 오퍼레이션 사용도를 구하고, 이를 통해 오퍼레이션 유사도를 구한다. 컴포넌트 응집도와 결합도는 오퍼레이션 유사도에 의해 계산되며, 컴포넌트 분석 단계에 추출 가능한 정보로부터 계산된다. 그리고 사례 연구를 통해 컴포넌트 메트릭스의 필요성을 객체지향 메트릭스와의 비교를 통해 살펴본다.

UML 클래스 다이어그램 분석에 의한 객체지향 시스템의 복잡도 연구 (The Complexity of Object-Oriented Systems by Analyzing the Class Diagram of UML)

  • 정홍;김태식
    • 한국지능시스템학회논문지
    • /
    • 제15권6호
    • /
    • pp.780-787
    • /
    • 2005
  • 객체지향 시스템의 복잡성 척도에 대하여 많은 연구와 검증이 이루어져 왔다. 대부분의 척도들은 시스템의 부분적 측면 예를 들어, 객체 간 결합도, 상속 구조의 복잡도, 메소드의 응집도 등에 대한 측정을 목표로 하고 있다. 그런데 소프트웨어 실무자들은 부분적이 아닌 시스템의 전반적인 복잡도를 측정할 수 있기를 바라고 있다. 본 논문은 UML의 클래스 다이어그램을 분석함으로써 객체지향 시스템의 전체적 구조에 대한 복잡도를 연구한 것이다. 클래스 다이어그램은 클래스와 클래스 간 관계로 구성되어 있다. 관계에는 연관 관계, 일반화 관계, 집합 관계 둥 세 가지가 있는데, 이 관계들이 객체지향 시스템의 구조를 이해하기 어렵게 하고 있다. 본 연구에서는 이 세 가지 관계를 통합하여 객체지향 시스템의 복잡도를 측정하는 경험적 척도를 제안하고 있다. 이 척도는 소프트웨어 개발자가 코딩하기 전에 객체지향 시스템의 복잡도를 평가해 보고 필요시 설계를 수정할 수 있도록 하게 함으로써 설계 업무에 많은 도움을 줄 것이다.

자바 프로그램의 복잡도 측정을 위한 척도 $\pi_{java}$의 설계 (Design of the Metrics Suite $\pi_{java}$for Java Program Complexity)

  • Eun-Mi Kim
    • 한국컴퓨터산업학회논문지
    • /
    • 제2권3호
    • /
    • pp.407-416
    • /
    • 2001
  • 본 논문에서는 C++ 프로그램을 측정하기 위하여 제안된 척도 $\pi_{java}$ c++/를 기반으로 Java 프로그램 복잡도를 측정하기 위한 척도 $\pi_{java}$ Java/을 제안한다. C++를 측정하기 위해 많은 척도들이 제안되어 왔으나 이들은 Java 프로그램만이 가지는 특성들을 고려하지 않았기 때문에 C++ 프로그램과 다른 성질을 가지고 있는 Java프로그램에 이들을 그대로 적용하는 것은 어렵다. 따라서, 본 논문에서는C++와 Java 언어의 공통점과 차이점을 분석한 결과와 본 연구팀이 C++ 프로그램의 복잡도를 측정하기 위해 제안했던 척도 $\pi_{java}$ c++/을 바탕으로 Java 프로그램의 복잡도를 측정하기 위한 새로운 척도 $\prod$$_{Java}$을 제안한다. 마지막으로 제안한 척도를 Weyuker의 성질에 적용하여 분석하며, 기존의 척도들과도 비교한다.

  • PDF

객체지향 기반 소프트웨어 컴포넌트의 내부 품질 메트릭을 이용한 외부 품질 추정 기법 (Techniques to Predict External Quality from Internal Quality Metrics for Object Oriented Software Components)

  • 박지환;신석규;김수동
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제30권7_8호
    • /
    • pp.618-641
    • /
    • 2003
  • 소프트웨어 제품의 품질을 평가하기 위한 방법으로써 품질 요소, 품질 항목 및 여러 가지 메트릭을 이용한 품질 모델들이 제시되어 왔다. 하지만, 소프트웨어의 품질을 보다 정확하게 평가하기 위해서는 각각의 특징에 맞는 특화된 모델이 필요하다. 본 논문에서는 소프트웨어 컴포넌트 개발에 있어서 개발이 진행중인 상태의 소프트웨어 내부 속성에 적절한 메트릭을 적용시킨 결과를 이용하여 개발 완료 후의 소프트웨어가 가지게 되는 외부 품질을 어떻게 추정하는지에 대한 외부 품질 추정 모델을 제시한다. 소프트웨어 품질을 측정하기 위한 메트릭을 적용한 결과로써 품질 자체를 측정하는데 한정하지 않고, ISO 9126에서 제시하는 소프트웨어의 내부 속성을 이용하여 소프트웨어 컴포넌트 개발의 각 산출물에 어떻게 적용시키는지에 대한 모델을 예제를 통하여 제시한다.

소프트웨어 개발 과정에서 제품의 품질 척도를 적용하는 방법 (Establishment of the Software Quality Metrics for a Software Development Process)

  • 이선아;최병주
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제27권3호
    • /
    • pp.217-226
    • /
    • 2000
  • 고품질의 소프트웨어를 개발하기 위하여, 소프트웨어의 품질을 측정하는 메트릭스가 활발히 개발되었고 근래에는 객체지향 메트릭스도 제시되고 있다. 그러나 개발 과정에서 품질을 관리하기 위하여 메트릭스를 이용하는 방법에 대한 연구는 제대로 이루어지고 있지 않다. 이는 개발 과정에서 적용되는 메트릭스의 의미를 전체적인 품질 관점에서 이해하기가 어렵기 때문이다. 본 논문에서는 제품 특성을 기반으로 정의된 소프트웨어 품질 모형(H-SQM)을 이용하여 개발 과정에 소프트웨어 품질 메트릭스를 적용하는 방법을 제안한다. 이 방법에서는 H-SQM을 표현한 원인-결과 다이어그램을 공정분석도로 바꾼다. 공정분석도에 따라 개발 단계별로 소프트웨어 품질 메트릭스를 적용한다. 이러한 방법으로 개발 과정에서 소프트웨어의 품질을 효율적으로 개선해 나갈 수 있도록 메트릭스를 적용 할 수 있게 된다.

  • PDF

CBD 환경에서 컴포넌트의 재사용성 측정 메트릭스 (Metrics for Measurement of Component Reusability in Component-Based Development)

  • 윤희환
    • 한국컴퓨터정보학회논문지
    • /
    • 제10권4호
    • /
    • pp.103-111
    • /
    • 2005
  • 프로그램의 재사용은 수정한 후 재사용하는 화이트박스 재사용과 수정없이 재사용하는 블랙박스 재사용으로 나눌 수 있다. 컴포넌트 기반 소프트웨어 개발 방법론에서의 컴포넌트는 블랙박스 재사용 형태를 띤다. 클래스와 컴포넌트는 절차적인 특성과 객체지향적인 특성을 모두 가지고 있으므로 이를 고려하여 재사용성을 측정해야 한다. 이 논문에서는 컴포넌트의 재사용성 측정 모델과 측정 기준을 제안한다. 제안된 모델을 사용하여 측정된 컴포넌트는 재사용 정도를 측정하여 재사용성이 높은 컴포넌트를 선택할 수 있다.

  • PDF

A Pragmatic Framework for Predicting Change Prone Files Using Machine Learning Techniques with Java-based Software

  • Loveleen Kaur;Ashutosh Mishra
    • Asia pacific journal of information systems
    • /
    • 제30권3호
    • /
    • pp.457-496
    • /
    • 2020
  • This study aims to extensively analyze the performance of various Machine Learning (ML) techniques for predicting version to version change-proneness of source code Java files. 17 object-oriented metrics have been utilized in this work for predicting change-prone files using 31 ML techniques and the framework proposed has been implemented on various consecutive releases of two Java-based software projects available as plug-ins. 10-fold and inter-release validation methods have been employed to validate the models and statistical tests provide supplementary information regarding the reliability and significance of the results. The results of experiments conducted in this article indicate that the ML techniques perform differently under the different validation settings. The results also confirm the proficiency of the selected ML techniques in lieu of developing change-proneness prediction models which could aid the software engineers in the initial stages of software development for classifying change-prone Java files of a software, in turn aiding in the trend estimation of change-proneness over future versions.