KR20230113933A - 프로그램 기능점수 측정 서버 및 시스템 - Google Patents

프로그램 기능점수 측정 서버 및 시스템 Download PDF

Info

Publication number
KR20230113933A
KR20230113933A KR1020220009807A KR20220009807A KR20230113933A KR 20230113933 A KR20230113933 A KR 20230113933A KR 1020220009807 A KR1020220009807 A KR 1020220009807A KR 20220009807 A KR20220009807 A KR 20220009807A KR 20230113933 A KR20230113933 A KR 20230113933A
Authority
KR
South Korea
Prior art keywords
function
program
transaction
measurement
point measurement
Prior art date
Application number
KR1020220009807A
Other languages
English (en)
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 KR1020220009807A priority Critical patent/KR20230113933A/ko
Publication of KR20230113933A publication Critical patent/KR20230113933A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

프로그램 기능점수 측정 서버 및 시스템이 개시된다. 본 발명의 일 실시예에 따른 프로그램 기능점수 측정 시스템은 측정 대상 정보를 제공하기 위한 복수의 개발 서버; 및 개발 서버로부터 데이터 기능 및 트랜잭션 기능을 포함하는 측정 대상 정보를 수신하여 테이블 레이아웃 기준으로 데이터 기능의 기능점수를 측정하고 프로그램 소스 기반으로 트랜잭션 기능의 기능점수를 측정하되, 패키지 마스터 및 코드 마스터의 기준정보를 이용하여 데이터 기능 및 트랜잭션 기능의 최초 측정 처리, 프로그램 변경에 따른 변경 측정 처리 및 데이터 기능 및 트랜잭션 기능의 기능점수 측정 결과를 분석하여 조정하는 조회 처리 중 어느 하나를 처리하는 프로그램 기능점수 측정 서버를 포함한다.

Description

