• 제목/요약/키워드: 복잡도 척도

검색결과 167건 처리시간 0.022초

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

프로그램 복잡도 측정 (Measuring the Program Complexity)

  • 서태원;박병권;최완규;이성주
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 1998년도 가을 학술발표논문집 Vol.25 No.2 (1)
    • /
    • pp.454-456
    • /
    • 1998
  • 소프트웨어 시스템의 대형화와 복잡화에 따른 소프트웨어 특징의 식별, 분류를 위한 프로그램 복잡도 측정에 대한 연구들이 수행되어 왔다. 그러나 하나의 인자를 이용한 복잡도 척도나 인자에 대한 중요도의 명확한 제시가 없는 다수의 인자를 이용한 혼합적 척도는 복잡도를 정확히 측정 평가할 수 없다. 따라서, 본 연구에서는 현업에서의 연구와 경험을 통해서 증명된 객관성 있는 척도들과 각 척도들의 중요도를 가중값으로 하여, 기능 중심으로 구성된 프로그램의 복잡도를 측정할 수 있는 새로운 혼합적 척도를 제안한다.

객체지향 분석 모델의 클래스 품질 척도 (Quality Metric for Classes in Object-Oriented Analysis Models)

  • 김유경;박재년
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2000년도 가을 학술발표논문집 Vol.27 No.2 (1)
    • /
    • pp.457-459
    • /
    • 2000
  • 객체지향 방법론은 캡슐화(encapsulation), 상속(inherit), 다형성(polymorphism)과 같은 개념을 이용하기 때문에 기존의 절차적 방법론과는 다른 척도가 필요하다. 본 논문에서 제안하는 척도는 객체지향 시스템의 개발 절차 가운데 분석 단계에서 추출할 수 있는 정보만을 사용하여, 클래스가 객체지향 개념에 따라 잘 구성되었는지를 측량하게 된다. 이를 위하여 본 논문에서는 클래스의 품질을 측량하기 위한 척도로 협력의 복잡도와 인터페이스 복잡도를 제안한다. 협력의 복잡도는 클래스가 잠재적으로 얼마나 복잡할 수 있는지를 측량하기 위한 것으로서 클래스가 가지는 책임의 개수를 조사하여 정의된다. 인터페이스 복잡도는 클래스와 협력 관계에 있는 다른 클래스들의 인터페이스를 조사하여 정의된다. 제안된 척도는 기존의 척도들이 가지고 있는 문제점을 해결하기 위하여 이해하기 쉬운 수학적 명세를 용하였으며, 제안된 척도에 대한 수학적 증명과 사례 연구를 통한 검증을 하였다.

  • PDF

프로그램 동작특성과 실행경로 기반의 테스트 경로 생성과 복잡성 척도 (A Program Test Path Generation and Complexity Metrics Based on Execution Path and Program Activity Characteristics)

  • 고일석
    • 한국통신학회논문지
    • /
    • 제26권5A호
    • /
    • pp.752-762
    • /
    • 2001
  • 소프트웨어의 유지보수 과정에서 효율적인 복잡성 척도와 테스트 경로의 생성은 중요한 문제이다. 대부분의 경우 테스트 경로의 생성과 복잡성 척도의 측정은 독립적인 기법이 필요하다. 본 논문에서는 테스트 경로의 생성과 복잡성 척도를 통합적으로 생성하고 있다. 제안한 기법은 PUT(Program Under Test)를 확장한 페트리네트 그래프(EPG)를 이용하여 모델링하고 이것의 통합적인 분석을 통하여 테스트 경로를 생성하며, 이 과정에서 생성된 실행경로의 제어구조별 평균 발생 빈도수를 이용하여 복잡성 척도 EV(G)를 구하였다. EV(G)는 실제 프로그램의 실행경로에 기반을 두었기 때문에 프로그램의 제어구조별 차이점 외에도 프로그램의 동작 특성을 복잡도에 잘 반영할 수 있다. 본 논문에서 제안한 통합 기법에 의한 테스트 경로 생성 기법과 복잡성 척도를 소프트웨어의 유지보수에 활용한다면 노력과 비용의 절감 및 소프트웨어의 질적 향상을 가져올 것이다.

  • PDF

자바 프로그램의 복잡도 측정을 위한 척도 $\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

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

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

  • PDF

프로그램 볼륨이 복잡도에 미치는 영향 분석 (Effect Analysis of Program Volume on Complexity)

  • 김재웅;유철중;장옥배
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2000년도 가을 학술발표논문집 Vol.27 No.2 (1)
    • /
    • pp.528-530
    • /
    • 2000
  • 최근 객체지향 소프트웨어 개발이 일반화되면서 품질 좋은 객체지향 소프트웨어의 개발을 돕기 위한 목적으로 객체지향 소프트웨어 복잡도 척도에 관한 연구들이 다양하게 행해져 왔다. 대부분의 연구가 구조적 복잡도 측정에 중점을 두어 프로그램 크기와 관련된 요인들을 측정하는 척도들이 제시되었다. 한편 소프트웨어 개발이나 복잡도 측정에 대하여 인지 심리 이론을 적용하여, 인간의 단기 기억의 한계 7$\pm$2와 제어 논리 처리에 3$\pm$1을 고려한 연구들이 많이 행해졌다. 본 논문에서는 프로그램 볼륨과 복잡도의 관계를 조사하기 위해 13개 척도의 값을 추출한 후 통계적 분석을 수행하고, 인지 심리 이론과의 관계를 파악해 보았다.

  • PDF

객체지향 분석 단계에서의 클래스 복잡도 측정 (Measurement of Classes Complexity in the Object-Oriented Analysis Phase)

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

  • PDF

엔트로피를 기반으로 한 사용자 인터페이스 인지적 복잡도의 척도 (An Entropy-Based Measure for Evaluation the Cognitive Complexity of User Interface)

  • 이동석;윤완철;최상섭
    • 감성과학
    • /
    • 제1권1호
    • /
    • pp.213-221
    • /
    • 1998
  • 현대의 시스템들이 가지는 고기능화와 자동화로 인하여 인간의 운용 능력이 점점 더 중요한 능력으로 부각되고 있으며, 이는 사용자가 경험하게 되는 인지넉 복잡도를 제어하는 것을 요구한다. 본 연구에서는 사용자 인터페이스에서 사용자가 경험해야 하는 인지적 복잡도를 스키마 구조를 반영하여 정량화하는 엔트로피 모형(윤완철, 1992)을 적용하여 사용자가 겪게 될 인지적 복잡도를 예측하는 척도가 제안되었으며 실험적으로 검증되었다. 엔트로피와 시스템 크기-조작의 수와 상태의 수-가 각각 다른 세 가지 인터페이스 (엔트로피가 낮고 작은 크기의 인터페이스, 엔트로피가 높고 작은 크기의 인터페이스, 엔트로피가 높고 큰 크기의 인티페이스) 중의 하나를 사용하는 것을 피험자이 학습하고, 이에 대해 검사를 받았다. 제안된 척도인 시스템 엔트로피는 사용자 수행도를 잘 설명하였지만, 시스템의 크기는 그러하지 않았다. 본 연구는 사용자가 겪게 될 인지적 복잡도를 평가자의 주관이 개입하지 않는 방법을 통하여 평가할 수 있음을 보인 것으로 가전제품이나 스프트웨어의 디자인의 평가와 개선 등 인간의 인지적 복잡도가 사용성에 중요한 영향을 미치는 분야에서 유용하리라 여겨진다.

  • PDF

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

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