KR101441854B1 - 시스템 복잡도 자동 계산방법 - Google Patents

시스템 복잡도 자동 계산방법 Download PDF

Info

Publication number
KR101441854B1
KR101441854B1 KR1020120128786A KR20120128786A KR101441854B1 KR 101441854 B1 KR101441854 B1 KR 101441854B1 KR 1020120128786 A KR1020120128786 A KR 1020120128786A KR 20120128786 A KR20120128786 A KR 20120128786A KR 101441854 B1 KR101441854 B1 KR 101441854B1
Authority
KR
South Korea
Prior art keywords
complexity
program
total number
calculating
programs
Prior art date
Application number
KR1020120128786A
Other languages
English (en)
Other versions
KR20140062289A (ko
Inventor
김주성
Original Assignee
(주)큐브젠소프트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)큐브젠소프트 filed Critical (주)큐브젠소프트
Priority to KR1020120128786A priority Critical patent/KR101441854B1/ko
Publication of KR20140062289A publication Critical patent/KR20140062289A/ko
Application granted granted Critical
Publication of KR101441854B1 publication Critical patent/KR101441854B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/37Compiler construction; Parser generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

시스템 복잡도 자동 계산방법이 제공된다. 본 발명의 실시예에 따른 시스템 복잡도 계산방법은, 시스템을 구성하는 프로그램들을 파싱/분석하여 시스템 데이터들을 생성하고, 시스템 데이터들을 기초로 산출된 복잡도 항목들을 종합하여 시스템 복잡도를 계산한다. 이에 의해, 운영 중인 어플리케이션 시스템 전체에 대해 정량적인 판단으로 보다 합리적인 지표를 제공하고, 수시로 변동되는 어플리케이션 시스템에 대한 복잡도를 실시간 자동으로 계산할 수 있게 되어, 다음과 같은 유리한 효과가 있다.

Description

