KR20200123891A - 애플리케이션의 품질 정보 제공 방법 및 장치 - Google Patents

애플리케이션의 품질 정보 제공 방법 및 장치 Download PDF

Info

Publication number
KR20200123891A
KR20200123891A KR1020190046756A KR20190046756A KR20200123891A KR 20200123891 A KR20200123891 A KR 20200123891A KR 1020190046756 A KR1020190046756 A KR 1020190046756A KR 20190046756 A KR20190046756 A KR 20190046756A KR 20200123891 A KR20200123891 A KR 20200123891A
Authority
KR
South Korea
Prior art keywords
information
quality information
area
source
source code
Prior art date
Application number
KR1020190046756A
Other languages
English (en)
Other versions
KR102217092B1 (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 KR1020190046756A priority Critical patent/KR102217092B1/ko
Publication of KR20200123891A publication Critical patent/KR20200123891A/ko
Application granted granted Critical
Publication of KR102217092B1 publication Critical patent/KR102217092B1/ko

Links

Images

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/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 애플리케이션을 분석하여 품질 정보를 제공하는 품질 정보 제공 장치의 품질 정보 제공 방법으로서, 상기 애플리케이션의 소스 코드를 수집하는 단계, 빅데이터 기반의 분석 엔진을 통해 상기 소스 코드로부터 객체에 대한 정보 및 객체들 간의 호출 관계에 대한 정보를 도출하는 단계, 상기 객체에 대한 정보 및 상기 호출 관계에 대한 정보를 기반으로 미사용 소스를 검출하는 단계 및 상기 미사용 소스에 대한 정보를 포함하는 품질 정보를 시각화하는 단계를 포함하는 것을 특징으로 한다.

Description

애플리케이션의 품질 정보 제공 방법 및 장치{METHOD AND APPARATUS FOR PROVIDING QUALITY INFORMATION OF APPLICATION}
본 발명은 애플리케이션의 품질 정보 제공 방법 및 장치에 관한 것으로, 더욱 상세하게는 빅데이터 및 딥마이닝을 이용하여 애플리케이션을 분석하고, 미사용 소스 및 복잡도를 포함하는 품질 정보를 제공하는 방법 및 장치에 관한 것이다.
최근 기술 발전에 따라 다양한 애플리케이션이 개발 및 배포되고 있다. 애플리케이션은 개발 단계 또는 사용자에게 배포 전에서 오류 및 취약점 등을 파악하고 보완하기 위해 테스트를 수행할 수 있다. 테스트 방법은 일반적으로 정적 분석 방법과 동적 분석 방법으로 나누어 진다. 정적 분석 방법은 애플리케이션의 소스 코드를 기초로 코드 점검 및 보안성 등을 분석할 수 있으며, 동적 분석 방법은 요청 및 응답 방식을 통해 성능 및 실행 오류 등을 분석할 수 있다.
정적 분석과 동적 분석은 서로 다른 측면에서 애플리케이션을 테스트하므로, 개발자 등은 정적 분석 정보 및 동적 분석 정보가 모두 필요할 수 있다. 다만, 현재 시장은 정적 분석을 수행할 수 있는 정적 분석 도구와 동적 분석을 수행할 수 있는 동적 분석 도구가 양분화되어, 개발자 등은 필요에 따라 각 도구를 이용하여 정적 분석 정보 및 동적 분석 정보를 획득하고, 이를 통합 또는 재가공하여야 하는 문제점이 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은 애플리케이션의 품질 정보 제공 방법을 제공하는 데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은 애플리케이션의 품질 정보 제공 장치를 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 품질 정보 제공 방법은, 애플리케이션의 소스 코드를 수집하는 단계, 빅데이터 기반의 분석 엔진을 통해 상기 소스 코드로부터 객체에 대한 정보 및 객체들 간의 호출 관계에 대한 정보를 도출하는 단계, 상기 객체에 대한 정보 및 상기 호출 관계에 대한 정보를 기반으로 미사용 소스를 검출하는 단계 및 상기 미사용 소스에 대한 정보를 포함하는 품질 정보를 시각화하는 단계를 포함할 수 있다.
여기서, 상기 객체에 대한 정보 및 상기 호출 관계에 대한 정보를 기반으로 미사용 소스를 검출하는 단계는, 상기 객체에 대한 정보 및 상기 호출 관계에 대한 정보를 기반으로 상기 소스 코드에 호출되는 객체가 존재하는지 판단하는 단계 및 상기 소스 코드에 상기 호출되는 객체가 존재하지 않는 경우, 상기 호출되는 객체와 관련된 소스 코드를 상기 미사용 소스로 검출하는 단계를 포함할 수 있다.
여기서, 상기 미사용 소스에 대한 정보를 포함하는 품질 정보를 시각화하는 단계는, 상기 검출한 미사용 소스를 UI(user interface) 영역, 적어도 하나의 BL(business logic) 영역, ORM(object relational mapping) 영역 및 DB(database) 영역으로 분류하여 시각화하는 단계를 포함할 수 있다.
여기서, 상기 검출한 미사용 소스를 UI 영역, 적어도 하나의 BL 영역, ORM 영역 및 DB 영역으로 분류하여 시각화하는 단계는, 상기 각 영역 별로 사용 소스와 미사용 소스의 비율 정보를 포함하는 결손 정보를 도출하는 단계를 더 포함할 수 있다.
여기서, 상기 빅데이터 기반의 분석 엔진을 통해 상기 소스 코드로부터 미리 설정된 기간 동안 이용 이력이 없는 객체를 도출하는 단계 및 상기 도출한 이용 이력이 없는 객체와 관련된 소스 코드를 상기 미사용 소스에 포함시키는 단계를 더 포함할 수 있다.
여기서, 상기 빅데이터 기반의 분석 엔진을 통해 상기 소스 코드로부터 객체 별로 수치화된 복잡도 지표를 산출하는 단계를 더 포함할 수 있다.
여기서, 상기 복잡도 지표를 기반으로 객체 별로 단계화된 복잡성을 결정하는 단계를 더 포함할 수 있다.
여기서, 상기 빅데이터 기반의 분석 엔진은, 상기 빅데이터를 기반으로 데이터 마이닝(data mining)을 수행하여 구현될 수 있다.
여기서, 상기 데이터 마이닝을 통해 패턴을 분석하여 사용 빈도가 높은 인터페이스 자원을 관리하는 단계를 더 포함할 수 있다.
상기 다른 목적을 달성하기 위한 본 발명의 일 실시예에 따른 품질 정보 제공 장치는, 프로세서(processor) 및 상기 프로세서를 통해 실행되는 적어도 하나의 명령이 저장된 메모리(memory)를 포함하고, 상기 적어도 하나의 명령은, 상기 애플리케이션의 소스 코드를 수집하도록 실행되고, 빅데이터 기반의 분석 엔진을 통해 상기 소스 코드로부터 객체에 대한 정보 및 객체들 간의 호출 관계에 대한 정보를 도출하도록 실행되고, 상기 객체에 대한 정보 및 상기 호출 관계에 대한 정보를 기반으로 미사용 소스를 검출하도록 실행되고, 상기 미사용 소스에 대한 정보를 포함하는 품질 정보를 시각화하도록 실행될 수 있다.
여기서, 상기 적어도 하나의 명령은, 상기 객체에 대한 정보 및 상기 호출 관계에 대한 정보를 기반으로 상기 소스 코드에 호출되는 객체가 존재하는지 판단하도록 실행되고, 상기 소스 코드에 상기 호출되는 객체가 존재하지 않는 경우, 상기 호출되는 객체와 관련된 소스 코드를 상기 미사용 소스로 검출하도록 실행될 수 있다.
여기서, 상기 적어도 하나의 명령은, 상기 검출한 미사용 소스를 UI(user interface) 영역, 적어도 하나의 BL(business logic) 영역, ORM(object relational mapping) 영역 및 DB(database) 영역으로 분류하여 시각화하도록 실행될 수 있다.
여기서, 상기 적어도 하나의 명령은, 상기 각 영역 별로 사용 소스와 미사용 소스의 비율 정보를 포함하는 결손 정보를 도출하도록 실행될 수 있다.
여기서, 상기 적어도 하나의 명령은, 상기 빅데이터 기반의 분석 엔진을 통해 상기 소스 코드로부터 미리 설정된 기간 동안 이용 이력이 없는 객체를 도출하도록 실행되고, 상기 도출한 이용 이력이 없는 객체와 관련된 소스 코드를 상기 미사용 소스에 포함시키도록 실행될 수 있다.
여기서, 상기 적어도 하나의 명령은, 상기 빅데이터 기반의 분석 엔진을 통해 상기 소스 코드로부터 객체 별로 수치화된 복잡도 지표를 산출하도록 실행될 수 있다.
여기서, 상기 적어도 하나의 명령은, 상기 복잡도 지표를 기반으로 객체 별로 단계화된 복잡성을 결정하도록 실행될 수 있다.
여기서, 상기 빅데이터 기반의 분석 엔진은, 상기 빅데이터를 기반으로 데이터 마이닝(data mining)을 수행하여 구현될 수 있다.
여기서, 상기 적어도 하나의 명령은, 상기 데이터 마이닝을 통해 패턴을 분석하여 사용 빈도가 높은 인터페이스 자원을 관리하도록 실행될 수 있다.
본 발명에 따르면, 정적 분석 정보 및 동적 분석 정보를 융합하여 통합 분석 정보를 제공할 수 있다.
본 발명에 따르면, 정적 분석 도구 및 동적 분석 도구의 품질 기준을 통합하여 분석 결과를 정량적으로 시각화할 수 있다.
본 발명에 따르면, 기존의 정적 분석 도구 및 동적 분석 도구로 검출할 수 없었던 미사용 소스를 검출할 수 있다.
본 발명에 따르면, 실시간으로 애플리케이션의 품질 정보를 제공하여 품질 개선 활동에 활용될 수 있다.
도 1은 본 발명의 일 실시예에 따른 품질 정보 제공 장치의 분석 영역을 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 품질 정보 제공 장치의 블록 구성도이다.
도 3은 본 발명의 일 실시예에 따른 결손 정보를 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 호출 관계 맵을 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 객체 별 복잡성에 대한 정보를 나타낸 도면이다.
도 6은 본 발명의 일 실시예에 따른 품질 정보 제공 방법의 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는 데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. "및/또는"이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
애플리케이션(application)은 특정한 업무를 수행하기 위해 개발된 응용 소프트웨어(software)를 의미할 수 있다. 최근 애플리케이션은 다양한 사용자의 요구사항에 따라 개발되거나 수정되는 경우가 빈번해지고 있다. 이에 따라 애플리케이션은 개발 단계 및/또는 유지 보수 단계 등에서 품질 정보를 확인하여 사용자의 요구사항에 적합한지를 판단할 수 있고, 이를 기반으로 각 단계를 지속 진행 또는 수정 진행할 지에 대하여 결정될 수 있다.
여기서, 품질 정보는 애플리케이션의 코드에 오류가 존재하는지, 보안성이 높은지, 테스트 횟수, 테스트 성능, 및 실행 시 오류가 존재하는지 등에 대한 정보를 포함할 수 있다. 다만, 애플리케이션의 코드에 오류가 존재하는지 및 보안성이 높은지 등에 대한 정보는 정적 분석 도구에 의한 정적 분석을 통해 획득될 수 있고, 테스트 횟수, 테스트 성능, 및 실행 시 오류가 존재하는지 등에 대한 정보는 동적 분석 도구에 의한 동적 분석을 통해 획득될 수 있다. 다시 말해, 품질 정보는 정적 분석 도구 및 동적 분석 도구를 각각 이용하고, 획득된 정보를 통합하여 획득될 수 있다.
본 발명의 일 실시예에 따른 품질 정보 제공 장치는 애플리케이션을 분석하여 상술한 품질 정보를 사용자에게 제공할 수 있다. 다시 말해, 본 발명의 일 실시예는 애플리케이션에 대하여 정적 분석 및 동적 분석을 모두 수행할 수 있으며, 정적 분석 정보 및 동적 분석 정보를 융합 또는 통합하여 사용자에게 제공할 수 있다.
또한, 본 발명의 일 실시예에 따른 품질 정보 제공 장치가 제공할 수 있는 품질 정보는 애플리케이션의 라이프 사이클(life cycle)에 대한 정보 및 복잡성(Complexity)에 대한 정보를 더 포함할 수 있다.
여기서, 애플리케이션의 라이프 사이클은 애플리케이션의 개발, 테스트, 운용, 유지 보수, 및 운용 중지까지의 일련의 시간적인 경과를 의미할 수 있다. 본 발명의 설명에서 라이프 사이클에 대한 정보는 애플리케이션의 라이프 사이클이 지나 미사용되고 있는 소스, 즉 미사용 소스에 대한 정보를 포함할 수 있다. 또한, 복잡성에 대한 정보는 애플리케이션이 객체지향 프로그래밍된 경우, 소스 코드의 객체(object) 별 복잡성에 대한 정보를 포함할 수 있다. 객체는 필드(field) 및 메소드(method)를 포함할 수 있다. 메소드는 프로그래밍 언어에서의 함수와 대응되는 개념일 수 있으며, 객체의 상태 및 속성 변경과 같이 객체에 대하여 수행할 수 있는 작업을 정의한 것을 의미할 수 있다. 소스 코드는 객체들 간의 상호 통신을 통해 애플리케이션이 실행되도록 구성될 수 있다. 더욱 상세한 설명은 통상의 기술자에게 자명하므로 생략하겠다.
도 1은 본 발명의 일 실시예에 따른 품질 정보 제공 장치의 분석 영역을 나타낸 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 품질 정보 제공 장치는 애플리케이션 서버의 UI(user interface) 영역, 적어도 하나의 BL(business logic) 영역 및 ORM(object relational mapping) 과 데이터베이스 서버의 DB(database) 영역 및 RDB(relational database) 영역을 분석할 수 있다.
여기서, UI 영역은 사용자로부터 정보를 입력 받거나 사용자에게 정보를 제공하는 영역을 의미할 수 있다. 예를 들어, 디스플레이 상에서 사용자와 상호 정보 교환할 수 있는 영역을 의미할 수도 있다. UI 영역은 UI 계층(layer)으로 지칭할 수도 있다.
BL 영역은 UI 영역으로부터 획득한 정보를 알고리즘을 통해 처리하는 영역을 의미할 수 있다. 여기서, 알고리즘은 다양한 프로그램 언어를 이용하여 설계될 수 있다. 예를 들어, 알고리즘은 JAVA를 이용할 수도 있으나, 본 발명의 범위가 특정 프로그램 언어에 한정되는 것은 아니다
ORM 영역은 BL 영역에서 처리된 정보를 데이터베이스에 접근하기 위한 하부 언어로 변환하는 영역을 의미할 수 있으며, 여기서 하부 언어는 SQL(structured query language)를 포함할 수 있다. DB 영역은 정보를 저장 및 관리하는 영역을 의미할 수 있고, RDB 영역은 저장 및 관리되는 정보를 단순한 테이블 형태로 표현하는 영역을 의미할 수 있다.
상술한 각 영역들은 객체지향 프로그래밍을 통해 기능에 따라 적어도 하나의 객체를 포함할 수 있다. 상술한 각 영역들의 설명은 본 발명의 이해를 돕기 위한 일 예로서, 통상의 기술자에 의해 다르게 정의될 수도 있다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 품질 정보 제공 장치는 애플리케이션의 소스 코드를 분석하여 UI 영역에서의 사용되는 객체와 사용되지 않는 객체, BL 영역에서의 사용되는 객체와 사용되지 않는 객체, ORM 영역에서의 사용되는 객체와 사용되지 않는 객체, DB 영역에서의 사용되는 객체와 사용되지 않는 객체, 및 RDB 영역에서의 사용되는 객체와 사용되지 않는 객체에 대한 정보를 획득할 수 있다. 여기서, 사용되는 객체에 대한 소스 코드는 사용 소스 또는 사용 소스 코드로, 사용되지 않는 객체에 대한 소스 코드는 미사용 소스 또는 미사용 소스 코드로 지칭될 수 있다.
또한, 본 발명의 일 실시예에 따른 품질 정보 제공 장치는 애플리케이션의 소스 코드를 분석하여 UI 영역에서의 객체와 BL 영역에서의 객체 간의 연결 관계, BL 영역에서의 객체와 ORM 영역에서의 객체 간의 연결 관계, 및 ORM 영역에서의 객체와 DB 영역에서의 객체 간의 연결 관계에 대한 정보를 획득할 수 있다. 여기서, 연결 관계는 일 영역의 객체가 타 영역의 객체를 호출하는 호출 관계를 의미할 수도 있으며, 호출 관계와 혼용하여 사용될 수 있다.
본 발명의 일 실시예에 따른 품질 정보 제공 장치는 애플리케이션의 소스 코드를 분석하기 위해 빅데이터 기반의 분석 엔진을 이용할 수 있다. 여기서, 분석 엔진은 빅데이터를 기반으로 데이터 마이닝(data mining)을 수행할 수 있다. 빅데이터는 정형, 반정형, 및 비정형의 방대한 데이터들의 집합을 의미할 수 있고, 데이터 마이닝은 대용량의 데이터에서 유용한 상관 관계를 추출하는 기법을 의미할 수 있다. 여기서, 데이터 마이닝은 통계적 기법, 수학적 기법, 및 인공신경망을 활용한 패턴 인식 기법 등을 이용하여 대용량의 데이터로부터 유용한 상관 관계를 추출할 수 있으며, 2개 이상의 계층(layer)를 이용하는 인공신경망 또는 딥러닝을 이용하는 경우, 딥마이닝으로 지칭할 수도 있다. 다시 말해, 분석 엔진은 빅데이터를 기반으로 데이터 마이닝을 수행할 수 있으며, 데이터 마이닝을 통해 상관 관계 정보 또는 패턴 정보를 도출할 수 있고, 이를 기반으로 애플리케이션의 소스 코드를 분석할 수 있다.
본 발명의 일 실시예에 따른 품질 정보 제공 장치는 상술한 분석 엔진을 이용하여 애플리케이션의 소스 코드를 분석할 수 있으며, 각 영역 내의 객체에 대한 정보 및 객체들 간의 호출 관계 정보를 추출할 수 있고, 이를 기반으로 미사용 소스에 대한 정보를 획득할 수 있다. 여기서, 호출 관계 정보는 객체에 대한 정보에 포함될 수도 있다.
예를 들어, 품질 정보 제공 장치는 추출한 객체에 의해 호출되는 다른 객체가 존재하지 않는 경우, 추출한 객체를 미사용 객체로 판단할 수 있고, 추출한 객체에 대한 소스를 미사용 소스로 결정할 수 있다.
품질 정보 제공 장치는 상술한 분석 엔진을 이용하여 애플리케이션의 소스 코드를 분석할 수 있으며, 미리 설정된 기간 동안 이용 이력이 없는 객체를 검출할 수 있고, 검출한 객체를 미사용 소스로 결정할 수 있다.
또한, 품질 정보 제공 장치는 상술한 분석 엔진을 이용하여 애플리케이션의 소스 코드를 분석할 수 있으며, 이를 기반으로 결손 정보 및 호출 관계 맵 중 적어도 하나를 더 획득할 수 있다. 결손 정보에 대한 상세한 설명은 도 3와 함께 후술하겠으며, 호출 관계 맵에 대한 상세한 설명은 도 4과 함께 후술하겠다.
또한, 본 발명의 일 실시예에 따른 품질 정보 제공 장치는 상술한 분석 엔진을 이용하여 애플리케이션의 소스 코드를 분석할 수 있으며, 각 객체의 복잡성에 대한 정보를 획득할 수 있다. 복잡성에 대한 상세한 설명은 도 5와 함께 후술하겠다.
도 2는 본 발명의 일 실시예에 따른 품질 정보 제공 장치의 블록 구성도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 품질 정보 제공 장치(200)는 적어도 하나의 프로세서(210), 메모리(220) 및 저장 장치(230)를 포함할 수 있다.
프로세서(210)는 메모리(120) 및/또는 저장 장치(230)에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(210)는 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(graphics processing unit, GPU) 또는 본 발명에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 메모리(220)와 저장 장치(230)는 휘발성 저장 매체 및/또는 비휘발성 저장 매체로 구성될 수 있다. 예를 들어, 메모리(220)는 읽기 전용 메모리(read only memory, ROM) 및/또는 랜덤 액세스 메모리(random access memory, RAM)로 구성될 수 있다.
메모리(220)는 프로세서(210)를 통해 실행되는 적어도 하나의 명령을 저장하고 있을 수 있다. 적어도 하나의 명령은 애플리케이션의 소스 코드를 수집하는 단계, 빅데이터 기반의 분석 엔진을 통해 소스 코드로부터 객체에 대한 정보 및 객체들 간의 호출 관계에 대한 정보를 도출하는 명령, 객체에 대한 정보 및 호출 관계에 대한 정보를 기반으로 미사용 소스를 검출하는 명령 및 미사용 소스에 대한 정보를 포함하는 품질 정보를 시각화하는 명령을 포함할 수 있다.
여기서, 객체에 대한 정보 및 호출 관계에 대한 정보를 기반으로 미사용 소스를 검출하는 명령은, 객체에 대한 정보 및 호출 관계에 대한 정보를 기반으로 소스 코드에 호출되는 객체가 존재하는지 판단하는 명령 및 소스 코드에 호출되는 객체가 존재하지 않는 경우, 호출되는 객체와 관련된 소스 코드를 미사용 소스로 검출하는 명령을 포함할 수 있다.
여기서, 미사용 소스에 대한 정보를 포함하는 품질 정보를 시각화하는 명령은, 검출한 미사용 소스를 UI(user interface) 영역, 적어도 하나의 BL(business logic) 영역, ORM(object relational mapping) 영역 및 DB(database) 영역으로 분류하는 명령을 포함할 수 있다.
여기서, 검출한 미사용 소스를 UI 영역, 적어도 하나의 BL 영역, ORM 영역 및 DB 영역으로 분류하여 시각화하는 명령은, 각 영역 별로 사용 소스와 미사용 소스의 비율 정보를 포함하는 결손 정보를 도출하는 명령을 더 포함할 수 있다.
여기서, 적어도 하나의 명령은 빅데이터 기반의 분석 엔진을 통해 소스 코드로부터 미리 설정된 기간 동안 이용 이력이 없는 객체를 도출하는 명령 및 도출한 이용 이력이 없는 객체와 관련된 소스 코드를 미사용 소스에 포함시키는 명령을 더 포함할 수 있다.
여기서, 적어도 하나의 명령은 빅데이터 기반의 분석 엔진을 통해 소스 코드로부터 객체 별로 수치화된 복잡도 지표를 산출하는 명령 및 복잡도 지표를 기반으로 객체 별로 명령화된 복잡성을 결정하는 명령을 더 포함할 수 있다.
여기서, 빅데이터 기반의 분석 엔진은, 빅데이터를 기반으로 데이터 마이닝(data mining)을 수행하여 구현될 수 있으며, 적어도 하나의 명령은 데이터 마이닝을 통해 패턴을 분석하여 사용 빈도가 높은 인터페이스 자원을 관리하는 명령을 더 포함할 수 있다.
도 3은 본 발명의 일 실시예에 따른 결손 정보를 나타낸 도면이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 품질 정보 제공 장치는 애플리케이션의 소스 코드를 분석하여 미사용 소스를 검출할 수 있으며, 미사용 소스의 검출은 애플리케이션의 구조적 영역 별로 구분되어 수행될 수 있다.
여기서, 애플리케이션의 구조적 영역은 UI(user interface) 영역, 적어도 하나의 BL(business logic) 영역, ORM(object relational mapping) 영역 및 DB(database) 영역을 포함할 수 있다.
ORM 영역은 ORM 프레임워크가 동작하는 영역을 의미할 수 있다. ORM은 관계형 데이터베이스의 테이블을 객체지향적으로 사용하기 위해 객체와 관계를 연결 또는 맵핑하는 기술을 의미할 수 있다. ORM 영역은 SQL을 생성하므로, 상술한 SQL 영역과 대응될 수 있으며, UI 영역, BL 영역 및 DB 영역은 상술한 동일한 명칭의 영역과 대응될 수 있다.
본 발명의 일 실시예에 따른 품질 정보 제공 장치는 빅데이터 기반 분석 엔진을 기반으로 전체 소스 코드를 각 영역 별로 분류할 수 있으며, 검출한 미사용 소스도 각 영역 별로 분류할 수 있다. 또한, 품질 정보 제공 장치는 각 영역 별로 전체 소스 및 미사용 소스의 비율 정보 또는 사용 소스 및 미사용 소스의 비율 정보를 도출할 수 있다. 결손 정보는 각 영역의 비율 정보를 포함할 수 있다.
도 3을 참조하면, 품질 정보 제공 장치는 UI 영역에서의 미사용 소스에 따른 결손 정보를 UI 결손으로, BL 영역에서의 미사용 소스에 따른 결손 정보를 BL 결손으로, ORM 영역에서의 미사용 소스에 따른 결손 정보를 ORM 결손으로, DB 영역에서의 미사용 소스에 따른 결손 정보를 DB 결손으로 나타낼 수 있다.
예를 들어, UI 결손은 UI에 버튼이 존재하나, BL에 해당 URL(uniform resource locator)가 존재하지 않는 경우를 나타낼 수 있다. BL 결손은 BL에 URL이 존재하나 화면에 호출하는 버튼이 존재하지 않는 경우를 나타낼 수 있다. ORM 결손은 SQL은 등록되어 있으나, BL에서 호출하는 곳이 없는 경우(도 3의 ORM 결손에서 좌측) 및 SQL은 등록되어 있으나, DB에 테이블이 존재하지 않는 경우(도 3의 ORM 결손에서 우측)를 나타낼 수 있다. DB 결손은 테이블은 존재하나 SQL에서 사용되지 않는 경우를 나타낼 수 있다. 또한, 도 3에 도시하지 않았으나, DB 결손은 0 record 관련 정보도 나타낼 수 있다.
결손 정보는 영역 별 미사용 소스를 나타내는 정보로, UI 영역은 BL 영역과 연결될 수 있고, BL 영역은 ORM 영역 및/또는 DB 영역과 연결될 수 있다. 또한, ORM 영역은 DM 영역과 연결될 수 있다. 다만, 본 발명의 범위가 상술한 영역 분류 또는 상술한 영역 별 나타내는 정보에 한정되는 것은 아니다.
도 4는 본 발명의 일 실시예에 따른 호출 관계 맵을 나타낸 도면이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 품질 정보 제공 장치는 애플리케이션의 소스 코드를 분석하여 객체에 대한 정보 및 객체들 간의 호출 관계에 대한 정보를 도출할 수 있으며, 도출한 정보를 기반으로 호출 관계 맵을 생성할 수 있다. 호출 관계 맵은 애플리케이션의 구조적 영역 별로 구분될 수 있으며, 각 영역은 도 3에서 설명한 영역들과 대응될 수 있다.
도 4에서 사각 박스는 소스 코드로부터 도출된 객체를 의미할 수 있으며, 화살표는 객체들 간의 연결 관계 또는 호출 관계를 의미할 수 있다.
예를 들어, 각 영역 별로 처음에 호출된 객체를 1차 객체라 지칭하고, 동일 영역 내에서 1차 객체가 호출하는 객체를 2차 객체라 지칭할 수 있다. 또한, 이와 유사한 방법에 따라 3차 객체 및 4차 객체 등이 지칭될 수 있다.
UI 영역의 하나의 1차 객체는 UI 영역의 5개의 2차 객체들을 호출할 수 있고, UI 영역의 5개의 2차 객체들 각각은 BL 영역의 1차 객체를 호출할 수 있다. 여기서, UI 영역의 2차 객체 중 어느 하나에 따른 BL 영역의 1차 객체가 존재하지 않는 경우, 이는 도 3에서 설명한 UI 결손에 해당될 수 있으며, 관련 객체에 대한 소스 코드는 미사용 코드로 검출될 수 있다. 품질 정보 제공 장치는 이와 유사한 과정을 통해 각 영역 별 객체 간의 호출 관계를 기반으로 미사용 코드를 검출할 수 있으며, 이를 기반으로 호출 관계 맵을 생성하여 사용자에게 시각적으로 제공할 수 있다. 예를 들어, 특정 객체에 결손이 존재하는 경우, 호출 관계 맵은 특정 객체로부터 연결되는 객체를 나타내지 않을 수 있다.
도 5는 본 발명의 일 실시예에 따른 객체 별 복잡성에 대한 정보를 나타낸 도면이다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 품질 정보 제공 장치는 애플리케이션의 소스 코드를 분석하여 복잡성에 대한 정보를 도출할 수 있다. 여기서, 복잡성은 객체 별로 도출될 수 있으며, 객체 별로 미리 설정된 알고리즘을 통해 복잡도 지표를 산출하고, 산출한 복잡도 지표를 기반으로 복잡성을 결정할 수 있다. 여기서, 복잡도 지표는 수치로 나타날 수 있으며, 복잡성은 단계로 나타날 수 있다.
복잡도 지표는 객체 내의 구조를 기준으로 산출될 수 있다. 여기서, 객체 내의 구조는 객체 관련 소스 코드의 구조를 의미할 수 있으며, 객체 관련 소스 코드의 조건문의 개수 등과 같은 상세 구성을 기반으로 산출될 수 있다.
복잡성은 복잡도 지표를 특정 구간으로 나누어 결정할 수 있다. 예를 들어, 객체의 복잡도 지표가 제1 기준값 이하인 경우, 객체의 복잡성은 "하"로 결정될 수 있고, 제1 기준값을 초과하고 제2 기준값 이하인 경우, 객체의 복잡성은 "중"으로 결정될 수 있다. 또한, 객체의 복잡도 지표가 제2 기준값을 초과하고 제3 기준값 이하인 경우, 객체의 복잡성은 "상"로 결정될 수 있고, 제3 기준값을 초과하는 경우, 객체의 복잡성은 "특"으로 결정될 수 있다
복잡성에 대한 정보는 객체 별로 도출될 수 있으며, 각 객체 별로 패키지 경로, 메소드타입 및 메소드명를 포함할 수 있고, 이를 기반으로 객체를 특정할 수 있으므로, 이를 메타 정보로 지칭할 수 있다. 또한, 복잡성에 대한 정보는 임의지정 좌표, 최근 3개월 간의 장애지표, 단계 지표 및 관계 지표 중 적어도 하나를 더 포함할 수 있으나, 복잡성에 대한 정보에 포함되는 각 정보의 종류는 이에 한정되지 않는다.
도 6은 본 발명의 일 실시예에 따른 품질 정보 제공 방법의 순서도이다.
도 6을 참조하면, 본 발명의 일 실시예에 따른 품질 정보 제공 장치는 애플리케이션의 소스 코드를 수집할 수 있다(S610). 품질 정보 제공 장치는 설치형 또는 서비스형일 수 있으며, 이에 따라 소스 코드가 입력되거나 유무선 통신을 통해 수신될 수 있다. 품질 정보 제공 장치는 실시간으로 또는 일정 주기마다 품질 정보 제공 방법을 수행할 수 있으며, 이를 사용자에게 제공함으로써 개발 상황 등에 활용될 수 있다. 또한, 품질 정보 제공 장치는 데이터베이스에 미리 저장된 소스 코드를 이용할 수도 있다.
품질 정보 제공 장치는 구간 별 분류 및 코드 별 객체화할 수 있다(S620). 여기서, 구간은 UI 영역, BL 영역, ORM 영역 및 DB 영역을 포함할 수 있다.
품질 정보 제공 장치는 객체 별 호출 관계 정보를 도출할 수 있다(S630). 품질 정보 제공 장치는 객체화된 코드 및 구간 정보를 기반으로 소스 코드로부터 객체 별 호출 관계 정보를 도출할 수 있다.
품질 정보 제공 장치는 기계학습을 통해 분석 및 오탐 정보를 조정할 수 있다(S640). 여기서, 품질 정보 제공 장치는 빅데이터 기반의 분석 엔진을 이용할 수 있다. 빅데이터 기반의 분석 엔진은 빅데이터를 기반으로 데이터 마이닝을 수행할 수 있으며, 데이터 마이닝을 통해 상관 관계 정보 또는 패턴 정보를 도출할 수 있고, 이를 기반으로 애플리케이션의 소스 코드를 분석할 수 있다.
품질 정보 제공 장치는 미사용 소스를 포함하는 품질 정보를 생성할 수 있다(S650). 여기서, 미사용 소스는 호출 관계를 기반으로 검출될 수 있다. 또한, 미사용 소스는 미리 설정된 기간 동안 이용 이력이 없는 객체를 도출하고, 이를 기반으로 더 검출될 수 있다.
품질 정보 제공 장치는 객체 별로 수치화된 복잡도 지표를 산출할 수 있고, 복잡도 지표를 기반으로 복잡성을 결정할 수도 있으며, 이를 품질 정보에 포함시킬 수 있다.
품질 정보 제공 장치는 분석 정보 통합 및 보고서를 생성할 수 있다(S660). 품질 정보 제공 장치는 빅데이터 기반의 분석 엔진을 통해 기존의 정적 분석 및 동적 분석을 모두 수행할 수 있으며, 정적 분석 결과 및 동적 분석 결과를 융합 및 통합하여 사용자에게 제공할 수도 있으며, 보고서를 생성하여 사용자에게 제공할 수도 있다. 또한, 품질 정보 제공 장치는 통합한 분석 정보 및/또는 보고서를 데이터베이스에 저장하여 성능 정보 및/또는 운영 정보로 사용할 수 있다.
또한, 품질 정보 제공 장치는 데이터 마이닝을 통해 패턴을 분석하여 사용 빈도가 높은 인터페이스 자원을 등록 및 수정 등의 관리를 수행할 수 있다. 이를 통해 사용자는 등록된 인터페이스만을 수정함으로써 애플리케이션의 관련 부분들을 수정할 수 있다.
본 발명의 일 실시예에 따른 품질 정보 제공 장치는 개발 표준에 대한 정보를 수집할 수 있으며, 이를 기반으로 애플리케이션을 분석하여 개발 표준을 미준수하는 소스 코드를 검출할 수도 있다.
본 발명의 실시예에 따른 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산 방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다.
또한, 컴퓨터가 읽을 수 있는 기록매체는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다. 프로그램 명령은 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
본 발명의 일부 측면들은 장치의 문맥에서 설명되었으나, 그것은 상응하는 방법에 따른 설명 또한 나타낼 수 있고, 여기서 블록 또는 장치는 방법 단계 또는 방법 단계의 특징에 상응한다. 유사하게, 방법의 문맥에서 설명된 측면들은 또한 상응하는 블록 또는 아이템 또는 상응하는 장치의 특징으로 나타낼 수 있다. 방법 단계들의 몇몇 또는 전부는 예를 들어, 마이크로프로세서, 프로그램 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 이용하여) 수행될 수 있다. 몇몇의 실시예에서, 가장 중요한 방법 단계들의 하나 이상은 이와 같은 장치에 의해 수행될 수 있다.
실시예들에서, 프로그램 가능한 로직 장치(예를 들어, 필드 프로그래머블 게이트 어레이)가 여기서 설명된 방법들의 기능의 일부 또는 전부를 수행하기 위해 사용될 수 있다. 실시예들에서, 필드 프로그래머블 게이트 어레이는 여기서 설명된 방법들 중 하나를 수행하기 위한 마이크로프로세서와 함께 작동할 수 있다. 일반적으로, 방법들은 어떤 하드웨어 장치에 의해 수행되는 것이 바람직하다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (18)

  1. 애플리케이션을 분석하여 품질 정보를 제공하는 품질 정보 제공 장치의 품질 정보 제공 방법으로서,
    상기 애플리케이션의 소스 코드를 수집하는 단계;
    빅데이터 기반의 분석 엔진을 통해 상기 소스 코드로부터 객체에 대한 정보 및 객체들 간의 호출 관계에 대한 정보를 도출하는 단계;
    상기 객체에 대한 정보 및 상기 호출 관계에 대한 정보를 기반으로 미사용 소스를 검출하는 단계; 및
    상기 미사용 소스에 대한 정보를 포함하는 품질 정보를 시각화하는 단계를 포함하는, 품질 정보 제공 방법.
  2. 청구항 1에 있어서,
    상기 객체에 대한 정보 및 상기 호출 관계에 대한 정보를 기반으로 미사용 소스를 검출하는 단계는,
    상기 객체에 대한 정보 및 상기 호출 관계에 대한 정보를 기반으로 상기 소스 코드에 호출되는 객체가 존재하는지 판단하는 단계; 및
    상기 소스 코드에 상기 호출되는 객체가 존재하지 않는 경우, 상기 호출되는 객체와 관련된 소스 코드를 상기 미사용 소스로 검출하는 단계를 포함하는, 품질 정보 제공 방법.
  3. 청구항 1에 있어서,
    상기 미사용 소스에 대한 정보를 포함하는 품질 정보를 시각화하는 단계는,
    상기 검출한 미사용 소스를 UI(user interface) 영역, 적어도 하나의 BL(business logic) 영역, ORM(object relational mapping) 영역 및 DB(database) 영역으로 분류하여 시각화하는 단계를 포함하는, 품질 정보 제공 방법.
  4. 청구항 3에 있어서,
    상기 검출한 미사용 소스를 UI 영역, 적어도 하나의 BL 영역, ORM 영역 및 DB 영역으로 분류하여 시각화하는 단계는,
    상기 각 영역 별로 사용 소스와 미사용 소스의 비율 정보를 포함하는 결손 정보를 도출하는 단계를 더 포함하는, 품질 정보 제공 방법.
  5. 청구항 1에 있어서,
    상기 빅데이터 기반의 분석 엔진을 통해 상기 소스 코드로부터 미리 설정된 기간 동안 이용 이력이 없는 객체를 도출하는 단계; 및
    상기 도출한 이용 이력이 없는 객체와 관련된 소스 코드를 상기 미사용 소스에 포함시키는 단계를 더 포함하는, 품질 정보 제공 방법.
  6. 청구항 1에 있어서,
    상기 빅데이터 기반의 분석 엔진을 통해 상기 소스 코드로부터 객체 별로 수치화된 복잡도 지표를 산출하는 단계를 더 포함하는, 품질 정보 제공 방법.
  7. 청구항 6에 있어서,
    상기 복잡도 지표를 기반으로 객체 별로 단계화된 복잡성을 결정하는 단계를 더 포함하는, 품질 정보 제공 방법.
  8. 청구항 1에 있어서,
    상기 빅데이터 기반의 분석 엔진은,
    상기 빅데이터를 기반으로 데이터 마이닝(data mining)을 수행하여 구현되는, 품질 정보 제공 방법.
  9. 청구항 8에 있어서,
    상기 데이터 마이닝을 통해 패턴을 분석하여 사용 빈도가 높은 인터페이스 자원을 관리하는 단계를 더 포함하는, 품질 정보 제공 방법.
  10. 애플리케이션을 분석하여 품질 정보를 제공하는 품질 정보 제공 장치로서,
    프로세서(processor); 및
    상기 프로세서를 통해 실행되는 적어도 하나의 명령이 저장된 메모리(memory)를 포함하고,
    상기 적어도 하나의 명령은,
    상기 애플리케이션의 소스 코드를 수집하도록 실행되고,
    빅데이터 기반의 분석 엔진을 통해 상기 소스 코드로부터 객체에 대한 정보 및 객체들 간의 호출 관계에 대한 정보를 도출하도록 실행되고,
    상기 객체에 대한 정보 및 상기 호출 관계에 대한 정보를 기반으로 미사용 소스를 검출하도록 실행되고,
    상기 미사용 소스에 대한 정보를 포함하는 품질 정보를 시각화하도록 실행되는, 품질 정보 제공 장치.
  11. 청구항 10에 있어서,
    상기 적어도 하나의 명령은,
    상기 객체에 대한 정보 및 상기 호출 관계에 대한 정보를 기반으로 상기 소스 코드에 호출되는 객체가 존재하는지 판단하도록 실행되고,
    상기 소스 코드에 상기 호출되는 객체가 존재하지 않는 경우, 상기 호출되는 객체와 관련된 소스 코드를 상기 미사용 소스로 검출하도록 실행되는, 품질 정보 제공 장치.
  12. 청구항 10에 있어서,
    상기 적어도 하나의 명령은,
    상기 검출한 미사용 소스를 UI(user interface) 영역, 적어도 하나의 BL(business logic) 영역, ORM(object relational mapping) 영역 및 DB(database) 영역으로 분류하여 시각화하도록 실행되는, 품질 정보 제공 장치.
  13. 청구항 12에 있어서,
    상기 적어도 하나의 명령은,
    상기 각 영역 별로 사용 소스와 미사용 소스의 비율 정보를 포함하는 결손 정보를 도출하도록 실행되는, 품질 정보 제공 장치.
  14. 청구항 10에 있어서,
    상기 적어도 하나의 명령은,
    상기 빅데이터 기반의 분석 엔진을 통해 상기 소스 코드로부터 미리 설정된 기간 동안 이용 이력이 없는 객체를 도출하도록 실행되고,
    상기 도출한 이용 이력이 없는 객체와 관련된 소스 코드를 상기 미사용 소스에 포함시키도록 실행되는, 품질 정보 제공 장치.
  15. 청구항 10에 있어서,
    상기 적어도 하나의 명령은,
    상기 빅데이터 기반의 분석 엔진을 통해 상기 소스 코드로부터 객체 별로 수치화된 복잡도 지표를 산출하도록 실행되는, 품질 정보 제공 장치.
  16. 청구항 15에 있어서,
    상기 적어도 하나의 명령은,
    상기 복잡도 지표를 기반으로 객체 별로 단계화된 복잡성을 결정하도록 실행되는, 품질 정보 제공 장치.
  17. 청구항 10에 있어서,
    상기 빅데이터 기반의 분석 엔진은,
    상기 빅데이터를 기반으로 데이터 마이닝(data mining)을 수행하여 구현되는, 품질 정보 제공 장치.
  18. 청구항 17에 있어서,
    상기 적어도 하나의 명령은,
    상기 데이터 마이닝을 통해 패턴을 분석하여 사용 빈도가 높은 인터페이스 자원을 관리하도록 실행되는, 품질 정보 제공 장치.
