• 제목/요약/키워드: 프로그램 복잡도

검색결과 1,113건 처리시간 0.029초

프로그램 볼륨이 복잡도에 미치는 영향 분석 (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

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

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

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

슬라이스 기반 복잡도 척도 (A Slice-based Complexity Measure)

  • 문유미;최완규;이성주
    • 정보처리학회논문지D
    • /
    • 제8D권3호
    • /
    • pp.257-264
    • /
    • 2001
  • 본 논문은 데이터 슬라이스에서의 데이터 토큰들의 정보 흐름에 기초하여 프로그램에서의 정보 흐름을 모델링하는 SIFG(Slicw-based information Graph)를 개발하였다. 다음으로, SIFG에서의 정보 흐름의 복잡도 측정을 통해서 프로그램의 복잡도를 측정하기 위해 SCM(Slice-based Complexity Measure)을 정의하였다. SCM은 Briand가 제시하는 복잡도 메트릭에 필요한 특성들을 만족하였고, 그리고 기존 척도들과는 달리, SCM은 프로그램 내에서의 제어와 데이터 흐름뿐만 아니라 프로그램의 물리적 크기를 반영하는 측정이 이루어졌다.

  • 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

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

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

  • PDF

통신 소프트웨어의 프로그램 결함과 복잡도의 관련성 분석을 위한 회귀분석 모델 (Regression Analysis of the Relationships between Complexity Metrics and Faults on the Telecommunication Program)

  • 이경환;정창신;황선명;조병규;박지훈;김강태
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제26권11호
    • /
    • pp.1282-1287
    • /
    • 1999
  • 통신 프로그램은 고도의 신뢰성과 기능성, 확장성, 그리고 유지 보수성이 필요하다. 프로그램 테스트의 결과와 McCabe의 Complexity를 측정한 데이타를 가지고 회귀모델을 만들고 그 신뢰성을 분석함으로서 프로그램의 결함과 복잡도의 관련성을 평가한다.본 연구에서 사용한 통신 프로그램은 500개 블록이 59가지 기능을 수행하는 교환 기능 중에서 복잡도가 너무 많아서 통계 처리의 bias가 될 블록을 제외하고 394 블록을 선정하여 SAS에 의해서 통계 분석을 하고 회귀 분석 모델을 설계하였다. t 분포에 의하여 방정식의 유의성 수준을 검증하고 프로그램의 결함수에 가장 큰 영향을 주고 있는 복잡도가 McCabe의 복잡도와 설계 복잡도 임을 밝혀냈다. 이 연구 결과에 의해서 설계 정보 및 유지 보수 정보를 얻을 수 있다. Abstract Switching software requires high reliability, functionality, extendability and maintainability. For doing, software quality model based on MaCabe's complexity measure is investigated. It is experimentally shown using regression analysis the program fault density depends on the complexity and size of the function unit. The software should be verified and tested if it satisfies its requirements with automated analysis tools. In this paper we propose the regression model with the test data.The sample program for the regression model consists of more than 500 blocks, where each block compose of 10 files, which has 59 functions of switching activity.Among them we choose 394 blocks and analyzed for 59 functions by testing tools and SAS package. We developed Regression Analysis Model and evaluated significant of the equation based on McCabe's cyclomatic complexity, block design complexity, design complexity, and integration complexity.The results of our experimental study are that number of fault are under the influence of McCabe's complexity number and design complexity.

프로그램에 대한 복잡도 측정인자 분석 (An Analysis of the Complexity Measurement Factor for a Program)

  • 이규범;송정영
    • 인터넷정보학회논문지
    • /
    • 제3권4호
    • /
    • pp.61-69
    • /
    • 2002
  • 객체지향 프로그램에 대한 복잡도 측정에 관한 방법으로서 기존의 객체지향 패러다임 특성이라 할 수 있는 객체, 메시지, 클래스, 캡슐화 및 상속성 등에 관한 연구는 이미 보고된바 있다. 본 연구에서는 측정인자로서 Halstead의 Program Volume, Program Level, Program Impurity, Macabe의 Cyclomatic Number, Handerson-Sellers의 응집도 결핍척도 Sullivan's의 PVG측정 방법 등을 선택하였다. 시뮬레이션으로는 객체지향 프로그램의 대표적인 언어인 JAVA Program을 Design & Coding할 때 도움을 주는 척도에 대해서 JAVA Sample Program을 준비하여 프로그램 복잡도 면에서 측정인자들을 각각 비교·분석하였다.

  • PDF

객체지향 프로그램 슬라이싱을 위한 개선된 시스템 종속성 그래프에 대한 연구 (A study on the Enhanced System Dependence Graph for slicing of object-oriented Program)

  • 류희열;김은정
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2002년도 가을 학술발표논문집 Vol.29 No.2 (2)
    • /
    • pp.115-117
    • /
    • 2002
  • 객체지향 프로그램 슬라이싱을 위한 Loren D Larsen and Marry Jean Harrold가 제안하는 방법은 절차적 프로그램 슬라이싱을 위한 시스템 종속성 그래프 표현방법에 객체지향 패러다임을 표현할 수 있도록 확장하며 2단계 마킹 알고리즘을 적용하여 슬라이스를 계산한다. 시스템 종속성 그래프를 이용한 슬라이싱 방법은 클래스 멤버 변수와 전역변수 및 인스턴스 변수에 대하여 각 메소드 호출 및 진입정점에 actual_in, actual_out, formal_in, formal_out 정점들이 추가되어 복잡도가 증가한다. 본 논문에서는 이들 변수를 클래스 정점의 멤버간선으로 연결하여 각 메소드의 문장에서 사용하면 진출간선 정의하면 진입간선으로 연결하여 정점과 간선들의 개수를 최소화할 수 있도록 시스템 종속성 그래프를 개선하였다. 제안하는 시스템 종속성 그래프는 그래프 복잡도의 최소화와 2단계 알고리즘에 의한 정확한 슬라이스 계산이 장점이다. C++ 예제 프로그램을 적용하여 그래프 복잡도의 감소와 정확한 슬라이스 계산을 기존의 방법과 비교하여 개선됨을 확인하였다.

  • PDF

개선된 동적 객체지향 종속 그래프 (Improved Dynamic Object-Oriented Dependence Graph)

  • 박순형;박만곤
    • 한국멀티미디어학회:학술대회논문집
    • /
    • 한국멀티미디어학회 2004년도 춘계학술발표대회논문집
    • /
    • pp.806-809
    • /
    • 2004
  • 동적 객체지향 프로그램 슬라이싱을 구현하기 위해서 프로그램 종속 그래프가 필요하다. 본 논문에서는 기존의 동적 객체지향 프로그램 종속 그래프 기법 보다 효율적인 동적 객체지향 프로그램 종속 그래프 기법을 제안하였다. 본 논문에서 제안한 기법이 기존에 비해 효율적임을 보이기 위해 그래프의 복잡도를 측정하여 비교하였다. 그리고 프로그램 슬라이스의 크기도 함께 측정하여 본 논문에서 제시한 기법이 효율적임을 증명하였다.

  • PDF