시스템 복잡도 자동 계산방법{Method for calculating system complexity metric automatically}
본 발명은 복잡도 계산 방법에 관한 것으로, 더욱 상세하게는 다수의 프로그램들로 구성되는 시스템에 대한 복잡도를 계산하는 방법에 관한 것이다.
현재 많은 어플리케이션 시스템이 운영되고 있지만 운영 중인 어플리케이션 시스템의 정량적인 계산 정보 없이 일반적인 경험치에 의한 판단에 따라 어플리케이션 시스템이 운영되고 있습니다.
적게는 수만 본에서 수십만 본의 프로그램과 수십 가지의 프로그램 언어로 구성되어 있는 어플리케이션 시스템에 대한 복잡도 계산 추정치 등을 이용하여 잠정적인 파악 하에 경험을 근간으로 계산하고 있는 것이다.
이와 같은 방식의 복잡도 계산은, 인력투입, 분석요원의 경력 등에 따라 다르겠지만 투입인력 계산과 기간을 쉽게 산출할 수도 없으며, 설사 작업이 완료되었다고 하여도 분석된 내용의 정확성은 보장할 수 없는 것이 현실이다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은, 운영 중인 어플리케이션 시스템 전체에 대해 정량적인 판단으로 보다 합리적인 지표를 제공하고, 수시로 변동되는 어플리케이션 시스템에 대한 복잡도를 실시간 자동으로 계산하기 위한 방안으로, 시스템을 구성하는 프로그램들을 분석하여 생성한 시스템 데이터들을 기초로 복잡도 항목들을 산출하고, 산출된 복잡도 항목들을 종합하여 시스템 복잡도를 계산하는 시스템 복잡도 계산방법을 제공함에 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른, 시스템 복잡도 계산방법은, 시스템을 구성하는 프로그램들을 파싱하는 단계; 파싱된 프로그램들을 분석하여, 시스템 데이터들을 생성하는 단계; 생성된 시스템 데이터들을 기초로, 복잡도 항목들을 산출하는 단계; 및 산출된 복잡도 항목들을 종합하여, 시스템 복잡도를 계산하는 단계;를 포함한다.
그리고, 프로그램 복잡도 계산환경을 설정하는 단계;를 더 포함하고, 상기 계산환경은, 복잡도 항목의 실제값에 대해 부여할 점수가 배정된 복잡도 단계 및 상기 복잡도 항목들 각각에 대한 가중치를 포함할 수 있다.
또한, 상기 복잡도 단계 및 상기 가중치는, 상기 시스템의 종류에 따라 각기 다르게 설정될 수 있다.
그리고, 상기 시스템 데이터 생성단계는, 전체 프로그램 본수(PN), 전체 내부모듈 개수(MN). 전체 프로그램 라인수(PL), 전체 오퍼레이터수(OP), 전체 오퍼렌드수(ON), 전체 IF Depth(IFD), 전체 내부 호출수(MC), 전체 외부 호출수(PC), 전체 Call Depth(CD), 전체 DB 호출수(DC), 전체 DB Call Depth(DCD) 및 전체 DB 테이블 개수(TC) 중 적어도 하나를 생성할 수 있다.
또한, 상기 복잡도 항목 산출단계는, 프로그램별 평균 내부 모듈 수(프로그램 내부 복잡도), 내부모듈별 평균 소스라인 수(내부 모듈 복잡도), 내부모듈별 평균 오퍼레이터수(내부 모듈 복잡도), 내부모듈별 평균 오퍼렌드 수(내부 모듈 복잡도), 프로그램별 IF Depth(IFD)(프로그램 로직 복잡도), 프로그램별 내부호출수(프로그램 로직 복잡도), 프로그램별 외부 호출수(프로그램 연관 복잡도), 프로그램별 Call Depth(프로그램 연관 복잡도), 프로그램별 DB 호출수(DC)(프로그램 DB 호출 복잡도), 프로그램별 DB Call Depth(DB 테이블 처리 복잡도) 및 프로그램별 DB Call Depth(DB 테이블 구성 복잡도) 중 적어도 하나를 산출할 수 있다.
그리고, 계산된 복잡도를 코멘트와 함께 출력하는 단계;를 더 포함할 수 있다.
또한, 상기 출력단계는, 사용자가 설정한 국가의 언어로 출력할 수 있다.
한편, 본 발명의 다른 실시예에 따른, 컴퓨터로 읽을 수 있는 기록매체는, 시스템을 구성하는 프로그램들을 파싱하는 단계; 파싱된 프로그램들을 분석하여, 시스템 데이터들을 생성하는 단계; 생성된 시스템 데이터들을 기초로, 복잡도 항목들을 산출하는 단계; 및 산출된 복잡도 항목들을 종합하여, 시스템 복잡도를 계산하는 단계;를 포함하는 것을 특징으로 하는 시스템 복잡도 계산방법을 수행할 수 있는 프로그램이 수록된다.
이상 설명한 바와 같이, 본 발명에 따르면, 시스템을 구성하는 프로그램들을 분석하여 생성한 시스템 데이터들을 기초로 복잡도 항목들을 산출하고, 산출된 복잡도 항목들을 종합하여 시스템 복잡도를 계산할 수 있게 된다.
이에 따라, 운영 중인 어플리케이션 시스템 전체에 대해 정량적인 판단으로 보다 합리적인 지표를 제공하고, 수시로 변동되는 어플리케이션 시스템에 대한 복잡도를 실시간 자동으로 계산할 수 있게 되어, 다음과 같은 유리한 효과가 있다.
첫째, 어플리케이션 시스템의 정량적 분석 데이터를 많은 인력투입 없이도 간단하게 제공받을 수가 있다.
둘째, 어플리케이션 시스템을 정확한 정량적인 데이터를 기반에서 운영하게 됨으로서 인원의 효율적인 운영 및 경비절감 등의 효과가 있다.
셋째, 어플리케이션 시스템의 복잡도를 개선함으로서 운영경비를 절감할 수 있다.
넷째, 어플리케이션의 복잡도를 개선함으로서 시스템의 오류 발생의 예방 및 오류 발생에 따른 비용을 절감할 수 있다.
다섯째, 어플리케이션 시스템 복잡도의 분석에 따라 어플리케이션 시스템의 취약점을 사전에 발견 예방할 수 있다.
여섯째, 어플리케이션의 복잡도를 개선함으로서 사용자에 대한 서비스가 증대된다.
일곱째 어플리케이션 시스템의 복잡도 정보는 다국어로 제공되게 때문에 향후 수출 증대효과가 있다.
도 1은 본 발명이 적용가능한 컴퓨팅 시스템을 도시한 도면,
도 2는 본 발명의 바람직한 실시예에 따른 시스템 복잡도 계산방법의 설명에 제공되는 흐름도, 그리고,
도 3은 복잡도 계산환경인 프로그램 복잡도 단계와 가중치의 개념 설명에 제공되는 도면이다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 1은 본 발명이 적용가능한 컴퓨팅 시스템을 도시한 도면이다. 본 발명이 적용가능한 컴퓨팅 시스템(100)은, 도 1에 도시된 바와 같이, 저장부(110), 출력부(120), 프로세서(130), 입력부(140) 및 통신부(150)를 구비한다.
저장부(110)는 어플리케이션 시스템(111) 및 시스템 복잡도 계산 엔진(113)이 저장된 저장매체이다.
어플리케이션 시스템(111)은 솔루션 제공을 위한 목적으로 구성된 다수의 프로그램들의 집합으로, 통신부(150)를 통해 외부 서버나 네트워크로부터 수신되거나, 보조 기억장치로부터 전달되어 저장부(110)에 일시적으로 저장된 분석 대상이다.
시스템 복잡도 계산 엔진(113)은 어플리케이션 시스템(111)을 분석하여 어플리케이션 시스템(111)의 복잡도를 계산하여, 계산 결과를 저장하고 다국어로 제공하는 엔진이다. 시스템 복잡도 계산 엔진(113)에 의한 어플리케이션 시스템(111)의 복잡도 계산 과정은, 도 2를 참조하여 상세히 후술한다.
출력부(120)는 모니터와 같은 정보 출력 수단이고, 입력부(140)는 키보드, 마우스 등의 사용자 입력 수단이며, 통신부(150)는 외부 네트워크, 외부 기기에 통신 연결하기 위한 수단이다. 본 발명의 실시예와 관련하여 출력부(120)에는 시스템 복잡도 계산결과가 다국어로 제공된다.
프로세서(130)는 컴퓨팅 시스템(100)의 전반적인 동작을 제어한다. 특히, 프로세서(130)는 시스템 복잡도 계산 엔진(113)을 실행하여, 어플리케이션 시스템(111)의 복잡도를 계산한다.
이하에서, 어플리케이션 시스템(111)의 복잡도를 계산하는 과정에 대해 도 2를 참조하여 상세히 설명한다.
도 2에 도시된 바와 같이, 먼저 프로세서(130)에 의해 실행된 시스템 복잡도 계산 엔진(113)은 프로그램 복잡도 계산환경을 설정한다(S210). 구체적으로, S210단계에서는, 프로그램 복잡도 단계와 가중치를 설정하게 되는데, 이들의 개념이 도 3에 나타나 있다.
프로그램 복잡도 단계 설정은, 후술할 복잡도 항목의 실제값에 대해 얼마의 복잡도 점수를 부여할 것인지 설정하는 것으로, 복잡도 항목 마다 설정되어져야 함은 물론, 시스템 별로도 각각 설정되어져야 한다.
예를 들어, 후술할 복잡도 항목들 중 하나인 "프로그램별 평균 내부 모듈 수(프로그램 내부 복잡도)"의 실제값이, 1) 5개 이하이면 복잡도 1점(하위 2단계), 2) 6~15개이면 복잡도 2점(하위 1단계), 3) 16-25개이면 복잡도 3점(기준선), 4) 26~35개이면 복잡도 4점(상위 1단계), 5) 36개 이상이면 복잡도 5점(상위 2단계)로 설정할 수 있다.
또한, 위 예가 인사 관리 시스템의 "프로그램별 평균 내부 모듈 수(프로그램 내부 복잡도)"에 대한 복잡도 단계들이라면, 파일 관리 시스템의 "프로그램별 평균 내부 모듈 수(프로그램 내부 복잡도)"에 대한 복잡도 단계들은 위와 다르게 설정될 수 있다.
복잡도 단계는 5단계가 아닌 다른 단계로 설정하는 것이 가능하다. 또한, 각 단계들에 대한 점수 간격도 위 예와 다르게 설정하는 것이 가능하다.
가중치 설정 역시, 복잡도 항목 마다 각기 다르게 설정될 수 있다. 예를 들어, "프로그램별 평균 내부 모듈 수(프로그램 내부 복잡도)"의 가중치는 1로 설정하고, 후술할 복잡도 항목들 중 가장 주요한 항목들인 "프로그램별 Call Depth(프로그램 연관 복잡도)"와 "프로그램별 DB Call Depth(DB 테이블 구성 복잡도)"에 대해서는 가중치를 3으로 설정할 수 있다.
이밖에도, 계산환경 설정시에는, 프로그램 라인 단위 명령어 단위 등과 같은 기준 단위/정보 등이 설정된다.
이후, 복잡도 계산을 위해, 가장 먼저 시스템 복잡도 계산 엔진(113)은 어플리케이션 시스템(111)을 구성하는 프로그램들을 토큰 단위로 파싱한다(S220).
그리고, 시스템 복잡도 계산 엔진(113)은 S220단계에서 파싱된 프로그램들을 분석하여, 시스템 데이터들을 생성한다(S230). 시스템 데이터들에는 다음과 같은 데이터들이 포함된다.
1) 전체 프로그램 본수(PN)[ =∑(프로그램 개수)]
어플리케이션 시스템(111)을 구성하는 프로그램들의 개수
2) 전체 내부모듈 개수(MN)[ =∑(프로그램 내부모듈 개수)]
어플리케이션 시스템(111)을 구성하는 프로그램들에 포함된 내부모듈 개수들의 총합
3) 전체 프로그램 라인수(PL)[ =∑(프로그램 소스라인수)]
어플리케이션 시스템(111)을 구성하는 프로그램들의 라인수들의 총합
4) 전체 오퍼레이터수(OP)[ =∑(프로그램 내의 오퍼레이터 수)]
어플리케이션 시스템(111)을 구성하는 프로그램들에 포함된 오퍼레이터수들의 총합
5) 전체 오퍼렌드수(ON)[ =∑(프로그램 내의 오퍼렌드 수)]
어플리케이션 시스템(111)을 구성하는 프로그램들에 포함된 오퍼렌드수들의 총합
6) 전체 IF Depth(IFD)[ =∑( IF문의 Depth 수)]
어플리케이션 시스템(111)을 구성하는 프로그램들에 포함된 IF문들에 대한 Depth들의 총합
7) 전체 내부 호출수(MC)[ =∑(프로그램 내부 호출 수)]
어플리케이션 시스템(111)을 구성하는 프로그램들에 포함된 내부 호출수들의 총합
8) 전체 외부 호출수(PC)[ =∑(프로그램 외부 호출 수)]
어플리케이션 시스템(111)을 구성하는 프로그램들에 포함된 외부 호출수들의 총합
9) 전체 Call Depth(CD)[ =∑(프로그램 호출 DEPTH)]
어플리케이션 시스템(111)을 구성하는 프로그램들에 포함된 프로그램 호출들에 대한 Depth들의 총합
10) 전체 DB 호출수(DC)[ =∑(프로그램 DB 호출 수)]
어플리케이션 시스템(111)을 구성하는 프로그램들에 포함된 DB 호출수들의 총합
11) 전체 DB Call Depth(DCD)[ =∑(DB CALL Depth 수)]
어플리케이션 시스템(111)을 구성하는 프로그램들에 포함된 DB 호출들에 대한 Depth들의 총합
12) 전체 DB 테이블 개수(TC)[ =∑(DB 테이블 개수)]
어플리케이션 시스템(111)을 구성하는 프로그램들에 포함된 DB 테이블 개수들의 총합
다음, 시스템 복잡도 계산 엔진(113)은 S230단계에서 생성된 시스템 데이터들을 기초로, 복잡도 항목들을 산출한다(S240). 복잡도 항목들에는 다음과 같은 항목들이 포함된다.
1) 프로그램별 평균 내부 모듈 수(프로그램 내부 복잡도)
= 전체 내부모듈 개수(MN) / 전체 프로그램 본수(PN)
2) 내부모듈별 평균 소스라인 수(내부 모듈 복잡도)
= 전체 프로그램 라인수(PL) / 전체 내부모듈 개수(MN)
3) 내부모듈별 평균 오퍼레이터수(내부 모듈 복잡도)
= 전체 오퍼레이터수(OP) / 전체 내부모듈 개수(MN)
4) 내부모듈별 평균 오퍼렌드 수(내부 모듈 복잡도)
= 전체 오퍼렌드수(ON) / 전체 내부모듈 개수(MN)
5) 프로그램별 IF Depth(IFD)(프로그램 로직 복잡도)
= 전체 IF Depth(IFD) / 전체프로그램 본수(PN)
6) 프로그램별 내부호출수(프로그램 로직 복잡도)
= 전체 내부호출수(MC) / 전체프로그램 본수(PN)
7) 프로그램별 외부 호출수(프로그램 연관 복잡도)
= 전체 외부호출수(PC) / 전체프로그램 본수(PN)
8) 프로그램별 Call Depth(프로그램 연관 복잡도)
= 전체 Call Depth (CD) / 전체프로그램 본수(PN)
9) 프로그램별 DB 호출수(DC)(프로그램 DB 호출 복잡도)
= 전체 DB 호출수(DC) / 전체프로그램 본수(PN)
10) 프로그램별 DB Call Depth(DB 테이블 처리 복잡도)
= 전체 DB Call Depth(DCD) / 전체프로그램 본수(PN)
11) 프로그램별 DB Call Depth(DB 테이블 구성 복잡도)
= 전체 DB Call Depth(DCD) / 전체 DB 테이블 개수(TC)
S240단계에서의 복잡도 항목 산출에서는, 전술한 S210단계에서 설정된 프로그램 복잡도 단계가 이용된다. 위 예의 경우, "프로그램별 평균 내부 모듈 수(프로그램 내부 복잡도)"의 실제값이 10개이면, 2점이 부여되는 것이다.
이후, 시스템 복잡도 계산 엔진(113)은 S250단계에서 산출된 복잡도 항목들을 종합하여, 시스템 복잡도를 계산한다(S250). S250단계에서의 시스템 복잡도 계산은, 복잡도 항목들을 합산하되 S210단계에서 설정된 가중치들을 반영한다. 시스템 복잡도는 아래의 수학식으로 계산된다.
시스템 복잡도 = ∑ 가중치×(복잡도 항목 점수)
다음, 시스템 복잡도 계산 엔진(113)은 컴퓨팅 시스템(100)에 대해 사용자가 설정한 국가 언어를 파악한다(S260).
그리고, 시스템 복잡도 계산 엔진(113)은 S250단계에서 계산된 시스템 복잡도를 S260단계에서 파악된 국가 언어로 출력부(120)에 출력하여 사용자에게 제공한다(S270).
만약, 사용자가 시스템 복잡도를 제공받을 국가 언어를 개별적으로 설정한 경우에는 그 국가 언어로 출력이 이루어지도록 구현함이 바람직하다.
S270단계에서는, 시스템 복잡도 외에 이에 대한 코멘트를 함께 제공할 수 있다. 코멘트 역시 사용자가 설정한 국가 언어로 출력된다.
코멘트는, 시스템 복잡도 전체에 대한 코멘트는 물론, 복잡도 항목들 각각에 대한 코멘트들이 포함된다. 후자의 경우 복잡도 점수가 높게 산출된 복잡도 항목들에 대해서만 제공되도록 구현하는 것도 가능하다.
코멘트는, 예를 들어, "프로그램별 평균 내부 모듈 수가 과다하여, 판독(이해)가 어려울 수 있습니다.", "프로그램별 평균 내부 모듈 기능이 지나치게 세분화되어 판독(이해)가 어려울 수 있습니다."와 같이 제공된다.
S270단계를 위해, 시스템 복잡도 계산 엔진(113)은 코멘트들을 다국어로 저장하고 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100 : 컴퓨팅 시스템 110 : 저장부
111 : 어플리케이션 시스템 113 : 시스템 복잡도 계산 엔진
120 : 출력부 130 : 프로세서
140 : 입력부 150 : 통신부