KR1020190046756A 2019-04-22 2019-04-22 애플리케이션의 품질 정보 제공 방법 및 장치 KR102217092B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190046756A KR102217092B1 (ko) 2019-04-22 2019-04-22 애플리케이션의 품질 정보 제공 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190046756A KR102217092B1 (ko) 2019-04-22 2019-04-22 애플리케이션의 품질 정보 제공 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20200123891A true KR20200123891A (ko) 2020-11-02
KR102217092B1 KR102217092B1 (ko) 2021-02-19

Family

ID=73397606

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190046756A KR102217092B1 (ko) 2019-04-22 2019-04-22 애플리케이션의 품질 정보 제공 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102217092B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102244678B1 (ko) * 2020-12-28 2021-04-26 (주)컨텍 인공지능 기반의 위성영상을 이용한 교육서비스 제공 방법 및 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06119205A (ja) * 1992-10-01 1994-04-28 Toshiba Corp ソフトウェアの品質分析装置およびその高品質化支援装置
KR20110091558A (ko) * 2008-12-02 2011-08-11 아브 이니티오 테크놀로지 엘엘시 데이터 요소 간의 관계의 시각화 및 데이터 요소 속성의 그래픽 표현
KR20180009582A (ko) * 2016-07-19 2018-01-29 주식회사 파수닷컴 프로그램 분석 장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06119205A (ja) * 1992-10-01 1994-04-28 Toshiba Corp ソフトウェアの品質分析装置およびその高品質化支援装置
KR20110091558A (ko) * 2008-12-02 2011-08-11 아브 이니티오 테크놀로지 엘엘시 데이터 요소 간의 관계의 시각화 및 데이터 요소 속성의 그래픽 표현
KR20180009582A (ko) * 2016-07-19 2018-01-29 주식회사 파수닷컴 프로그램 분석 장치 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
‘소프트웨어 안전성 향상을 위한 소프트웨어 안전 진단 가이드’, 2016.12.* *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102244678B1 (ko) * 2020-12-28 2021-04-26 (주)컨텍 인공지능 기반의 위성영상을 이용한 교육서비스 제공 방법 및 장치