프로그램 기능점수 측정 서버 및 시스템{SERVER AND SYSTEM FOR MEASURING FUNCTION POINT OF PROGRAM}
개시되는 실시예들은 프로그램 기능점수 측정 서버 및 시스템과 관련된다.
다양한 형태의 소프트웨어 개발이 진행됨에 따라, 사용자 관점에서 소프트웨어 개발 규모를 측정할 수 있는 국제 표준 기법인 기능점수(function point, FP) 측정 방식이 제안되고 있다.
상술한 기능점수 측정 방식은 사용자 관점에서 소프트웨어 규모를 산정하기 위한 것으로서, 논리적 설계를 기초로 소프트웨어가 사용자에게 제공하는 기능이 수를 수치로 정량화하고 소프트웨어의 규모를 산정하는 방식이다. 이때, 정확한 기능점수를 산출하기 위해서는 기능점수를 산출하는 대상을 명확히 하는 것이 중요하다.
대한민국 등록특허공보 제10-09010357호 (2009. 06. 01.)
개시된 실시예들은 프로그램의 기능점수를 보다 효율적이고 정확하게 측정하기 위한 프로그램 기능점수 측정 서버 및 시스템을 제공하고자 한다.
일 실시예에 따른 프로그램 기능점수 측정 시스템은 측정 대상 정보를 제공하기 위한 복수의 개발 서버; 및 상기 개발 서버로부터 데이터 기능 및 트랜잭션 기능을 포함하는 상기 측정 대상 정보를 수신하여 테이블 레이아웃 기준으로 상기 데이터 기능의 기능점수를 측정하고 프로그램 소스 기반으로 상기 트랜잭션 기능의 기능점수를 측정하되, 패키지 마스터 및 코드 마스터의 기준정보를 이용하여 상기 데이터 기능 및 상기 트랜잭션 기능의 최초 측정 처리, 프로그램 변경에 따른 변경 측정 처리 및 상기 데이터 기능 및 상기 트랜잭션 기능의 기능점수 측정 결과를 분석하여 조정하는 조회 처리 중 어느 하나를 처리하는 프로그램 기능점수 측정 서버를 포함한다.
상기 프로그램 기능점수 측정 서버는, 로그성 테이블인지 여부, 기능점수 측정 대상 필드인지 여부를 고려한 테이블의 필드 개수, 테이블의 논리적 관계를 기초한 논리적 테이블 병합(merge) 및 이들의 조합을 기초한 분석을 통해 상기 데이터 기능의 기능점수를 산출할 수 있다.
상기 프로그램 기능점수 측정 서버는, 상기 데이터 기능의 기능점수 산출 시, 상기 패키지 마스터를 통해 측정 대상 테이블을 리드하고, 상기 코드 마스터를 통해 기능점수 측정이 요구되지 않는 무의미 필드를 비롯한 예외 조건 및 로그성 테이블을 리드할 수 있다.
상기 프로그램 기능점수 측정 서버는, 신규 개발 테이블 기능의 기능점수를 측정하여 상기 최초 측정 처리하고, 측정 대상 테이블이 변경된 경우 최초 측정 시의 기능점수를 기준으로 변경된 기능점수를 측정하여 상기 변경 측정 처리를 수행할 수 있다.
상기 프로그램 기능점수 측정 서버는, 사용자의 조작에 따라 복수의 논리적 테이블을 병합하여 하나의 논리적 테이블 그룹으로 생성하고, 기능점수 측정 시 논리적 테이블 그룹 내 특정 논리적 테이블이 선택되면 상위개념의 상기 논리적 테이블 그룹이 선택된 것으로 인식할 수 있다.
상기 프로그램 기능점수 측정 서버는, 기 설정된 조건 또는 사용자의 조작에 따라 복수의 필드 중 기능점수 산출 미대상인 필드를 삭제 처리할 수 있다.
상기 프로그램 기능점수 측정 서버는, 기능점수 측정 대상에서 누락된 필드를 기능점수 측정 대상에 추가 처리할 수 있다.
상기 프로그램 기능점수 측정 서버는, 상기 변경 처리 측정 시, 측정 대상의 테이블 전체에 대한 기능점수의 재 측정 결과와 상기 최초 측정 처리 결과의 기능점수를 비교하여 추가, 삭제, 속성 변경 및 필드 변경을 비롯한 변경된 테이블의 기능점수를 산출하되, 상기 측정 대상 테이블에 병합(merge), 추가 및 삭제된 테이블 정보를 반영하여 상기 변경 처리 측정을 수행할 수 있다.
상기 프로그램 기능점수 측정 서버는, 신규 개발 프로그램 기능의 기능점수를 측정하여 상기 최초 측정 처리를 수행하고, 측정 대상 프로그램이 변경된 경우 최초 측정 시의 기능점수를 기준으로 변경된 기능점수를 측정하여 상기 변경 측정 처리를 수행할 수 있다.
상기 프로그램 기능점수 측정 서버는, 측정 대상 프로그램의 텍스트의 소스 코드를 스캔하여 단어 기준으로 토크나이징(tokenizing)하여 토큰으로 분리하고, 분리된 토큰 목록 내 각 토큰의 소스 분석을 통해 트랜잭션 트리로 재구성하여 상기 트랜잭션 기능의 기능점수를 산출할 수 있다.
상기 프로그램 기능점수 측정 서버는, 상기 코드 마스터의 기준 정보를 기초로 측정 대상 프로그램의 트랜잭션 기능을 각각 구분하되, 화면 기준, 타입 기준을 비롯한 최소기능 단위로 분류하여 트랜잭션 기능의 개수를 파악할 수 있다.
상기 트랜잭션 트리는 리프 노드(leaf node) 및 루트 노드(root node)를 포함하고, 상기 프로그램 기능점수 측정 서버는, 상기 트랜잭션 기능의 기능점수 산출 시, 상기 리프 노드인 토큰이 속한 상기 루트 노드를 탐색하여 트랜잭션 기능을 구분하되, 상기 토큰이 속한 코딩블록을 파악하고 상기 트랜잭션 트리 내 상기 리프 노트에서 상기 루트 노드 방향으로 탐색하여 트랜잭션 기능을 구분하며, 상기 코딩블록은 폼(form), 메소드(method) 및 글로벌(global)을 포함할 수 있다.
상기 프로그램 기능점수 측정 서버는, 상기 토큰의 코딩블록이 상기 글로벌이거나 또는 루트 노드 탐색에 실패한 경우, 해당 토큰을 메인 트랜잭션 기능으로 분류할 수 있다.
상기 프로그램 기능점수 측정 서버는, 특정 토큰이 복수의 트랜잭션 기능에 포함되는 경우, 해당 토큰을 각각의 트랜잭션 기능에 각각 포함되도록 분류할 수 있다.
상기 측정 대상 정보는, 각각의 시스템 아이디, 어플리케이션 아이디, 오브젝트 네임 및 변경 아이디가 매칭된 상기 데이터의 정보 및 상기 트랜잭션의 정보를 포함할 수 있다.
상기 프로그램 기능점수 측정 서버는, 상기 트랜잭션 기능의 기능점수 산출 시, 트랜잭션 기능 추가 및 타입 변경을 비롯한 사용자 조정 기능을 제공할 수 있다.
상기 데이터 기능 및 상기 트랜잭션 기능은 ABAP(Advanced Business Application Programming)을 기초로 개발된 프로그램의 데이터 기능 및 트랜잭션 기능일 수 있다.
상기 프로그램 기능점수 측정 서버는 상기 복수의 개발 서버를 리모트 기능 콜(remote function call, RFC) 호출하여 상기 측정 대상 정보를 요청 및 수신할 수 있다.
상기 프로그램 기능점수 측정 서버는, 상기 조회 처리 시, 기 저장된 상기 데이터 기능의 기능점수 및 상기 트랜잭션 기능의 기능점수에 추가(add) 처리, 삭제(delete) 처리, 삭제 취소(cancel delete) 처리 및 병합(merge) 처리 중 적어도 하나 이상의 처리를 수행하여 상기 데이터 기능 및 상기 트랜잭션 기능의 기능점수 측정 결과를 조정하고, 상기 병합 처리는 동일 기능에 해당하는 복수의 레코드 요소 유형(record element type, RET)을 병합하는 것일 수 있다.
다른 실시예에 따른 프로그램 기능점수 측정 서버는, 데이터 기능 및 트랜잭션 기능을 포함하는 측정 대상 정보를 수신하여 테이블 레이아웃 기준으로 상기 데이터 기능의 기능점수를 측정하고 프로그램 소스 기반으로 상기 트랜잭션 기능의 기능점수를 측정하되, 패키지 마스터 및 코드 마스터의 기준정보를 이용하여 상기 데이터 기능 및 상기 트랜잭션 기능의 최초 측정 처리 및 프로그램 변경에 따른 변경 측정 처리를 수행하는 기능점수 측정부; 기 저장된 상기 데이터 기능의 기능점수 및 상기 트랜잭션 기능의 기능점수에 추가(add) 처리, 삭제(delete) 처리, 삭제 취소(cancel delete) 처리 및 병합(merge) 처리 중 적어도 하나 이상의 처리를 수행하여 상기 데이터 기능 및 상기 트랜잭션 기능의 기능점수 측정 결과를 조정하는 조회부; 및 측정 대상 정보, 기능점수 측정 기준 및 상기 데이터 기능 및 상기 트랜잭션 기능의 기능점수 측정 결과를 비롯하여 각종 정보를 저장하는 저장 장치를 포함한다.
개시되는 실시예들에 따르면, 프로그램의 기능점수 측정 대상의 신뢰도를 향상시키고, 이를 기초로 측정되는 기능점수의 결과에 대한 신뢰도 역시 향상시킬 수 있다는 효과를 기대할 수 있다.
또한, 개시되는 실시예들은 ABAP(Advanced Business Application Programming) 프로그램의 기능점수(function point)를 자동으로 산출할 수 있다는 것이다.
또한, 개시되는 실시예들은 ISO/IFPUG CPM4.3.1과 같은 국제표준 기반 기능점수 자동 측정으로 측정결과에 대한 고객 신뢰도를 향상시킬 수 있다는 것이다.
또한, 개시되는 실시예들은 기능점수 자동 측정이 가능하여, 기존 수작업 기반 기능점수 측정 대비 기능점수 측정 시간을 단축시킬 수 있다는 것이다.
또한, 개시되는 실시예들은 기능점수 측정 기준, 변경률 산정 공식 등 기능점수 측정과 관련된 각종 정책 변경 시 변경된 규칙을 일괄적으로 신속하게 기능점수 측정 시 반영할 수 있다는 것이다.
도 1은 일 실시예에 따른 프로그램 기능점수 측정 시스템을 설명하기 위한 블록도
도 2 및 도 3은 일 실시예에 따른 데이터 기능의 기능점수를 측정하는 방법을 설명하기 위한 화면 예시도
도 4는 일 실시예에 따른 트랜잭션 기능의 기능점수를 측정하는 방법을 설명하기 위한 일 예시도
도 5는 일 실시예에 따른 트랜잭션 기능의 기능점수를 측정하는 방법을 설명하기 위한 다른 예시도
도 6 내지 도 10은 일 실시예에 따른 트랜잭션 기능의 기능점수를 측정하는 방법을 설명하기 위한 화면 예시도
도 11은 일 실시예에 따른 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 일 실시예에 따른 프로그램 기능점수 측정 시스템을 설명하기 위한 블록도이다.
도 1을 참고하면, 프로그램 기능점수 측정 시스템(1000)은 개발 서버(development server)(100) 및 프로그램 기능점수 측정 서버(200)를 포함한다.
본 실시예들에서 개시하는 데이터 기능 및 트랜잭션 기능은 ABAP(Advanced Business Application Programming)을 기초로 개발된 프로그램의 데이터 기능 및 트랜잭션 기능일 수 있다.
개발 서버(100)는 측정 대상 정보를 제공하기 위한 구성으로서, 복수 개일 수 있다.
복수 개의 개발 서버(100) 각각은 프로그램 기능점수 측정 서버(200)로부터의 리모트 기능 콜(remote function call, RFC) 호출에 따라, 테이블, 뷰(view), 프로그램(program), 클래스(class), 기능(function), 웹딘(webdyn)을 포함하는 데이터 기능 및 트랜잭션 기능의 기능점수 측정을 위한 측정 대상 정보를 전달할 수 있다.
프로그램 기능점수 측정 서버(200)는 개발 서버(100)로부터 데이터 기능 및 트랜잭션 기능을 포함하는 측정 대상 정보를 수신하여 테이블 레이아웃 기준으로 데이터 기능의 기능점수를 측정하고 프로그램 소스 기반으로 트랜잭션 기능의 기능점수를 측정하되, 패키지 마스터(package master) 및 코드 마스터(code master)의 기준정보를 이용하여 데이터 기능 및 트랜잭션 기능의 최초 측정 처리, 프로그램 변경에 따른 변경 측정 처리 및 데이터 기능 및 트랜잭션 기능의 기능점수 측정 결과를 분석하여 조정하는 조회 처리 중 어느 하나를 처리할 수 있다. 상술한 코드 마스터는 권한, 측정대상 개발 서버 등 ABAP FP 측정 시 필요항목을 코드로 정의한 테이블을 의미하는 것일 수 있다. 코드 마스터는 로그성 테이블을 비롯한 개발 서버의 접속 정보, 권한 관리 정보, 기준형 모델, 테이블 구분 조건, 사용자 무의미 필드를 비롯한 예외 조건을 포함할 수 있다. 상술한 패키지 마스터는 ABAP FP(Advanced Business Application Programming Function Point) 측정대상 패키지 및 측정대상 개발 서버 데이터를 정의한 테이블을 의미할 수 있다. 패키지 마스터는 프로그램 패키지를 포함할 수 있다. 상술한 패키지(package)는 프로그램과 같은 오브젝트(object)를 기능별로 관리하기 위한 것으로서, 소스 코드를 업무영역별로 구분하려고 생성된 프로그램의 집합으로, 개발 오브젝트를 논리적으로 구현하는 최상위 단위를 의미할 수 있다.
프로그램 기능점수 측정 서버(200)는 복수의 개발 서버(100)를 리모트 기능 콜(remote function call, RFC) 호출하여 측정 대상 정보를 요청 및 수신할 수 있다. 예를 들어, 프로그램 기능점수 측정 서버(200)는 테이블 리스트 및 프로그램 리스트를 개발 서버(100)로 요청할 수 있다. 개발 서버(100) 역시 프로그램 기능점수 측정 서버(200)로 기능점수 측정 결과를 요청하여 수신할 수 있다.
상기 측정 대상 정보는 각각의 시스템 아이디(system ID), 어플리케이션 아이디(application ID), 오브젝트 네임(object name) 및 변경 아이디(change number)가 매칭된 데이터의 정보 및 트랜잭션의 정보를 포함할 수 있다.
프로그램 기능점수 측정 서버(200)는 수행이력이 없거나 초기화가 필요한 테이블(table) 및 프로그램(program)을 대상으로 기능점수(function point, FP) 측정을 최초 측정(Estimate FP from Scratch) 처리를 수행할 수 있다. 이때, 프로그램 기능점수 측정 서버(200)는 개발 서버(100)를 RFC 호출하여, 대상 개발서버(100)에 등록된 테이블 기능 및 프로그램 기능의 조회 및 기능점수 측정을 수행할 수 있다.
또한, 프로그램 기능점수 측정 서버(200)는 최초 측정 처리 이후, 테이블 및 프로그램 변경에 따른 변경된 기능점수를 재 측정하는 변경 측정(Estimate FP changes) 처리를 수행할 수 있다. 이때, 프로그램 기능점수 측정 서버(200)는 개발 서버(100)를 RFC 호출하여, 대상 개발서버(100)에 등록된 테이블 기능 및 프로그램 기능의 조회 및 기능점수 측정을 수행할 수 있다.
프로그램 기능점수 측정 서버(200)는 최초 측정 처리 및 변경 측정 처리된 기능점수를 대상으로 등록점수를 조정하는 조회 처리를 수행할 수 있다. 이때, 조회 처리는 최초 측정 처리 및 변경 측정 처리에서 측정된 데이터를 기반으로 사용자의 판단 하에 이루어질 수 있다. 이를 위해, 프로그램 기능점수 측정 서버(200)는 사용자의 제어 정보 입력을 위한 사용자 인터페이스를 비롯한 각종 기능을 제공할 수 있다.
프로그램 기능점수 측정 서버(200)는 최초 측정 처리 및 변경 측정 처리 시 STD(standard) 테이블 및 프로그램을 측정 대상에서 자동 제외 처리할 수 있다. 이때, STD는 ABAP 기본 구성 테이블 또는 프로그램일 수 있다.
프로그램 기능점수 측정 서버(200)는 상술한 STD 테이블 및 프로그램 외에 추가해야 할 테이블 및 프로그램이 있거나, 미 사용 테이블 및 프로그램이 있을 경우, 조회 처리 시, 추가(add), 삭제(delete), 삭제 취소(cancel delete) 기능의 조정작업을 수행할 수 있다. 이때, 삭제 취소 기능은 사용자의 인적 실수 보완을 위해 삭제 기능을 취소 할 수 있는 기능을 의미할 수 있다.
한편, 도시하지 않았지만, 프로그램 기능점수 측정 서버(200)는 개발 서버(100) 이외에 Solman과 같은 솔루션 매니저로 데이터 기능의 기능점수 및 트랜잭션 기능의 기능점수를 비롯한 각종 정보의 조회 요청에 따라 제공할 수 있다. 이때, 프로그램 기능점수 측정 서버(200) 및 솔루션 매니저 간의 정보 송수신 시 리모트 기능 콜 호출 기능을 적용할 수 있다. 또한, 프로그램 기능점수 측정 서버(200) 및 솔루션 매니저 간에는 각종 결과 조회 및 제공(예를 들어, 기능점수 측정 결과 출력 및 다운로드 형태)을 위한 인터페이스 기능이 구현될 수 있다.
즉, 프로그램 기능점수 측정 서버(200)는 타 시스템에서 RFC 호출을 통해 ABAP 기능점수 측정 결과를 인터페이스(I/F) 호출함에 따라, 인터페이스 수행시점에 데이터 기능의 기능점수를 산정하고, 기 산정된 트랜잭션 기능의 기능점수를 저장 장치로부터 조회하여 회신할 수 있다. 본 실시예에서는 데이터 기능의 기능점수를 실제 사용되는 레코드 요소 유형(record element type, RET) 만을 대상으로 측정할 수 있다. 이에, 본 실시예에서는 트랜잭션 기능의 기능점수 측정 결과를 기반으로 데이터 기능의 실사용 여부를 판단 후 기능점수를 측정할 수 있다.
이하에서는, 데이터 기능 및 트랜잭션 기능의 기능점수 산출 방법을 보다 상세히 설명하기로 한다.
먼저, 데이터 기능은 내부 및 외부 자료 요구사항을 만족시키기 위해 사용자에게 제공되는 기능을 의미하는 것으로서, 내부 논리 파일(internal logical file, ILF)과 외부 연계 파일(external interface file, EIF)을 포함할 수 있다.
본 실시예에서, 프로그램 기능점수 측정 서버(200)는 테이블의 기능점수를 산출하여 데이터 기능의 기능점수를 측정할 수 있다. 데이터 기능의 기능점수는 내부 논리 파일과 외부 연계 파일 모두의 데이터 요소 유형(data element type, DET)의 개수 및 레코드 요소 유형(record element type, RET)를 기초로 산출할 수 있다. 예를 들어, 프로그램 기능점수 측정 서버(200)는 테이블의 개수, 테이블의 필드의 개수, 화면 개수, 화면 상에 사용자에게 보여주는 필드의 개수를 기초로 테이블의 기능점수를 산출할 수 있다.
보다 상세히 설명하면, 프로그램 기능점수 측정 서버(200)는 로그성 테이블인지 여부, 기능점수 측정 대상 필드인지 여부를 고려한 테이블의 필드 개수, 테이블의 논리적 관계를 기초한 논리적 테이블 병합(merge) 및 이들의 조합을 기초한 분석을 통해 상기 데이터 기능의 기능점수를 산출할 수 있다. 예를 들어, 테이블의 논리적 관계는 부모 테이블과 자식 테이블 또는 헤더와 디테일과 같을 수 있다.
프로그램 기능점수 측정 서버(200)는 데이터 기능의 기능점수 산출 시, 패키지 마스터를 통해 측정 대상 테이블을 리드하고, 코드 마스터를 통해 기능점수 측정이 요구되지 않는 무의미 필드를 비롯한 예외 조건 및 로그성 테이블을 리드할 수 있다.
프로그램 기능점수 측정 서버(200)는 신규 개발 테이블 기능의 기능점수를 측정하여 최초 측정 처리하고, 측정 대상 테이블이 변경된 경우 최초 측정 시의 기능점수를 기준으로 변경된 기능점수를 측정하여 변경 측정 처리를 수행할 수 있다.
프로그램 기능점수 측정 서버(200)는 데이터 기능의 기능점수를 최초 측정(Estimate FP from Scratch) 처리할 때, STD(standard) 테이블을 제외한 CBO(Customer Bolt-On) 테이블 및 CDS(Core Data Service) 테이블을 측정 대상으로 선정할 수 있다. 이때, STD 테이블은 ABAP 기본구성 테이블을 의미할 수 있다. 상기 CBO 테이블은 표준기능으로 테이블에 영향을 미치지 않는 상태에서 추가기능을 개발한 테이블을 의미할 수 있다. CDS 테이블은 데이터 모델을 정의하고 사용하기 위한 기능을 뜻하는 것으로서, 테이블의 조합으로 이루어진 가상의 테이블인 뷰(View)를 의미할 수 있다.
프로그램 기능점수 측정 서버(200)는 패키지 기준으로 모듈 및 시스템 코드를 리드한 후, 데이터 요소 유형(DET)을 카운팅할 수 있다. 이때, 레코드 요소 유형(RET)은 테이블 단위로 디폴트(Default) 1로 고정하고, 사용자의 판단에 따라 변경 진행할 수 있다. 병합(merge) 수행 전에는 시스템에서 사용 유무를 판단 할 수 없으므로 사용자의 판단 하에 병합 처리를 수행하여 레코드 요소 유형을 변경할 수 있다.
본 실시예에서는 다수의 레코드 요소 유형(RET) 중 실제 사용되는 레코드 요소 유형(RET) 만을 대상으로 데이터 기능의 기능점수를 측정할 수 있다. 이에, 본 실시예는 트랜잭션 기능의 기능점수 측정 결과를 기반으로 실사용 여부를 판단한 후 데이터 기능의 기능점수를 측정할 수 있다.
프로그램 기능점수 측정 서버(200)는 변경 처리 측정 시, 측정 대상의 테이블 전체에 대한 기능점수의 재 측정 결과와 상기 최초 측정 처리 결과의 기능점수를 비교하여 추가, 삭제, 속성 변경 및 필드 변경을 비롯한 변경된 테이블의 기능점수를 산출하되, 측정 대상 테이블에 병합(merge), 추가 및 삭제된 테이블 정보를 반영하여 변경 처리 측정을 수행할 수 있다.
구체적으로, 프로그램 기능점수 측정 서버(200)는 변경 측정(Estimate FP changes) 처리 시, 기 측정된 레코드 요소 유형(RET) 및 데이터 요소 유형(DET)의 내역을 조회할 수 있다. 이후 프로그램 기능점수 측정 서버(200)는 레코드 요소 유형(RET) 및 데이터 요소 유형(DET)의 현재상태를 조회하고 기존 저장내역과 비교하여 변화량을 측정할 수 있다.
도 2 및 도 3은 일 실시예에 따른 데이터 기능의 기능점수를 측정하는 방법을 설명하기 위한 화면 예시도이다.
프로그램 기능점수 측정 서버(200)는 사용자의 조작에 따라 복수의 논리적 테이블을 병합하여 하나의 논리적 테이블 그룹으로 생성하고, 기능점수 측정 시 논리적 테이블 그룹 내 특정 논리적 테이블이 선택되면 상위개념의 논리적 테이블 그룹이 선택된 것으로 인식할 수 있다. 프로그램 기능점수 측정 서버(200)는 기 설정된 조건 또는 사용자의 조작에 따라 복수의 필드 중 기능점수 산출 미대상인 필드를 삭제 처리할 수 있다. 프로그램 기능점수 측정 서버(200)는 기능점수 측정 대상에서 누락된 필드를 기능점수 측정 대상에 추가 처리할 수 있다.
구체적으로, 도 2를 참고하면, 프로그램 기능점수 측정 서버(200)는 조회(maintenance) 처리 시, 최초 측정 처리 및 변경 측정 처리의 수행내역을 조회 할 수 있다. 프로그램 기능점수 측정 서버(200)는 저장된 데이터 기능의 기능점수 측정 결과를 조회한 후, 추가(add) 기능을 사용하여 레코드 요소 유형(RET) 및 데이터 요소 유형(DET)의 변화량을 추가할 수 있으며, 불필요한 레코드 요소 유형(RET) 및 데이터 요소 유형(DET)은 삭제(delete) 기능을 사용하여 삭제 처리할 수 있다. 이때, 프로그램 기능점수 측정 서버(200)는 삭제내역을 복원할 수 있는 삭제 취소(cancel delete) 기능을 제공할 수 있다.
또한, 프로그램 기능점수 측정 서버(200)는 사용자에 의해 N개의 레코드 요소 유형(RET)이 1개의 기능을 수행한다고 판단될 경우, 병합 기능을 통해 레코드 요소 유형(RET) 병합 처리를 수행할 수 있다.
예를 들어, 도 3을 참고하면, 프로그램 기능점수 측정 서버(200)는 최초 측정 시, 1개의 테이블이 1개의 레코드 요소 유형(RET)으로 조회된 후, 사용자의 화면구성에 따라 N개의 레코드 요소 유형(RET)가 1개의 레코드 요소 유형(RET)로 변환될 필요성이 발생할 수 있다. 즉, 사용자 기능이 1개인데 N개의 레코드 요소 유형(RET)이 사용될 경우, 1개의 레코드 요소 유형(RET)으로 판단할 수 있는 것이다. 프로그램 기능점수 측정 서버(200)는 N개의 레코드 요소 유형(RET)을 1개의 레코드 요소 유형(RET)으로 합치는 병합(merge) 기능(도 3의 A 참고)을 수행하는데, 병합 수행여부에 따라 트랜잭션 기능의 기능점수의 참조 파일 유형(file type reference, FTR) 개수가 변할 수 있다.
상술한 병합 기능은 데이터 기능의 기능점수 측정 시에 수행되는 경우, 해당 레코드 요소 유형(RET)을 사용하는 트랜잭션 기능의 기능점수 측정 시에도 일관 적용될 수 있다.
물론, 병합 기능은 후술하는 트랜잭션 기능의 기능점수 측정 시에도 적용될 수 있으며, 이러한 경우, 해당 트랜잭션 기능에만 적용될 수 있다.
다음, 트랜잭션 기능은 데이터를 처리하기 위해 사용자에게 제공되는 기능을 의미하는 것으로서, 외부 입력(external input, EI), 외부 출력(external output, EO) 및 외부 조회(external inquiry, EQ)를 포함할 수 있다.
도 6 내지 도 10은 일 실시예에 따른 트랜잭션 기능의 기능점수를 측정하는 방법을 설명하기 위한 화면 예시도이다.
본 실시예에서, 트랜잭션 기능의 기능점수 측정은 프로그램의 기능점수를 산출하는 것일 수 있다.
트랜잭션 기능의 기능점수는 외부 입력, 외부 출력 및 외부 조회 모두의 참조 파일 유형(file type reference, FTR)의 개수 및 데이터 요소 유형(data element type, DET)의 개수를 기초로 산출할 수 있다.
도 6 내지 도 9를 참고하면, 프로그램 기능점수 측정 서버(200)는 신규 개발 프로그램 기능의 기능점수를 측정하여 최초 측정 처리(도 6의 Estimate FP from scratch)를 수행하고, 측정 대상 프로그램이 변경된 경우 최초 측정 시의 기능점수를 기준으로 변경된 기능점수를 측정하여 변경 측정 처리(도 6의 Estimate FP changes)를 수행할 수 있다.
구체적으로, 프로그램 기능점수 측정 서버(200)는 트랜잭션 기능의 기능점수를 최초 측정(Estimate FP from Scratch) 처리할 때, STD(standard) 프로그램을 제외한 CBO(Customer Bolt-On) 프로그램을 측정 대상으로 선정할 수 있다.
프로그램 기능점수 측정 서버(200)는 SQL(CRUD)이 사용된 소스 코드 스캔 시, 테이블 또는 뷰(view)를 식별 분석할 수 있다. 이때, 뷰는 포함된 각각의 테이블 정보를 별도로 분석 수행할 수 있다. 이때, 분석 대상은 프로그램(program), 클래스(class), 기능(function) 및 웹딘(webdyn)에 해당할 수 있다. 이때, 클래스와 기능은 로직 구조가 다르므로 별도의 분석 로직을 사용하여 분석할 수 있다.
프로그램 기능점수 측정 서버(200)는 트랜잭션 기능의 데이터 요소 유형(DET) 추출 시, SQL의 셀렉트(select), Where절에 사용된 필드를 데이터 요소 유형(DET)로 카운팅할 수 있다. 단, Where절 하드코딩 및 상수 필드는 데이터 요소 유형(DET) 카운팅 시 제외될 수 있다.
프로그램 기능점수 측정 서버(200)는 변경 측정(Estimate FP changes) 처리 시, 기 측정된 참조 파일 유형(FTR) 및 데이터 요소 유형(DET) 내역을 조회할 수 있다. 이후, 프로그램 기능점수 측정 서버(200)는 참조 파일 유형(FTR) 및 데이터 요소 유형(DET)의 현재상태를 조회하고 기존 저장내역과 비교하여 변화량을 측정할 수 있다.
도 7을 참고하면, 프로그램 기능점수 측정 서버(200)는 조회 처리 시, 참조 파일 유형(FTR)을 계산 결과 및 기능유형(EI/EO/EQ) 및 복잡도 결과내역을 조회할 수 있다. 프로그램 기능점수 측정 서버(200)는 트랜잭션 기능의 기능 점수 조회 (Maintenance) 처리를 수행하여 참조 파일 유형(FTR) 및 데이터 요소 유형(DET)을 변경할 수 있다.
프로그램 기능점수 측정 서버(200)는 조회 처리 시, 기 저장된 데이터 기능의 기능점수 및 트랜잭션 기능의 기능점수에 추가(add) 처리, 삭제(delete) 처리, 삭제 취소(cancel delete) 처리 및 병합(merge) 처리 중 적어도 하나 이상의 처리를 수행하여 데이터 기능 및 트랜잭션 기능의 기능점수 측정 결과를 조정할 수 있다. 이때, 병합 처리는 동일 기능에 해당하는 복수의 레코드 요소 유형(record element type, RET)을 병합하는 것일 수 있다.
도 10을 참조하면, 프로그램 기능점수 측정 서버(200)는 측정 대상 프로그램의 텍스트의 소스 코드를 스캔하여 단어 기준으로 토크나이징(tokenizing)하여 토큰으로 분리하고(①), 분리된 토큰 목록 내 각 토큰의 소스 분석을 통해 트랜잭션 트리로 재구성하여 상기 트랜잭션 기능의 기능점수를 산출하여 테이블에 저장할 수 있다(②). 산출된 트랜잭션 기능의 기능점수는 테이블 형태로 저장 장치(250)에 저장될 수 있다.
도시하지 않았지만, 프로그램 기능점수 측정 서버(200)는 상술한 바와 같이 소스 코드를 스캔하기 위한 스캔 기능을 가지는 코드 스캐너를 별도로 구비할 수 있다. 코드 스캐너는 트랜잭션 기능의 기능점수 측정 시, 측정대상 개발 서버(100)를 RFC 호출하여 대상소스를 추출할 수 있다. 이때, 추출대상 오브젝트(object) 유형은 프로그램, 클래스, 기능 및 웹딘을 포함할 수 있다. 상기 클래스 및 기능의 단위는 구조가 서로 다르므로, 소스 코드 스캔 수행 시 로직을 분기하여 수행할 수 있다. 프로그램 기능점수 측정 서버(200)는 데이터 요소 유형(DET) 추출을 위해, 소스 단위를 개별 토큰(token)으로 구분하는 토크나이징(tokenizing)을 처리할 수 있다. 토크나이징 처리로 추출된 토큰은 SQL의 Select, Where 절에 사용된 필드 단위에 해당하며, 데이터 요소 유형(DET)으로 카운팅 처리 될 수 있다.
프로그램 기능점수 측정 서버(200)는 코드 마스터의 기준 정보를 기초로 측정 대상 프로그램의 트랜잭션 기능을 각각 구분하되, 화면 기준, 타입 기준을 비롯한 최소기능 단위로 분류하여 트랜잭션 기능의 개수를 파악할 수 있다. 상기 트랜잭션 트리는 리프 노드(leaf node) 및 루트 노드(root node)를 포함할 수 있다.
도 4는 일 실시예에 따른 트랜잭션 기능의 기능점수를 측정하는 방법을 설명하기 위한 일 예시도이고, 도 5는 일 실시예에 따른 트랜잭션 기능의 기능점수를 측정하는 방법을 설명하기 위한 다른 예시도이다.
프로그램 기능점수 측정 서버(200)는 트랜잭션 기능의 기능점수 산출 시, 리프 노드인 토큰이 속한 루트 노드를 탐색하여 트랜잭션 기능을 구분하되, 토큰이 속한 코딩블록을 파악하고 트랜잭션 트리 내 리프 노트에서 루트 노드 방향으로 탐색하여 트랜잭션 기능을 구분할 수 있다. 이때, 코딩블록은 폼(form), 메소드(method) 및 글로벌(global)을 포함할 수 있다. 상기 폼은 Form ~ EndForm으로 구성된 구문을 의미하는 것으로서, Subroutine이라고 불리며 Perform 구문에서 호출할 수 있다. 상기 메소드는 Method ~ EndMethod로 구성된 구문을 의미하는 것으로서, 특정기능을 정의한 코드의 집합이며 Class Method와 Instance Method 로 구성될 수 있다. 상기 글로벌은 프로그램 전체에 사용되는 전역변수(예를 들어, 필드, 테이블 등)를 의미할 수 있다.
도 4를 참고하면, 프로그램 기능점수 측정 서버(200)는 PBO(process before output) 및 PAI(process after input) 기준의 트랜잭션 트리 구조는 크게 메인(main) 화면, 저장(save) 버튼 및 PBO 및 PAI 화면으로 구성될 수 있다. 이때, PBO는 출력 이벤트를 수행하는 프로세스 및 화면을 의미하고, PAI는 입력 이벤트를 수행하는 프로세스 및 화면을 의미할 수 있다.
본 실시예에서는 기존 1개의 프로그램을 1개의 트랜잭션 기능으로 판단하던 것을 복수 개의 트랜잭션 기능으로 구분할 수 있다. 예를 들어, 4개의 CRUD(create read update delete) 기능을 하는 ILF 및 EIF가 있다고 가정할 때, 프로그램 기능점수 측정 서버(200)는 트랜잭션 기능 메인(TRANSACTION_MAIN)에 ILF_A(R), 저장 버튼(Save Button)에 해당하는 트랜잭션 기능 2(TRANSACTION_002)에 ILF_A(CUD), 스크린(Screen 200)에 해당하는 트랜잭션 기능 1(TRANSACTION_001)에 ILF_B(R) 및 EIF_C(R)이 포함되는 것으로 구분할 수 있다. 상기 CRUD는 데이터의 생성, 조회, 수정 및 삭제를 의미할 수 있다.
도 5 및 도 10를 참고하면, 프로그램 기능점수 측정 서버(200)는 소스 코드 스캔 시 수행된 토크나이징 처리 결과 토큰이 생성(도 10의 ①)될 수 있다. 생성된 데이터 요소 유형(DET) 단위의 토큰이 전체 프로그램 소트 트리 구조의 리프 노드(leaf node)(도 10의 ③)라고 할 경우, 소속된 루트 노드(root node)를 탐색하는 과정이 필요할 수 있다. 이는, 참조 파일 유형(FTR)별 데이터 데이터 요소 유형(DET) 산정의 과정에 해당할 수 있다.
상술한 루트 노드는 사용자에게 의미 있는 최소기능 단위인 트랜잭션 기능에 해당할 수 있다. 예를 들어, 프로그램 전체를 1개의 트랜잭션 기능의 아이디가 부여된 루트 노드로 판단할 수 없으므로, 최소기능(예를 들어, 화면, 저장버튼 등) 단위로 트랜잭션 기능을 분할해야 하는 것이다. 도 4에서 도시하는 바와 같이, PBO 및 PAI 기준으로 각각의 화면에 트랜잭션 기능의 아이디를 부여하고, 저장버튼도 의미 있는 기능으로 판단하여 트랜잭션 기능의 아이디를 부여할 수 있다. 리프 노드에 해당하는 토큰이 속한 루트 노드는 트랜잭션 기능의 아이디가 부여된 PBO 및 PAI 화면이라고 할 수 있다.
프로그램 기능점수 측정 서버(200)는 트랜잭션 기능의 기능점수 산정을 위해 리프 노드인 토큰이 속한 루트 노드(PBO/PAI)를 탐색할 수 있다. 도 5를 참고하면, 프로그램 기능점수 측정 서버(200)는 토큰이 속한 코딩블록(FORM/METHOD/Global)을 파악하고 트리 구조를 리프 노드에서 루트 노드 방향으로 탐색하며 역방향으로 수행할 수 있다.
도 5를 참고하면, 프로그램 기능점수 측정 서버(200)는 토큰의 코딩블록이 글로벌이거나 또는 루트 노드 탐색에 실패한 경우, 해당 토큰을 메인 트랜잭션 기능(Transaction_Main)으로 분류할 수 있다. 프로그램 기능점수 측정 서버(200)는 루트 노드인 PBO 및 PAI를 찾는다면, 해당 노드의 토큰으로 판단 할 수 있다.
프로그램 기능점수 측정 서버(200)는 특정 토큰이 복수의 트랜잭션 기능에 포함되는 경우, 해당 토큰을 각각의 트랜잭션 기능에 각각 포함되도록 분류할 수 있다. 예를 들어, 동일한 토큰을 서로 다른 PBO 및 PAI에서 동시에 사용한다면, 각각의 트랜잭션 기능에 속한 토큰으로 분류할 수 있다.
프로그램 기능점수 측정 서버(200)는 토큰의 참조 파일 유형(FTR)이 ILF(CUD) 역할을 하는 경우라면, 저장버튼용 EI로 분리여부를 추가적으로 판단할 수 있다. 이때, 코딩블록이 PAI에서 실행하는지 여부가 기준이 될 수 있다.
프로그램 기능점수 측정 서버(200)는 트랜잭션 기능의 기능점수 산출 시, 트랜잭션 기능 추가 및 타입 변경을 비롯한 사용자 조정 기능을 제공할 수 있다.
한편, 프로그램 기능점수 측정 서버(200)는 상술한 과정을 통해 확정된 데이터 기능 및 트랜잭션 기능의 기능점수 산출 및 취합을 통해 최종 기능점수를 산출할 수 있다. 이때, 최종 기능점수는 기 설정된 계산방식을 통해 산출될 수 있다. 예를 들어, 기능점수는 기능목록개수와 가중치의 곱으로 산출할 수 있다. 최종 기능점수는 테이블 형태로 저장 장치에 저장될 수 있다.
도 1을 참고하면, 상술한 프로그램 기능점수 측정 서버(200)는 기능점수 측정부(210), 조회부(230) 및 저장 장치(250)를 포함할 수 있다.
기능점수 측정부(210)는 데이터 기능 및 트랜잭션 기능을 포함하는 측정 대상 정보를 수신하여 테이블 레이아웃 기준으로 데이터 기능의 기능점수를 측정하고 프로그램 소스 기반으로 트랜잭션 기능의 기능점수를 측정하되, 패키지 마스터 및 코드 마스터의 기준정보를 이용하여 데이터 기능 및 트랜잭션 기능의 최초 측정 처리 및 프로그램 변경에 따른 변경 측정 처리를 수행할 수 있다.
조회부(230)는 기 저장된 데이터 기능의 기능점수 및 트랜잭션 기능의 기능점수에 추가(add) 처리, 삭제(delete) 처리, 삭제 취소(cancel delete) 처리 및 병합(merge) 처리 중 적어도 하나 이상의 처리를 수행하여 상기 데이터 기능 및 트랜잭션 기능의 기능점수 측정 결과를 조정할 수 있다.
저장 장치(250)는 측정 대상 정보, 기능점수 측정 기준 및 데이터 기능 및 트랜잭션 기능의 기능점수 측정 결과를 비롯하여 각종 정보를 저장할 수 있다.
도 11은 일 실시예에 따른 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에 서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 프로그램 기능점수 측정 시스템(1000)일 수 있다. 또한, 컴퓨팅 장치(12)는 프로그램 기능점수 측정 서버(200)일 수 있다.
컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.
상술한 본 실시예들에 따르면, ABAP(Advanced Business Application Programming) 프로그램 개발 및 운영 시 객관적인 규모산정을 위해 국제표준에 기반한 기능점수 측정 방법을 자동으로 구현할 수 있어, 개인 역량에 따른 기능점수 측정 정확도 편차를 최소화하고 측정 시간을 단축할 수 있다는 효과를 기대할 수 있다.
상술한 본 실시예들에 따르면, 개별 시스템 또는 중앙에서 원격으로 여러 시스템에 대한 기능점수 측정을 원격으로 진행할 수 있는 환경 설정 기능을 제공할 수 있다. 또한, 본 실시예들에 따르면, 쿼리 형태(select, insert, delete, update)와 루프(Loop)문 유무에 따라, 트랜잭션 기능의 유형을 EI, EO, EQ로 판단하고, 코드 스캔한 결과 데이터의 각 토큰을 트리구조의 리프 노드로 인식하고 토큰이 속한 최소 단위 트랜잭션 기능을 찾아 이의 데이터 요소 유형(DET)를 측정할 수 있다. 본 실시예들에 따르면, 사용자가 식별할 수 없는 물리 테이블과 필드를 배제 및 병합하는 룰셋과 물리 및 논리 테이블의 매핑 관계를 관리할 수 있다. 또한, 본 실시예들에 따르면, 측정한 테이블과 필드를 병합 및 배제하거나, 트랜잭션 기능에 대한 측정결과를 변경하는 커스터마이징 도구를 제공할 수 있다. 또한, 본 실시예들에 따르면, 변경률 공식을 적용하여 프로그램 변경 전후 기능점수를 측정하여 변경규모를 산정할 수 있다. 이는, ABAP 프로그램 개선업무에 대한 업무량 산정 시 활용할 수 있다. 본 실시예들에 따르면, 유지보수를 지원하는 시스템(예를 들어, Solman, ITSM 등)과 연계를 통해 변경관리 및 리포팅 기능을 제공할 수 있다.
이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 청구범위뿐만 아니라 이 청구범위와 균등한 것들에 의해 정해져야 한다.
10: 컴퓨팅 환경
12: 컴퓨팅 장치
14: 프로세서
16: 컴퓨터 판독 가능 저장 매체
18: 통신 버스
20: 프로그램
22: 입출력 인터페이스
24: 입출력 장치
26: 네트워크 통신 인터페이스
100: 개발 서버
200: 프로그램 기능점수 측정 서버
210: 기능점수 측정부
230: 조회부
250: 저장 장치
1000: 프로그램 기능점수 측정 시스템