Claims (8)

  1. 프로그램 복잡도 계산환경을 설정하는 단계;
    시스템을 구성하는 프로그램들을 파싱하는 단계;
    파싱된 프로그램들을 분석하여, 시스템 데이터들을 생성하는 단계;
    생성된 시스템 데이터들을 기초로, 복잡도 항목들을 산출하는 단계; 및
    산출된 복잡도 항목들을 종합하여, 시스템 복잡도를 계산하는 단계;를 포함하고,
    상기 계산환경은,
    복잡도 항목의 실제값에 대해 부여할 점수가 배정된 복잡도 단계 및 상기 복잡도 항목들 각각에 대한 가중치를 포함하는 것을 특징으로 하는 시스템 복잡도 계산방법.
  2. 삭제
  3. 제 1항에 있어서,
    상기 복잡도 단계 및 상기 가중치는,
    상기 시스템의 종류에 따라 각기 다르게 설정되는 것을 특징으로 하는 시스템 복잡도 계산방법.
  4. 시스템을 구성하는 프로그램들을 파싱하는 단계;
    파싱된 프로그램들을 분석하여, 시스템 데이터들을 생성하는 단계;
    생성된 시스템 데이터들을 기초로, 복잡도 항목들을 산출하는 단계; 및
    산출된 복잡도 항목들을 종합하여, 시스템 복잡도를 계산하는 단계;를 포함하고,
    상기 시스템 데이터 생성단계는,
    전체 프로그램 본수(PN), 전체 내부모듈 개수(MN). 전체 프로그램 라인수(PL), 전체 오퍼레이터수(OP), 전체 오퍼렌드수(ON), 전체 IF Depth(IFD), 전체 내부 호출수(MC), 전체 외부 호출수(PC), 전체 Call Depth(CD), 전체 DB 호출수(DC), 전체 DB Call Depth(DCD) 및 전체 DB 테이블 개수(TC) 중 적어도 하나를 생성하는 것을 특징으로 하는 시스템 복잡도 계산방법.
  5. 시스템을 구성하는 프로그램들을 파싱하는 단계;
    파싱된 프로그램들을 분석하여, 시스템 데이터들을 생성하는 단계;
    생성된 시스템 데이터들을 기초로, 복잡도 항목들을 산출하는 단계; 및
    산출된 복잡도 항목들을 종합하여, 시스템 복잡도를 계산하는 단계;를 포함하고,
    상기 복잡도 항목 산출단계는,
    프로그램별 평균 내부 모듈 수(프로그램 내부 복잡도), 내부모듈별 평균 소스라인 수(내부 모듈 복잡도), 내부모듈별 평균 오퍼레이터수(내부 모듈 복잡도), 내부모듈별 평균 오퍼렌드 수(내부 모듈 복잡도), 프로그램별 IF Depth(IFD)(프로그램 로직 복잡도), 프로그램별 내부호출수(프로그램 로직 복잡도), 프로그램별 외부 호출수(프로그램 연관 복잡도), 프로그램별 Call Depth(프로그램 연관 복잡도), 프로그램별 DB 호출수(DC)(프로그램 DB 호출 복잡도), 프로그램별 DB Call Depth(DB 테이블 처리 복잡도) 및 프로그램별 DB Call Depth(DB 테이블 구성 복잡도) 중 적어도 하나를 산출하는 것을 특징으로 하는 시스템 복잡도 계산방법.
  6. 제 1항에 있어서,
    계산된 복잡도를 코멘트와 함께 출력하는 단계;를 더 포함하는 것을 특징으로 하는 시스템 복잡도 계산방법.
  7. 제 6항에 있어서,
    상기 출력단계는,
    사용자가 설정한 국가의 언어로 출력하는 것을 특징으로 하는 시스템 복잡도 계산방법.
  8. 프로그램 복잡도 계산환경을 설정하는 단계;
    시스템을 구성하는 프로그램들을 파싱하는 단계;
    파싱된 프로그램들을 분석하여, 시스템 데이터들을 생성하는 단계;
    생성된 시스템 데이터들을 기초로, 복잡도 항목들을 산출하는 단계; 및
    산출된 복잡도 항목들을 종합하여, 시스템 복잡도를 계산하는 단계;를 포함하고,
    상기 계산환경은,
    복잡도 항목의 실제값에 대해 부여할 점수가 배정된 복잡도 단계 및 상기 복잡도 항목들 각각에 대한 가중치를 포함하는 것을 특징으로 하는 시스템 복잡도 계산방법을 수행할 수 있는 프로그램이 수록된 컴퓨터로 읽을 수 있는 기록매체.