Also Published As

Publication number Publication date
KR102217092B1 (ko) 2021-02-19

Similar Documents

Publication Publication Date Title
TWI723528B (zh) 電腦執行的事件風險評估方法及裝置、電腦可讀儲存媒體以及計算設備
AU2010350247B2 (en) Code inspection executing system for performing a code inspection of ABAP source codes
US10169853B2 (en) Score weights for user interface (UI) elements
US11019099B2 (en) Method of application malware detection based on dynamic API extraction, and readable medium and apparatus for performing the method
CN107168995B (zh) 一种数据处理方法及服务器
US10437717B2 (en) Defect reporting in application testing
CN105930409A (zh) 基于动态生成规则的数据校验方法及装置
US11055208B1 (en) Systems and methods for automatically assessing and conforming software development modules to accessibility guidelines in real-time
US20160162539A1 (en) Computer executable method of generating analysis data and apparatus performing the same and storage medium for the same
JP6419667B2 (ja) テストdbデータ生成方法及び装置
CN105184156A (zh) 一种安全威胁管理方法和系统
US6853963B1 (en) Analyzing an extended finite state machine system model
KR102217092B1 (ko) 애플리케이션의 품질 정보 제공 방법 및 장치
CN106681904B (zh) 测试件覆盖率及覆盖应用接口的分析方法、装置
CN113900955A (zh) 自动化测试方法、装置、设备及存储介质
CN111723182B (zh) 一种用于漏洞文本的关键信息抽取方法及装置
Forouzani et al. Method for assessing software quality using source code analysis
US20240086165A1 (en) Systems and methods for building and deploying machine learning applications
US11842175B2 (en) Dynamic recommendations for resolving static code issues
KR102205810B1 (ko) 인공지능 학습데이터 생성을 위한 크라우드소싱 기반 프로젝트의 재작업 결과의 자동 반려 방법
CN114490413A (zh) 测试数据的准备方法及装置、存储介质和电子设备
CN114968816A (zh) 基于数据模拟的策略测试方法、装置、设备及存储介质
CN109558418B (zh) 一种自动识别信息的方法
CN112464237A (zh) 一种静态代码安全诊断方法及装置
Hays et al. Validation of software testing experiments: A meta-analysis of icst 2013

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right