Claims (20)

  1. 측정 대상 정보를 제공하기 위한 복수의 개발 서버; 및
    상기 개발 서버로부터 데이터 기능 및 트랜잭션 기능을 포함하는 상기 측정 대상 정보를 수신하여 테이블 레이아웃 기준으로 상기 데이터 기능의 기능점수를 측정하고 프로그램 소스 기반으로 상기 트랜잭션 기능의 기능점수를 측정하되, 패키지 마스터 및 코드 마스터의 기준정보를 이용하여 상기 데이터 기능 및 상기 트랜잭션 기능의 최초 측정 처리, 프로그램 변경에 따른 변경 측정 처리 및 상기 데이터 기능 및 상기 트랜잭션 기능의 기능점수 측정 결과를 분석하여 조정하는 조회 처리 중 어느 하나를 처리하는 프로그램 기능점수 측정 서버를 포함하는 프로그램 기능점수 측정 시스템.
  2. 청구항 1에 있어서,
    상기 프로그램 기능점수 측정 서버는,
    로그성 테이블인지 여부, 기능점수 측정 대상 필드인지 여부를 고려한 테이블의 필드 개수, 테이블의 논리적 관계를 기초한 논리적 테이블 병합(merge) 및 이들의 조합을 기초한 분석을 통해 상기 데이터 기능의 기능점수를 산출하는 프로그램 기능점수 측정 시스템.
  3. 청구항 2에 있어서,
    상기 프로그램 기능점수 측정 서버는,
    상기 데이터 기능의 기능점수 산출 시, 상기 패키지 마스터를 통해 측정 대상 테이블을 리드하고, 상기 코드 마스터를 통해 기능점수 측정이 요구되지 않는 무의미 필드를 비롯한 예외 조건 및 로그성 테이블을 리드하는 프로그램 기능점수 측정 시스템.
  4. 청구항 3에 있어서,
    상기 프로그램 기능점수 측정 서버는,
    신규 개발 테이블 기능의 기능점수를 측정하여 상기 최초 측정 처리하고, 측정 대상 테이블이 변경된 경우 최초 측정 시의 기능점수를 기준으로 변경된 기능점수를 측정하여 상기 변경 측정 처리를 수행하는 프로그램 기능점수 측정 시스템.
  5. 청구항 4에 있어서,
    상기 프로그램 기능점수 측정 서버는,
    사용자의 조작에 따라 복수의 논리적 테이블을 병합하여 하나의 논리적 테이블 그룹으로 생성하고, 기능점수 측정 시 논리적 테이블 그룹 내 특정 논리적 테이블이 선택되면 상위개념의 상기 논리적 테이블 그룹이 선택된 것으로 인식하는 프로그램 기능점수 측정 시스템.
  6. 청구항 4에 있어서,
    상기 프로그램 기능점수 측정 서버는,
    기 설정된 조건 또는 사용자의 조작에 따라 복수의 필드 중 기능점수 산출 미대상인 필드를 삭제 처리하는 프로그램 기능점수 측정 시스템.
  7. 청구항 4에 있어서,
    상기 프로그램 기능점수 측정 서버는,
    기능점수 측정 대상에서 누락된 필드를 기능점수 측정 대상에 추가 처리하는 프로그램 기능점수 측정 시스템.
  8. 청구항 4에 있어서,
    상기 프로그램 기능점수 측정 서버는,
    상기 변경 처리 측정 시, 측정 대상의 테이블 전체에 대한 기능점수의 재 측정 결과와 상기 최초 측정 처리 결과의 기능점수를 비교하여 추가, 삭제, 속성 변경 및 필드 변경을 비롯한 변경된 테이블의 기능점수를 산출하되, 상기 측정 대상 테이블에 병합(merge), 추가 및 삭제된 테이블 정보를 반영하여 상기 변경 처리 측정을 수행하는 프로그램 기능점수 측정 시스템.
  9. 청구항 1에 있어서,
    상기 프로그램 기능점수 측정 서버는,
    신규 개발 프로그램 기능의 기능점수를 측정하여 상기 최초 측정 처리를 수행하고, 측정 대상 프로그램이 변경된 경우 최초 측정 시의 기능점수를 기준으로 변경된 기능점수를 측정하여 상기 변경 측정 처리를 수행하는 프로그램 기능점수 측정 시스템.
  10. 청구항 9에 있어서,
    상기 프로그램 기능점수 측정 서버는,
    측정 대상 프로그램의 텍스트의 소스 코드를 스캔하여 단어 기준으로 토크나이징(tokenizing)하여 토큰으로 분리하고, 분리된 토큰 목록 내 각 토큰의 소스 분석을 통해 트랜잭션 트리로 재구성하여 상기 트랜잭션 기능의 기능점수를 산출하는 프로그램 기능점수 측정 시스템.
  11. 청구항 10에 있어서,
    상기 프로그램 기능점수 측정 서버는,
    상기 코드 마스터의 기준 정보를 기초로 측정 대상 프로그램의 트랜잭션 기능을 각각 구분하되, 화면 기준, 타입 기준을 비롯한 최소기능 단위로 분류하여 트랜잭션 기능의 개수를 파악하는 프로그램 기능점수 측정 시스템.
  12. 청구항 10에 있어서,
    상기 트랜잭션 트리는 리프 노드(leaf node) 및 루트 노드(root node)를 포함하고,
    상기 프로그램 기능점수 측정 서버는,
    상기 트랜잭션 기능의 기능점수 산출 시, 상기 리프 노드인 토큰이 속한 상기 루트 노드를 탐색하여 트랜잭션 기능을 구분하되, 상기 토큰이 속한 코딩블록을 파악하고 상기 트랜잭션 트리 내 상기 리프 노트에서 상기 루트 노드 방향으로 탐색하여 트랜잭션 기능을 구분하며,
    상기 코딩블록은 폼(form), 메소드(method) 및 글로벌(global)을 포함하는 프로그램 기능점수 측정 시스템.
  13. 청구항 12에 있어서,
    상기 프로그램 기능점수 측정 서버는,
    상기 토큰의 코딩블록이 상기 글로벌이거나 또는 루트 노드 탐색에 실패한 경우, 해당 토큰을 메인 트랜잭션 기능으로 분류하는 프로그램 기능점수 측정 시스템.
  14. 청구항 12에 있어서,
    상기 프로그램 기능점수 측정 서버는,
    특정 토큰이 복수의 트랜잭션 기능에 포함되는 경우, 해당 토큰을 각각의 트랜잭션 기능에 각각 포함되도록 분류하는 프로그램 기능점수 측정 시스템.
  15. 청구항 1에 있어서,
    상기 측정 대상 정보는, 각각의 시스템 아이디, 어플리케이션 아이디, 오브젝트 네임 및 변경 아이디가 매칭된 상기 데이터의 정보 및 상기 트랜잭션의 정보를 포함하는 프로그램 기능점수 측정 시스템.
  16. 청구항 1에 있어서,
    상기 프로그램 기능점수 측정 서버는,
    상기 트랜잭션 기능의 기능점수 산출 시, 트랜잭션 기능 추가 및 타입 변경을 비롯한 사용자 조정 기능을 제공하는 프로그램 기능점수 측정 시스템.
  17. 청구항 1에 있어서,
    상기 데이터 기능 및 상기 트랜잭션 기능은 ABAP(Advanced Business Application Programming)을 기초로 개발된 프로그램의 데이터 기능 및 트랜잭션 기능인 프로그램 기능점수 측정 시스템.
  18. 청구항 1에 있어서,
    상기 프로그램 기능점수 측정 서버는 상기 복수의 개발 서버를 리모트 기능 콜(remote function call, RFC) 호출하여 상기 측정 대상 정보를 요청 및 수신하는 프로그램 기능점수 측정 시스템.
  19. 청구항 1에 있어서,
    상기 프로그램 기능점수 측정 서버는,
    상기 조회 처리 시, 기 저장된 상기 데이터 기능의 기능점수 및 상기 트랜잭션 기능의 기능점수에 추가(add) 처리, 삭제(delete) 처리, 삭제 취소(cancel delete) 처리 및 병합(merge) 처리 중 적어도 하나 이상의 처리를 수행하여 상기 데이터 기능 및 상기 트랜잭션 기능의 기능점수 측정 결과를 조정하고,
    상기 병합 처리는 동일 기능에 해당하는 복수의 레코드 요소 유형(record element type, RET)을 병합하는 것인 프로그램 기능점수 측정 시스템.
  20. 데이터 기능 및 트랜잭션 기능을 포함하는 측정 대상 정보를 수신하여 테이블 레이아웃 기준으로 상기 데이터 기능의 기능점수를 측정하고 프로그램 소스 기반으로 상기 트랜잭션 기능의 기능점수를 측정하되, 패키지 마스터 및 코드 마스터의 기준정보를 이용하여 상기 데이터 기능 및 상기 트랜잭션 기능의 최초 측정 처리 및 프로그램 변경에 따른 변경 측정 처리를 수행하는 기능점수 측정부;
    기 저장된 상기 데이터 기능의 기능점수 및 상기 트랜잭션 기능의 기능점수에 추가(add) 처리, 삭제(delete) 처리, 삭제 취소(cancel delete) 처리 및 병합(merge) 처리 중 적어도 하나 이상의 처리를 수행하여 상기 데이터 기능 및 상기 트랜잭션 기능의 기능점수 측정 결과를 조정하는 조회부; 및
    측정 대상 정보, 기능점수 측정 기준 및 상기 데이터 기능 및 상기 트랜잭션 기능의 기능점수 측정 결과를 비롯하여 각종 정보를 저장하는 저장 장치를 포함하는 프로그램 기능점수 측정 서버.