KR1020120128786A 2012-11-14 2012-11-14 시스템 복잡도 자동 계산방법 KR101441854B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120128786A KR101441854B1 (ko) 2012-11-14 2012-11-14 시스템 복잡도 자동 계산방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120128786A KR101441854B1 (ko) 2012-11-14 2012-11-14 시스템 복잡도 자동 계산방법

Publications (2)

Publication Number Publication Date
KR20140062289A KR20140062289A (ko) 2014-05-23
KR101441854B1 true KR101441854B1 (ko) 2014-09-22

Family

ID=50890597

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120128786A KR101441854B1 (ko) 2012-11-14 2012-11-14 시스템 복잡도 자동 계산방법

Country Status (1)

Country Link
KR (1) KR101441854B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101164849B1 (ko) * 2011-07-06 2012-07-11 (주)큐브젠소프트 소프트웨어 평가정보 제공방법, 기록매체, 및 평가정보 제공장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101164849B1 (ko) * 2011-07-06 2012-07-11 (주)큐브젠소프트 소프트웨어 평가정보 제공방법, 기록매체, 및 평가정보 제공장치

Also Published As

Publication number Publication date
KR20140062289A (ko) 2014-05-23

Similar Documents

Publication Publication Date Title
US9235494B2 (en) Automated code analyzer
US20140115402A1 (en) Method and system for postponed error code checks
CN110532084B (zh) 平台任务的调度方法、装置、设备及存储介质
US9329974B2 (en) Technologies for determining binary loop trip count using dynamic binary instrumentation
US10360004B2 (en) Using dynamic information to refine control flow graphs
CN109582661B (zh) 数据结构化评估方法、装置、存储介质及电子设备
US20130290215A1 (en) Generation of wbs model data
Şora A PageRank based recommender system for identifying key classes in software systems
CN110780879B (zh) 一种基于智能编译技术的决策执行方法、装置、设备及介质
CN111460620B (zh) 一种试验评估模型构建方法及系统
De Macedo et al. Webassembly versus javascript: Energy and runtime performance
GB2602238A (en) Language statement processing in computing system
CN115686631B (zh) 一种基于知识基的随机指令生成方法、装置及存储介质
Eismann et al. Modeling of parametric dependencies for performance prediction of component-based software systems at run-time
Singh et al. Prediction of testability using the design metrics for object–oriented software
US9336247B2 (en) Control data driven modifications and generation of new schema during runtime operations
CN109359055B (zh) 一种数据测试的方法和设备
CN113609008B (zh) 测试结果分析方法、装置和电子设备
CN105740135A (zh) 一种代码审计方法和装置
CN112130849B (zh) 代码自动生成方法及装置
KR101441854B1 (ko) 시스템 복잡도 자동 계산방법
CN102968305B (zh) 逻辑处理方法、装置及测评系统
CN109324949A (zh) 一种lua代码执行性能的静态分析方法
Stojkovski Thresholds for software quality metrics in open source android projects
JP2023053925A (ja) ビッグデータ管理システムに対してストレステストを最適に実行するコンピュータ実装方法、コンピュータプログラム及びシステム(ビッグデータ管理システムの最適なストレステストのためのワークロード生成)

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170725

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180911

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190916

Year of fee payment: 6