KR1020220009807A 2022-01-24 2022-01-24 프로그램 기능점수 측정 서버 및 시스템 KR20230113933A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220009807A KR20230113933A (ko) 2022-01-24 2022-01-24 프로그램 기능점수 측정 서버 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220009807A KR20230113933A (ko) 2022-01-24 2022-01-24 프로그램 기능점수 측정 서버 및 시스템

Publications (1)

Publication Number Publication Date
KR20230113933A true KR20230113933A (ko) 2023-08-01

Family

ID=87561501

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220009807A KR20230113933A (ko) 2022-01-24 2022-01-24 프로그램 기능점수 측정 서버 및 시스템

Country Status (1)

Country Link
KR (1) KR20230113933A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100901035B1 (ko) 2004-12-21 2009-06-04 에프. 호프만-라 로슈 아게 테트랄린 및 인단 유도체 및 이의 용도

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100901035B1 (ko) 2004-12-21 2009-06-04 에프. 호프만-라 로슈 아게 테트랄린 및 인단 유도체 및 이의 용도

Similar Documents

Publication Publication Date Title
CN107704265B (zh) 一种面向业务流可配置的规则生成方法
US6757670B1 (en) Method and system for query processing
CN107644323B (zh) 一种面向业务流的智能审核系统
JP5306360B2 (ja) データ記録を一致させるシステムの分析のための方法およびシステム
US9342570B2 (en) Detecting reference data tables in extract-transform-load processes
US7373351B2 (en) Generic search engine framework
US8645906B2 (en) Method for enforcing change policy based on project state
US9047164B2 (en) Calculating defect density by file and source module
US8645907B2 (en) Capturing effort level by task upon check-in to source control management system
US8788527B1 (en) Object-level database performance management
JP5452030B2 (ja) 統合ログ生成装置及び統合ログ生成プログラム及び記録媒体
US8954376B2 (en) Detecting transcoding tables in extract-transform-load processes
US7225177B2 (en) Generating a knowledge base
US8725760B2 (en) Semantic terminology importer
CN112416369B (zh) 一种面向异构混合环境的智能化部署方法
US20060143603A1 (en) Data object association based on graph theory techniques
US20170109638A1 (en) Ensemble-Based Identification of Executions of a Business Process
CN111414410A (zh) 数据处理方法、装置、设备和存储介质
US20170109640A1 (en) Generation of Candidate Sequences Using Crowd-Based Seeds of Commonly-Performed Steps of a Business Process
KR20230113933A (ko) 프로그램 기능점수 측정 서버 및 시스템
Hinrichs et al. An ISO 9001: 2000 Compliant Quality Management System for Data Integration in Data Warehouse Systems.
US11687568B2 (en) Data catalog system for generating synthetic datasets
US20230021309A1 (en) Storing Versions of Data Assets in Knowledge Graphs
CN115511644A (zh) 用于目标保单的处理方法、电子设备和可读存储介质
US20240168826A1 (en) Method of analyzing change in api in cloud