KR20180119857A - 소프트웨어 변경 영향성 분석 방법 및 장치 - Google Patents
소프트웨어 변경 영향성 분석 방법 및 장치 Download PDFInfo
- Publication number
- KR20180119857A KR20180119857A KR1020170053498A KR20170053498A KR20180119857A KR 20180119857 A KR20180119857 A KR 20180119857A KR 1020170053498 A KR1020170053498 A KR 1020170053498A KR 20170053498 A KR20170053498 A KR 20170053498A KR 20180119857 A KR20180119857 A KR 20180119857A
- Authority
- KR
- South Korea
- Prior art keywords
- change
- analyzing
- influence
- analysis
- software
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3616—Software analysis for verifying properties of programs using software metrics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
본 발명의 일 실시예에 따른 소프트웨어 변경 영향성 분석 방법에 있어서 은 서로 다른 두 개의 소스코드를 포함하는 데이터를 입력하는 단계, 상기 입력 데이터를 신텍스(syntax) 정보를 포함하는 데이터베이스 스키마에 기초하여 변경 유형별로 분석하는 단계 및 상기 변경 유형별로 분석 결과를 출력하는 단계를 포함할 수 있다.
또한, 본 발명의 일 실시예에 따른 소프트웨어 변경 영향성 분석 장치는 서로 다른 두 개의 소스코드를 포함하는 데이터를 입력하는 입력부, 상기 입력 데이터를 신텍스 정보를 포함하는 데이터베이스 스키마에 기초하여 변경 유형별로 분석하는 소프트웨어 변경 영향성 분석부 및 상기 변경 유형별로 분석 결과를 출력하는 보고서 생성부를 포함할 수 있다.
또한, 본 발명의 일 실시예에 따른 소프트웨어 변경 영향성 분석 장치는 서로 다른 두 개의 소스코드를 포함하는 데이터를 입력하는 입력부, 상기 입력 데이터를 신텍스 정보를 포함하는 데이터베이스 스키마에 기초하여 변경 유형별로 분석하는 소프트웨어 변경 영향성 분석부 및 상기 변경 유형별로 분석 결과를 출력하는 보고서 생성부를 포함할 수 있다.
Description
본 발명은 소프트웨어 변경 영향성 분석 방법 및 장치에 관한 것으로, 더욱 상세하게는 소프트웨어 수정 시, 변경된 부분을 추출하고 직접적으로 변경되지는 않았지만 변경 부분에 의하여 간접적으로 영향을 받는 부분까지 정밀하게 분석하여 해당 부분만 평가 가능하도록 수행되는 소프트웨어 변경 영향성 분석 방법 및 장치에 관한 것이다.
종래의 기술은 사용자의 요구사항 증가로 인해 점차 복잡해지는 임베디드 소프트웨어의 신뢰성을 확보하기 위하여 다양한 테스트 기법이 요구되고 있다. 특히 소프트웨어 수정 시, 변경된 부분이 요구사항을 만족하는지 확인하는 효율적인 회귀 테스트 기법을 선택하는 것이 중요하다. 그러나 소프트웨어가 복잡해짐에 따라 한 모듈의 소규모 변경 시에도 여러 모듈에 영향을 끼칠 수 있어, 소프트웨어가 소규모 변경되더라도 전체 시스템에 대하여 전수 검사를 수행하는 경우가 많다. 이러한 경우, 소프트웨어의 변경과 상관없는 부분까지도 재평가한다는 점에서 평가 효율성이 떨어질 수밖에 없다.
특히, 기존 소프트웨어가 변경된 사항 위주로만 평가를 수행하게 되는 경우가 있는데, 이러한 경우 소프트웨어 개선 사항과 무관한 기능 오류가 발생하는 문제점이 있다.
본 발명에서는 소프트웨어 변경 영향성 분석 방법 및 장치를 통하여, 소프트웨어 수정 시, 변경된 부분을 추출하고 직접적으로 변경되지는 않았지만 변경 부분에 의하여 간접적으로 영향을 받는 부분까지 정밀하게 분석하여 해당 부분만 평가 가능하도록 하는 소프트웨어 변경 영향성 분석 방법 및 장치를 제공하는 그 목적이 있다.
본 발명의 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당 업자에게 명확하게 이해될 수 있을 것이다.
상기와 같은 기술적 과제를 해결하기 위하여, 소프트웨어 변경 영향성 분석 방법은 서로 다른 두 개의 소스코드를 포함하는 데이터를 입력하는 단계, 상기 입력 데이터를 신텍스(syntax) 정보를 포함하는 데이터베이스 스키마에 기초하여 변경 유형별로 분석하는 단계 및 상기 변경 유형별로 분석 결과를 출력하는 단계를 포함할 수 있다.
또한, 소프트웨어 변경 영향성 분석 장치는 서로 다른 두 개의 소스코드를 포함하는 데이터를 입력하는 입력부, 상기 입력 데이터를 신텍스 정보를 포함하는 데이터베이스 스키마에 기초하여 변경 유형별로 분석하는 소프트웨어 변경 영향성 분석부 및 상기 변경 유형별로 분석 결과를 출력하는 보고서 생성부를 포함할 수 있다.
본 발명에 따른 소프트웨어 변경 영향성 분석 방법 및 장치에 대한 효과를 설명하면 다음과 같다.
첫째, 소프트웨어 변경 영향성 분석 장치를 사용함으로써, 개발자가 수동으로는 추적이 불가능한 부분에 대해서도 분석이 가능해 지는 장점이 있다.
둘째, 소프트웨어 변경 영향성 분석 장치는 변수 단위로 분석 가능하므로 분석 정밀도가 향상되고, 평가 범위도 줄어들게 되어 평가 효율성이 높아지는 장점이 있다.
셋째, 소프트웨어 변경 시, 본 기술을 적용하여 변경 기능과 변경 영향성 부분에 대하여도 평가 가능하므로, 변경 기능만 평가할 경우 대비 정확성 및 신뢰성을 높이는 장점이 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 소프트웨어 변경 영향성 분석 장치를 도시한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 신텍스 정보를 포함한 데이터베이스 스키마의 예시도이다.
도 3은 소프트웨어 변경 영향성 분석 방법을 도시한 예시도이다.
도 4는 본 발명의 일 실시예에 따른 변경 유형별 변경 영향 분석의 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 데이터 흐름에 대한 변경 영향 분석의 예시도이다.
도 6은 본 발명의 일 실시예에 따른 소프트웨어 변경 영향성 분석부의 분석 수행 절차를 도시한 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 소프트웨어 변경 영향성 분석 출력의 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 소프트웨어 변경 영향성 분석부의 평가항목 매칭부의 예시도이다.
도 9는 본 발명의 일 실시예에 따른 소프트웨어 변경 영향성 분석부의 분석 수행 절차를 도시한 예시도이다.
도 10은 본 발명의 일 실시예에 따른 소프트웨어 변경 영향성 분석의 흐름을 도시한 예시도이다.
도 11은 본 발명의 일 실시예에 따른 평가 항목 매칭의 흐름을 도시한 예시도이다.
도 2는 본 발명의 일 실시예에 따른 신텍스 정보를 포함한 데이터베이스 스키마의 예시도이다.
도 3은 소프트웨어 변경 영향성 분석 방법을 도시한 예시도이다.
도 4는 본 발명의 일 실시예에 따른 변경 유형별 변경 영향 분석의 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 데이터 흐름에 대한 변경 영향 분석의 예시도이다.
도 6은 본 발명의 일 실시예에 따른 소프트웨어 변경 영향성 분석부의 분석 수행 절차를 도시한 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 소프트웨어 변경 영향성 분석 출력의 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 소프트웨어 변경 영향성 분석부의 평가항목 매칭부의 예시도이다.
도 9는 본 발명의 일 실시예에 따른 소프트웨어 변경 영향성 분석부의 분석 수행 절차를 도시한 예시도이다.
도 10은 본 발명의 일 실시예에 따른 소프트웨어 변경 영향성 분석의 흐름을 도시한 예시도이다.
도 11은 본 발명의 일 실시예에 따른 평가 항목 매칭의 흐름을 도시한 예시도이다.
이하, 본 발명의 실시예들이 적용되는 장치 및 다양한 방법들에 대하여 도면을 참조하여 보다 상세하게 설명한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.
실시예의 설명에 있어서, 각 구성 요소의 " 상(위) 또는 하(아래)", "전(앞) 또는 후(뒤)"에 형성되는 것으로 기재되는 경우에 있어, "상(위) 또는 하(아래)" 및"전(앞) 또는 후(뒤)"는 두 개의 구성 요소들이 서로 직접 접촉되거나 하나 이상의 또 다른 구성 요소가 두 개의 구성 요소들 사이에 배치되어 형성되는 것을 모두 포함한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성 요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성 요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재될 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥 상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명의 실시예들은 소프트웨어 수정 시, 변경된 부분을 추출하고 직접적으로 변경되지는 않았지만 변경 부분에 의하여 간접적으로 영향을 받는 부분까지 정밀하게 분석하여, 직접 및 간접적으로 영향받은 부분만 평가 가능하도록 하는 소프트웨어 변경점과 변경 영향성을 분석하는 방법 및 장치에 관한 것이다.
도 1은 본 발명의 일 실시예에 따른 소프트웨어 변경 영향성 분석 장치를 도시한 블록도이다.
도 1을 참조하면, 소프트웨어 변경 영향성 분석 장치(100)는, 입력부(110), 소프트웨어 변경 영향성 분석부(120), 보고서 생성부(130), 소프트웨어변경 영향성 분석 도구(140), 플러그인 지원 모듈(150), 및 H2workbench(160)를 포함할 수 있다.
입력부(110)는 서로 다른 두 개의 소스코드를 포함하는 데이터를 입력할 수 있다.
상기 입력부(110)는 이전 버전 및 현재 버전의 소스코드를 포함하는 입력데이터를 수신할 수 있다.
상기 입력 데이터를 신텍스 정보를 포함하는 데이터베이스 스키마에 기초하여 변경 유형별로 분석할 수 있다.
상기 데이터베이스 스키마는 데이터베이스에서 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의한 구조이다. 데이터베이스 관리 시스템(Data Base Management System)이 주어진 설정에 따라 데이터베이스 스키마를 생성하며, 데이터베이스 사용자가 자료를 저장, 조회, 삭제, 변경할 때 데이터베이스 관리 시스템은 데이터베이스 스키마를 참조하여 명령을 수행한다.
상기 데이터베이스 스키마는 프로그램의 기본적인 시멘틱 정보(semantic)를 포함할 수 있다.
소프트웨어 변경 영향성 분석부(120)는 변경 영향성 플러그인(121), 변경점 분석 모듈(122), 변경 영향성 분석 모듈(123), 코드 정보 분석 플러그인(124), 평가항목 매칭부(125)를 포함할 수 있다.
소프트웨어 변경 영향성 분석부(120)는 데이터 흐름에 따른 변경 영향성을 분석할 수 있다. 소프트웨어 변경 영향성 분석부(120)는 제어 흐름에 따른 변경 영향성을 분석할 수 있다. 소프트웨어 변경 영향성 분석부(120)는 데이터 타입 정의 및 선언에 따른 변경 영향성을 분석할 수 있다.
변경 영향성 분석 플러그인(121)은 입력부(110)로부터 수신한 이전 버전 코드에서 변경 이후 삭제 또는 변경되는 라인의 영향성을 분석할 수 있다.
변경점 분석 모듈(122)은 상기 이전 버전의 변경 영향 라인을 현재 버전으로 매핑 할 수 있다.
변경 영향성 분석 모듈(123)은 상기 이전 버전 영향 라인과 현재 버전에서 추가 또는 변경된 라인의 영향성을 분석할 수 있다.
변경 영향성 분석 모듈(123)은 상기 변경 영향 라인을 이용한 함수 및 전역 변수 변경 영향성을 분석할 수 있다.
상기 전역 변수는 프로그램 내 모든 모듈들을 변수 선언의 유효한 영역으로 취하는 변수로 주어진 프로그램 어디에서나 접근이 가능한 변수일 수 있다.
상기 변경 영향성 분석 모듈(123)은 상기 분석 결과를 변수, 함수, 파일, 라인 중 적어도 하나를 포함하는 분석대상으로 분류할 수 있다.
상기 변경 영향성 분석 모듈(123)은 상기 분류된 분석단위에 기초하여 직접변경, 간접변경, 무관 중 적어도 하나를 포함하는 항목으로 분류하여 출력하도록 수행할 수 있다.
상기 코드 정보 분석 플러그인(124)은 심벌 데이터 베이스 추출 모듈을 포함할 수 있다. 상기 심벌데이터베이스 추출 모듈은 프로그램의 시멘틱 정보 및 신텍스 정보를 분석하여 저장할 수 있다.
상기 평가항목 매칭부(125)는 상기 소프트웨어 변경 영향성 분석 결과에 기초하여 재평가가 필요한 항목을 분석할 수 있다.
상기 평가항목 매칭부(125)는 상기 소프트웨어 분석 결과, 기능별 입출력 리스트(820) 및 평가항목 리스트(830)를 입력 데이터로 분석하여 재평가가 필요한 평가항목(840)을 추출할 수 있다.
보고서 생성부(130)는 보고서 생성 모듈(131) 및 변경 영향성 분석결과 출력 모듈(132)를 포함할 수 있다.
상기 보고서 생성 모듈(131)은 상기 소프트웨어 변경 영향성 분석부로부터 수신한 분석 결과를 레포트로 생성할 수 있다.
상기 변경 영향성 분석결과 출력 모듈(132)은 상기 보고 생성 모듈로부터 수신한 레포트를 출력할 수 있다.
상기 보고서 생성부(130)는 상기 소프트웨어 변경 영향성 분석 결과를 디스플레이할 수 있다.
상기 보고서 생성부(130)는 상기 소프트웨어 변경 영향성 분석 결과를 평가항목 매칭부(125)로 출력할 수 있다.
상기 소프트웨어 변경 영향성 분석 도구(140)는 상기 소프트웨어 변경 영향성 분석부(120) 및 보고서 생성부(130)를 포함할 수 있다.
상기 플러그인 지원 모듈(150)은 소프트웨어 영향성 분석도구(140)의 다양한 분석 및 플러그인을 지원할 수 있다.
상기 H2workbench(160)는 사용자 인터페이스를 제공할 수 있다.
상기 H2workbench(160)는 상기 소프트웨어 영향성분석도구(140)의 분석결과를 출력할 수 있다.
도 2는 본 발명의 일 실시예에 따른 신텍스 정보를 포함한 데이터베이스 스키마의 예시도이다.
도 2를 참조하면, 상기 데이터베이스 스키마는, 시멘틱 정보(210) 및 신텍스 정보(220)를 포함할 수 있다.
상기 시멘틱 정보(210)는 타입, 이름, 주소, 값 등의 정보를 포함할 수 있다.
또한, 상기 데이터베이스 스키마는 신텍스 정보를 포함할 수 있다.
예를 들어, 상기 신텍스 정보는 상기 데이터의 분석 객체가 위치한 파일명, 시작 위치 및 종료 위치의 행과 열 정보를 포함할 수 있다. 상기 데이터베이스 스키마에 기초하여, 각 심벌의 상세 위치와 영향 범위에 대한 정보를 분석할 수 있다.
소프트웨어 변경 영향성 분석부에서는 각 심벌의 상세 위치와 영향 범위에 대한 추가 정보를 분석할 수 있다. 상기 추가 정보를 수행하기 위하여 대상 프로그램을 AST(Abstract Syntax Tree)와 Lexer 수준에서 정밀하게 분석하여 정보를 추출하고 그 결과를 데이터베이스에 기록하여 변수 영향성 분석에 활용할 수 있다.
도 3은 소프트웨어 변경 영향성 분석 방법을 도시한 예시도이다.
도 3(a)은 일반적인 소프트웨어 변경 분석 방법을 도시한 예시도이다.
시스템은 평가항목 1, 평가항목 2 및 평가항목 3 에 관한 기능을 가질 수 있다. 상기 평가항목 1, 평가항목 2, 및 평가항목 3 소프트웨어는 각각의 기능 1, 기능 2, 기능3 및 기능4를 포함할 수 있다.
이러한 소프트웨어 변경 분석 방법에 따라 시스템을 검사하는 경우, 평가항목 1의 기능 2의 코드 변경을 분석할 수 있다.
상기 평가항목 1의 기능 2가 변경되는 경우, 상기 종래의 소프트웨어 변경 분석 방법은 변경 부문과 무관하게 평가항목 1, 평가항목, 2 및 평가항목 3을 포함하여 전수검사를 수행하게 된다. 이러한 경우 변경과 상관없는 부분까지도 재평가한다는 점에서 평가 효율성이 떨어질 수 있다.
도 3(b)을 참조하면, 본 실시예에 따른 소프트웨어 변경 영향성 분석도구(140)는, 소프트웨어 수정 시, 변경된 부분을 추출하고 직접적으로 변경되지는 않았지만 변경 부분에 의하여 간접적으로 영향을 받는 부분까지 정밀하게 분석하여, 해당 부분만 출력하는 것을 도시하고 있다.
시스템은 평가항목 1, 평가항목 2 및 평가항목 3 에 관한 기능을 가질 수 있다. 상기 평가항목 1, 평가항목 2, 및 평가항목 3 소프트웨어는 각각의 기능 1, 기능 2, 기능3 및 기능4를 포함할 수 있다.
예를 들어, 소프트웨어 변경 영향성 분석도구(140)가 변경된 시스템을 검사하는 경우, 평가항목 1의 기능 2 및 기능 4와 평가항목 3의 기능 1, 2 및 4의 변경을 분석할 수 있다.
상기 소프트웨어 변경 영향성 분석도구(140)는 평가항목 1의 기능 2의 코드의 변경을 확인할 수 있다. 상기 시스템의 변경된 코드에 의해 직접적으로 변경되는 것을 직접변경(310)이라 할 수 있다.
상기 평가항목 1의 기능 2가 직접 변경(310)되는 경우, 상기 평가항목 1의 기능 4의 코드 및 상기 평가항목 3의 기능 1은 상기 평가항목 1의 기능 2에 의하여 간접 변경(320)될 수 있다.
상기 간접 변경(320)은 상기 직접 변경(310)에 의해 영향성을 받아 변경되는 것이라고 할 수 있다.
상기 평가항목 3의 기능 1이 간접 변경되는 경우, 평가항목 3의 기능 4는 상기 평가항목 3 기능 1에 의하여 간접 변경될 수 있다.
상기 평가항목 3의 기능 4가 변경되는 경우, 평가항목 3의 기능 2는 상기 평가항목 3의 기능 4에 의하여 간접 변경될 수 있다.
상기 소프트웨어 변경 영향성 분석도구(140) 에 의해 영향 범위가 분석된 경우, 보고서 생성부(130)는 상기 평가항목 1의 일부(331)인 기능 2 및 기능 4에 대한 변경 영향성을 출력할 수 있다.
보고서 생성부(130)는 상기 평가항목 3의 일부(332)인 기능 1, 기능 2 및 기능 4에 대한 변경 영향성을 출력할 수 있다.
도 4는 본 발명의 일 실시예에 따른 변경 유형별 변경 영향 분석의 흐름도이다.
소프트웨어 변경 영향성 분석부(120)는 데이터가 입력되는 경우, 변경 유형에 따른 분석을 수행할 수 있다(S410).
상기 변경 유형은 데이터 흐름에 대한 변경 영향성 분석(S420), 제어 흐름에 대한 변경 영향성 분석(S430), 데이터 파일 정의 및 선언에 따른 변경 영향성 분석(S440)을 포함할 수 있다.
상기 데이터 변수가 정의되고 사용되는 관계를 분석하여 변경에 대한 파급 효과를 분석하는 기술이다. 일반 전역 변수나 함수가 정의되고, 사용되는 관계와 포인터 변수에 의한 명시적인 호출이 아닌 간접 재귀에 대한 영향도 분석 가능하다.
상기 데이터 흐름에 대한 변경 영향성 분석은 변수 변경 영향성 분석 단계(S421) 및 함수 변경 영향성 분석 단계(S422)를 포함할 수 있다.
상기 제어 흐름에 대한 변경 영향성 분석은 지정 변수에 따른 영향성을 분석하는 단계, 반복 및 조건에 따른 영향성을 분석하는 단계, 함수 호출에 따른 영향성을 분석하는 단계를 포함할 수 있다(S430).
상기 지정 변수에 따른 영향성을 분석하는 단계는 for, while, do 및 switch 조건에 기초하여 해당 신텍스 내 지정 변수에 따른 영향성을 분석할 수 있다(S431).
상기 반복 및 조건에 따른 영향성을 분석하는 단계는 break, continue, case 닢 default 조건에 해당 신텍스를 포함하는 반복이나 조건문에서 지정되는 변수에 따른 영향성을 분석할 수 있다(S432).
상기 함수 호출에 따른 영향성을 분석하는 단계는 함수 호출 및 return 관계 분석 조건에 따라 함수 return이 사용되는 지정문에 대하여 변경에 따른 영향성 분석할 수 있다(S433).
상기 데이터 파일 정의 및 선언에 따른 변경 영향성 분석은 변수의 정의 변경에 따른 영향성을 분석하는 단계 및 구조체의 정의 변경에 따른 영향성을 분석하는 단계를 포함할 수 있다(S440).
상기 변수의 정의 변경에 따른 영향성을 분석하는 단계는 변수의 정의가 변경될 경우 해당 변수가 사용되는 위치와 타입에 따라 변경 영향성을 분석할 수 있다(S441).
상기 구조체의 정의 변경에 따른 영향성을 분석하는 단계는 structure, union 구조체 정의 변경 시 필드 변경을 고려하여 변경 영향성을 분석할 수 있다(S442). 상기 데이터 파일 정의 및 선언에 따른 변경 영향성 분석은 enum item 변경 시, 상기 enum이 사용되는 부분에 따른 변경 영향성을 분석할 수 있다.
도 5는 본 발명의 일 실시예에 따른 데이터 흐름에 대한 변경 영향 분석의 예시도이다.
도 5(a)는 본 발명의 일 실시에에 따라 변수 변경 영향성 분석 과정의 예시도이다.
도 5(a)를 참조하면, 소프트웨어 변경 영향성 분석부(120)에 입력데이터로 이전 버전의 소스코드와 현재 버전의 소스코드가 입력된 경우이다.
이전 버전의 소스코드는 제1라인에 c= a+1, 제2라인에 a=3, 제3라인에 b=a를 포함할 수 있다. 현재 버전의 소스코드는 제1라인에 c= a+1, 제2라인에 a=4, 제3라인에 b=a를 포함할 수 있다.
상기 소프트웨어 변경 영향성 분석부(120)는 변수 변경 영향성 분석과정을 통해 이전 버전 및 현재 버전의 비교하여 분석 결과를 출력할 수 있다.
제1라인의 변수 c는 변수 a의 변경 이전 문장으로 변수 c에 대한 영향이 없을 수 있다.
상기 분석 결과에 기초하여, 제2라인의 변수 a 가 3에서 4로 변한 경우, 상기 제2 라인의 변수 a는 직접변경 되었다고 분석할 수 있다.
상기 제2라인의 영향을 받는 제3라인은 또한, 제3라인의 변수 b는 상기 제2라인의 변수 a의 변경 이후 문장으로 변수 a는 변수 b에 대한 영향을 받을 수 있다. 이때, 사기 제3라인의 변수 b는 간접변경 되었다고 분석할 수 있다.
상기 변수 변경 영향성 분석과정은 도달 가능성 분석을 통하여 영향성 분석 정밀도를 향상시킬 수 있다.
도 5(b)는 본 발명의 일 실시예에 따라 함수 변경 영향성 분석 과정의 예시도이다.
도 5(b)를 참조하면, 함수 변경 영향성 분석 과정을 통해, 소프트웨어의 직접변경, 간접변경, 삭제등의 변경 영향성을 분석할 수 있다.
상기 함수 변경 영향성 분석은 이전 버전 및 현재 버전의 비교를 통하여, 함수 E, 함수 F가 변경되고, 함수 G가 삭제되는 경우, 함수 E 및 함수 F의 변경은 직접변경 되었다고 분석할 수 있다.
함수 E 및 함수 F의 변경되는 경우, 상기 함수 E와 함수 F의 상위 함수 B는 함수 E 및 함수 F에 의하여 영향 받으므로, 간접변경 되었다고 분석할 수 있다.
또한, 함수 A는 함수 B의 변경에 영향을 받으므로, 함수 A는 간접변경 되었다고 분석할 수 있다.
도 6은 본 발명의 일 실시예에 따른 소프트웨어 변경 영향성 분석부의 분석 수행 절차를 도시한 흐름도이다.
도 6을 참조하면, 소프트웨어 변경 영향성 분석부(120)는 입력부(110)로부터 분석 대상인 이전버전 및 현재 버전의 소스코드를 입력 받을 수 있다(S610).
변경 영향성 분석 플러그인(121)은 이전 버전 코드에서 변경 이후 삭제 또는 변경되는 라인의 영향성을 분석할 수 있다(S620).
변경점 분석 모듈(122)은 이전 버전의 변경 영향 라인을 현재 버전으로 매핑 할 수 있다(S630).
변경 영향성 분석 모듈(123)은 이전 버전 영향 라인과 현재 버전에서 추가 또는 변경된 라인의 영향성을 종합적으로 분석할 수 있다(S640).
상기 변경 영향성 분석 모듈(123)은 변경 영향 라인을 이용한 함수 및 전역 변수 변경 영향을 분석할 수 있다(S650).
상기 보고서 생성부(130) 는 소프트웨어 변경 영향성 분석 결과를 출력할 수 있다(S660).
상기 소프트웨어 변경 영향성 분석 결과를 출력 결과는 아래[표1]를 참조할 수 있다.
예를 들어, 시스템 A의 경우, 개선 전 및 후의 소스코드 분석 결과, 직접 변경된 함수가 89개, 변경에 따라 간접적으로 영향받는 함수가 142개, 변경에 따른 영향이 없는 함수가 1,573개로 분석될 수 있다.
따라서, 소프트웨어 변경 영향성 분석 장치(100)를 적용한다면 직접 변경(310) 및 간접 변경(320)에 따른 231개의 함수에 대한 테스트만 수행하여 출력할 수 있다. 도 7은 본 발명의 일 실시예에 따른 소프트웨어 변경 영향성 분석 출력의 흐름도이다.
도 7을 참조하면, 상기 평가항목 매칭 단계는 상기 소프트웨어 변경 영향성 분석 결과, 시스템 사양서 및 테스트 케이스(Test case)를 포함하는 입력파일을 수신할 수 있다(S710). 상기 시스템 사양서는 기능별 입출력 리스트를 포함할 수 있다. 상기 시스템 사양서는 기능 분류, 신호명을 포함하는 정보 일수 있다.
상기 입력파일에 기초하여 평가 항목을 매칭할 수 있다(S720). 상기 매칭 결과에 기초하여, 재평가가 필요한 항목을 출력하도록 수행하는 단계를 포함할 수 있다(S730).
도 8은 본 발명의 일 실시예에 따른 소프트웨어 변경 영향성 분석부의 평가항목 매칭부의 예시도이다.
도 8을 참조하면 평가항목 매칭부(125)에 입력 및 출력 파일들의 예시이다.
소프트웨어 분석 결과(810)는 변경 영향성 분석 결과 변경 및 변경에 대한 영향성이 표시된 이 있는 부분의 리스트이다. 상기 변경 및 변경에 대한 영향성은 변수 및 함수를 포함할 수 있다.
기능별 입출력 리스트(820)는 차량 특화 시스템의 정해진 양식의 기능별 입력 및 출력 신호와 파라미터에 대한 리스트이다.
상기 기능별 입출력 리스트(820)는 램프 및 트렁크에 관한 기능을 리스트로 표시할 수 있다. 상기 램프 및 트렁크는 입력신호 및 출력신호에 대응하는 파라미터인 신호명을 포함할 수 있다.
상기 램프 입력신호에 대한 신호명은 C_AstDrsw 및 C_ DrvDrSw을 포함할 수 있다. 상기 램프 출력신호에 대한 신호명은 L_Lamp_OUT을 포함할 수 있다. 상기 트렁크 입력신호에 대한 신호명은 C_TrunkSW 및 b_ BAState로 포함할 수 있다. 상기 트렁크 출력신호에 대한 신호명은 C_TrunkRly를 포함할 수 있다.
평가항목 리스트(830)는 시스템 평가를 위한 기능별 테스트 케이스라고 할 수 있다. 상기 평가항목 리스트(830)는 램프 및 트렁크에 관한 평가항목을 리스트로 표시할 수 있다.
상기 램프에 관한 평가항목은 Lamp Test Case 1, Lamp Test Case 2 및 Lamp Test Case N를 포함할 수 있다. 상기 트렁크에 관한 평가항목은 Trunk Test Case 1, Trunk Test Case 2 및 Trunk Test Case N를 포함할 수 있다. 상기 평가항목 리스트(830)의 평가항목의 수는 시스템에 대응하여 변경될 수 있다.
평가항목 매칭부(125)는 상기 소프트웨어 분석 결과, 기능별 입출력 리스트(820) 및 평가항목 리스트(830)를 입력 데이터로 분석하여 재평가가 필요한 평가항목(840)을 추출한다.
상기 재평가가 필요한 평가항목은 Trunk Test Case 1 및 Trunk Test Case 2를 포함할 수 있다.
도 9는 본 발명의 일 실시예에 따른 소프트웨어 변경 영향성 분석부의 분석 수행 절차를 도시한 예시도이다.
도 9를 참조하면, 소프트웨어 변경 영향성 분석부(120)는 입력부(110)로부터 분석 대상인 이전버전 및 현재 버전의 소스코드를 입력 받을 수 있다.
변경 영향성 분석 플러그인(121)은 이전 버전 코드에서 변경 이후 삭제 또는 변경되는 라인의 영향성을 분석할 수 있다. 상기 변경 영향성 분석 플러그인(121)을 이용하여. 이전버전의 변경점을 분석 결과로 출력할 수 있다.
이때, 상기 변경 영향성 분석 플러그인(121)은 이전 버전에서 코드 변경에 따른 직접 변경이 있는 경우, 상기 직접 변경된 부분을 표시할 수 있다. 상기 이전 버전의 소스코드에서 직접적인 변경에 따른 간접 변경이 있는 경우, 상기 간접 변경된 부분을 표시할 수 있다.
변경점 분석 모듈(122)은 이전 버전의 변경 영향 라인을 현재 버전으로 매핑 할 수 있다.
변경 영향성 분석 모듈(123)은 이전 버전 영향 라인과 현재 버전에서 추가 또는 변경된 라인의 영향성을 종합적으로 분석할 수 있다. 상기 변경점 분석 모듈에 의해 매핑된 현재 버전의 소스코드는 이전 버전의 변경점을 포함할 수 있다. 상기 직접 변경에 의해 표시되는 부분을 빨간색으로 마킹 할 수 있다. 상기 직접 변경에 의해 표시되는 부분을 노랑색으로 마킹 할 수 있다.
이때, 상기 현재 버전의 소스코드에서 코드 변경에 따른 직접 변경이 있는 경우, 상기 직접 변경된 부분을 표시할 수 있다. 상기 현재 버전의 소스코드에서 직접적인 변경에 따른 간접 변경이 있는 경우, 상기 간접 변경된 부분을 표시할 수 있다. 상기 직접 변경에 의해 표시되는 부분을 빨간색으로 마킹 할 수 있다. 상기 직접 변경에 의해 표시되는 부분을 노랑색으로 마킹 할 수 있다.
상기 변경 영향성 분석 모듈(123)은 변경 영향 라인을 이용한 함수 및 전역 변수 변경 영향을 분석할 수 있다. 상기 분석결과는 기본 통계, 함수 통계, 변수 통계를 포함할 수 있다.
상기 보고서 생성부(130) 는 소프트웨어 변경 영향성 분석 결과를 출력할 수 있다.
도 10은 본 발명의 일 실시예에 따른 소프트웨어 변경 영향성 분석의 흐름을 도시한 예시도이다.
도 10을 참조하면, 소프트웨어 변경 영향성 분석 도구(140)는 입력부(110)로부터 이전 버전 및 현재 버전의 소스코드를 포함하는 입력데이터를 수신할 수 있다. 상기 이전 버전의 소스코드는 c: a+b를 포함할 수 있다. 상기 현재 버전의 소스코드는 c:a+b+1 를 포함할 수 있다.
상기 입력데이터가 입력되는 경우, 소프트웨어 변경 영향성 분석 도구(140)는 변경 영향석 분석을 선택할 수 있다.
상기 변경 영향석 분석에 통한 소프트웨어 변경 영향성 분석 도구의 결과화면을 출력할 수 있다.
상기 소프트웨어 변경 영향성 분석 도구의 결과화면을 출력할 수 있다.
상기 소프트웨어 변경 영향성 분석 도구의 결과화면은 상기 분석 결과를 변수, 함수, 파일, 라인 중 적어도 하나를 포함하는 분석대상으로 분류하여 표시할 수 있다.
상기 소프트웨어의 결과 화면은 변경통계 분석을 상기 결과 화면의 일 영역에 표시할 수 있다. 상기 소프트웨어의 결과 화면은 함수의 흐름도를 상기 결과 화면의 일영역에 표시할 수 있다.
이때, 상기 표시된 함수 중 상기 직접 변경에 의해 표시되는 부분을 빨간색으로 표시할 수 있다. 상기 직접 변경에 의해 표시되는 부분을 노란색으로 표시할 수 있다.
소프트웨어 변경 영향성 분석 도구(140)는 상기 변경 영향성 분석 결과를 출력할 수 있다.
보고서 생성 모듈(131)은 상기 소프트웨어 변경 영향성 분석부로부터 수신한 분석 결과를 레포트로 생성할 수 있다.
변경 영향성 분석결과 출력 모듈(132)은 상기 보고 생성 모듈로부터 수신한 레포트를 출력할 수 있다.
도 11은 본 발명의 일 실시예에 따른 평가 항목 매칭의 흐름을 도시한 예시도이다.
도 11을 참조하면, 소프트웨어 변경 영향성 분석 단계는 상기 도 10에 설명과 유사하므로, 유사한 부분에 대한 설명은 생략하겠다.
소프트웨어 변경 영향성 분석 도구(140)는 소프트웨어 변경 영향성을 분석 결과를 결과 파일로 출력할 수 있다. 상기 결과 파일은 소프트웨어 변경 영향성 분석 도구로부터 생성된 변경점 및 변경 영향성 있는 변수, 함수 리스트를 포함할 수 있다.
평가항목 매칭부(125)는 상기 결과 파일을 입력 데이터로 포함할 수 있다. 또한, 상기 평가항목 매칭부(125)는 사양서 정보, 및 테스트케이스 정보를 입력데이터로 포함할 할 수 있다.
상기 평가항목 매칭부(125)는 평가항목 매칭 도구를 이용하여 상기 소프트웨어 분석 결과 파일, 사양서 및 테스트케이스를 입력 데이터로 하여 평가항목을 분석하고, 재평가가 필요한 평가항목을 추출한다.
상기 평가항목 매칭부(125)는 소프트웨어 변경 영향성 분석 결과를 바탕으로 재평가 필요한 항목을 출력할 수 있다.
상술한 일 실시예에 따른 방법은 컴퓨터에서 실행되기 위한 프로그램으로 제작되어 컴퓨터가 읽을 수 있는 기록 매체에 저장될 수 있으며, 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장시스템 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 상술한 방법을 구현하기 위한 기능적인(function)프로그램, 코드 및 코드 세그먼트들은 실시예가 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
110: 입력부
120: 소프트웨어 변경 영향성 분석부
121: 변경 영향성 플러그인
122: 변경점 분석 모듈
123: 변경 영향성 분석 모듈
124: 코드 정보 분석 플러그인
125: 평가항목 매칭부
130: 보고서 생성부
131: 보고서 생성 모듈
132: 변경 영향성 분석결과 출력 모듈
120: 소프트웨어 변경 영향성 분석부
121: 변경 영향성 플러그인
122: 변경점 분석 모듈
123: 변경 영향성 분석 모듈
124: 코드 정보 분석 플러그인
125: 평가항목 매칭부
130: 보고서 생성부
131: 보고서 생성 모듈
132: 변경 영향성 분석결과 출력 모듈
Claims (21)
- 적어도 하나의 프로세서와 컴퓨터 프로그램이 저장된 적어도 하나의 메모리 장치를 포함하는 프로세싱 시스템을 이용하는 소프트웨어 변경 영향성 분석 방법에 있어서,
서로 다른 두 개의 소스코드를 포함하는 데이터를 입력하는 단계;
상기 입력 데이터를 신텍스(syntax) 정보를 포함하는 데이터베이스 스키마에 기초하여 변경 유형별로 분석하는 단계; 및
상기 변경 유형별로 분석 결과를 출력하는 단계;
를 포함하는 소프트웨어 변경 영향성 분석 방법. - 제1항에 있어서,
상기 신텍스 정보는
상기 데이터의 분석객체가 위치한 파일명, 시작 위치 및 종료 위치의 행과 열 정보 중 적어도 하나를 포함하는 소프트웨어 변경 영향성 분석 방법. - 제1항에 있어서,
상기 신텍스 정보를 포함하는 데이터베이스 스키마에 기초하여 상기 각각 시뮬레이션 결과를 변경 유형별로 분석하는 단계는
데이터 흐름에 따른 변경 영향성을 분석하는 단계;
제어 흐름에 따른 변경 영향성을 분석하는 단계; 및
데이터 타입 정의 및 선언에 따른 변경 영향성을 분석하는 단계;
를 포함하는 소프트웨어 변경 영향성 분석 방법. - 제3항에 있어서,
상기 데이터 흐름에 따른 변경 영향성을 분석하는 단계는
변수 변경에 따른 영향성을 분석하는 단계; 및
함수 변경에 따른 영향성을 분석하는 단계;
를 포함하는 소프트웨어 변경 영향성 분석 방법. - 제3항에 있어서,
상기 제어 흐름에 따른 변경 영향성을 분석하는 단계는
지정 변수에 따른 영향성을 분석하는 단계;
반복 및 조건에 따른 영향성을 분석하는 단계; 및
함수 호출에 따른 영향성을 분석하는 단계;
를 포함하는 소프트웨어 변경 영향성 분석 방법. - 제3항에 있어서,
상기 데이터 타입 정의 및 선언에 따른 변경 영향성을 분석하는 단계는
변수의 정의 변경에 따른 영향성을 분석하는 단계; 및
구조체의 정의 변경에 따른 영향성을 분석하는 단계;
를 포함하는 소프트웨어 변경 영향성 분석 방법. - 제1항에 있어서,
상기 입력데이터는
이전 버전 및 현재 버전의 소스코드를 포함하고,
상기 소프트웨어 변경 영향성 분석부의 변경 영향성 분석 단계는
상기 이전 버전 코드에서 변경 이후 삭제 또는 변경되는 라인의 영향성을 분석하는 단계;
상기 이전 버전의 변경 영향 라인을 현재 버전으로 매핑하는 단계;
상기 이전 버전 영향 라인과 현재 버전에서 추가 또는 변경된 라인의 영향성을 분석하는 단계; 및
상기 변경 영향 라인을 이용한 함수 및 전역 변수 변경 영향을 분석하는 단계;
를 포함하는 소프트웨어 변경 영향성 분석 방법. - 제1항에 있어서,
상기 변경 유형별로 분석 결과를 출력하는 단계는
상기 분석 결과를 변수, 함수, 파일, 라인 중 적어도 하나를 포함하는 분석대상으로 분류하는 단계; 및
상기 분류된 분석단위에 기초하여 직접변경, 간접변경, 무관 중 적어도 하나를 포함하는 항목으로 분류하여 출력하는 단계;
를 포함하는 소프트웨어 변경 영향성 분석 방법. - 제1항에 있어서,
상기 소프트웨어 변경 영향성 분석 결과에 기초하여 재평가가 필요한 항목을 분석하는 평가항목 매칭 단계;
를 더 포함하는 소프트웨어 변경 영향성 분석 방법. - 제9항에 있어서,
상기 평가항목 매칭 단계는
상기 소프트웨어 변경 영향성 분석 결과, 시스템 사양서 및 테스트 케이스(TestCase)를 포함하는 입력파일을 수신하는 단계;
상기 입력파일에 기초하여 평가 항목을 매칭하는 단계; 및
상기 매칭 결과에 기초하여, 재평가가 필요한 항목을 출력하는 단계;
를 포함하는 소프트웨어 변경 영향성 분석 방법. - 제1항 내지 제10항 중 어느 한 항에 따른 소프트웨어 변경 영향성 분석 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터 해독 가능 기록 매체.
- 적어도 하나의 프로세서와 컴퓨터 프로그램이 저장된 적어도 하나의 메모리 장치를 포함하는 프로세싱 시스템을 포함하는 소프트웨어 변경 영향성 분석 장치에 있어서,
서로 다른 두 개의 소스코드를 포함하는 데이터를 입력하는 입력부;
상기 입력 데이터를 신텍스 정보를 포함하는 데이터베이스 스키마에 기초하여 변경 유형별로 분석하는 소프트웨어 변경 영향성 분석부; 및
상기 변경 유형별로 분석 결과를 출력하는 보고서 생성부;
를 포함하는 소프트웨어 변경 영향성 분석 장치. - 제12항에 있어서,
상기 신텍스 정보는
상기 데이터가 위치한 파일명, 시작위치, 종료위치 중 적어도 하나를 포함하는 소프트웨어 변경 영향성 분석 장치. - 제12항에 있어서,
상기 소프트웨어 변경 영향성 분석부는
데이터 흐름에 따른 변경 영향성을 분석하고,
제어 흐름에 따른 변경 영향성을 분석하고,
데이터 타입 정의 및 선언에 따른 변경 영향성을 분석하는
소프트웨어 변경 영향성 분석 장치. - 제14항에 있어서,
상기 소프트웨어 변경 영향성 분석부는
변수 변경에 따른 변경 영향성을 분석하고,
함수 변경에 따른 변경 영향성을 분석하여,
상기 데이터 흐름에 따른 변경 영향성을 분석하는
소프트웨어 변경 영향성 분석 장치. - 제14항에 있어서,
상기 소프트웨어 변경 영향성 분석부는 지정 변수에 따른 변경 영향성을 분석하고,
반복 및 조건에 따른 변경 영향성을 분석하고,
함수 호출에 따른 변경 영향성을 분석하여,
상기 제어 흐름에 따른 변경 영향성을 분석하는
소프트웨어 변경 영향성 분석 장치. - 제14항에 있어서,
상기 소프트웨어 변경 영향성 분석부는
변수의 정의 변경에 따른 변경 영향성을 분석하고,
구조체의 정의 변경에 따른 변경 영향성을 분석하여,
상기 데이터 타입 정의 및 선언에 따른 변경 영향성을 분석하는
소프트웨어 변경 영향성 분석 장치. - 제12항에 있어서,
상기 입력부는
이전 버전 및 현재 버전의 소스코드를 포함하는 입력데이터를 수신하고,
상기 소프트웨어 변경 영향성 분석부는
상기 이전 버전 코드에서 변경 이후 삭제 또는 변경되는 라인의 영향성을 분석하는 변경 영향성 분석 플러그인;
상기 이전 버전의 변경 영향 라인을 현재 버전으로 매핑하는 변경점 분석 모듈; 및
상기 이전 버전 영향 라인과 현재 버전에서 추가 또는 변경된 라인의 영향성을 분석하고, 상기 변경 영향 라인을 이용한 함수 및 전역 변수 변경 영향성을 분석하는 변경 영향성 분석 모듈;
을 포함하는 소프트웨어 변경 영향성 분석 장치. - 제12항에 있어서,
상기 보고서 생성부는
상기 분석 결과를 변수, 함수, 파일, 라인 중 적어도 하나를 포함하는 분석대상으로 분류하고,
상기 분류된 분석단위에 기초하여 직접변경, 간접변경, 무관 중 적어도 하나를 포함하는 항목으로 분류하여 출력하는
소프트웨어 변경 영향성 분석 장치. - 제12항에 있어서,
상기 소프트웨어 변경 영향성 분석 결과에 기초하여 재평가가 필요한 항목을 분석하는 평가항목 매칭부;
를 더 포함하는 소프트웨어 변경 영향성 분석 장치. - 제12항에 있어서,
상기 평가항목 매칭부는
상기 소프트웨어 변경 영향성 분석 결과, 시스템 사양서 및 테스트 케이스를 포함하는 입력파일을 수신하고,
상기 입력파일에 기초하여 평가 항목을 매칭하고,
상기 매칭 결과에 기초하여, 재평가가 필요한 항목을 출력하는
소프트웨어 변경 영향성 분석 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170053498A KR20180119857A (ko) | 2017-04-26 | 2017-04-26 | 소프트웨어 변경 영향성 분석 방법 및 장치 |
US15/822,805 US20180314519A1 (en) | 2017-04-26 | 2017-11-27 | Method and apparatus for analyzing impact of software change |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170053498A KR20180119857A (ko) | 2017-04-26 | 2017-04-26 | 소프트웨어 변경 영향성 분석 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20180119857A true KR20180119857A (ko) | 2018-11-05 |
Family
ID=63916638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170053498A KR20180119857A (ko) | 2017-04-26 | 2017-04-26 | 소프트웨어 변경 영향성 분석 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20180314519A1 (ko) |
KR (1) | KR20180119857A (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020141968A1 (en) * | 2018-12-31 | 2020-07-09 | Mimos Berhad | A system and method for impact analysis of change request that affects database structure through classificiation and keyword similarity analysis |
WO2022158842A1 (ko) * | 2021-01-20 | 2022-07-28 | 한국수력원자력 주식회사 | 복수의 장치에 대한 작동예측시스템 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10430319B1 (en) * | 2018-05-04 | 2019-10-01 | Fmr Llc | Systems and methods for automatic software testing |
US11651272B2 (en) * | 2018-07-06 | 2023-05-16 | Sap Se | Machine-learning-facilitated conversion of database systems |
US10740222B2 (en) * | 2018-10-23 | 2020-08-11 | Sap Se | Intelligent unitizer test plug-in |
US11074167B2 (en) | 2019-03-25 | 2021-07-27 | Aurora Labs Ltd. | Visualization of code execution through line-of-code behavior and relation models |
US11531536B2 (en) * | 2019-11-20 | 2022-12-20 | Red Hat, Inc. | Analyzing performance impacts of source code changes |
JP7349927B2 (ja) * | 2020-02-12 | 2023-09-25 | 株式会社日立製作所 | リスク評価システム及びリスク評価方法 |
CN111401028B (zh) * | 2020-03-19 | 2023-12-26 | 北京广利核***工程有限公司 | 一种核电站rps软件版本的自动化比较方法及装置 |
CN111580852B (zh) * | 2020-04-29 | 2023-05-23 | 北京广利核***工程有限公司 | 一种软件变更影响范围的识别方法及*** |
CN112379888A (zh) * | 2020-12-02 | 2021-02-19 | 北京皮尔布莱尼软件有限公司 | 一种代码变更分析方法 |
CN113568662B (zh) * | 2021-07-23 | 2024-04-30 | 中信银行股份有限公司 | 一种基于调用关系的代码变更影响范围分析方法及*** |
CN117009230B (zh) * | 2023-07-25 | 2024-04-16 | 北京泰策科技有限公司 | 一种基于代码覆盖率评测的精准测试方法及*** |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4912637A (en) * | 1988-04-26 | 1990-03-27 | Tandem Computers Incorporated | Version management tool |
US6748584B1 (en) * | 1999-12-29 | 2004-06-08 | Veritas Operating Corporation | Method for determining the degree to which changed code has been exercised |
US7340726B1 (en) * | 2003-08-08 | 2008-03-04 | Coverity, Inc. | Systems and methods for performing static analysis on source code |
US20060195436A1 (en) * | 2005-02-28 | 2006-08-31 | Fujitsu Network Communications, Inc. | Phased migration of database software application |
US7716649B2 (en) * | 2005-12-15 | 2010-05-11 | International Business Machines Corporation | Activity-based software traceability management method and apparatus |
US8397208B2 (en) * | 2006-08-31 | 2013-03-12 | Serena Software, Inc. | Method and system for baselining across multiple domains |
US20080196012A1 (en) * | 2007-02-12 | 2008-08-14 | Panaya Ltd. | System and methods for static analysis of large computer programs and for presenting the results of the analysis to a user of a computer program |
US7958400B2 (en) * | 2007-04-16 | 2011-06-07 | International Business Machines Corporation | Detecting unexpected impact of software changes using coverage analysis |
US8806450B1 (en) * | 2008-06-26 | 2014-08-12 | Juniper Networks, Inc. | Static analysis in selective software regression testing |
US8276123B1 (en) * | 2008-07-22 | 2012-09-25 | Juniper Networks, Inc. | Adaptive regression test selection within testing environments |
CN102110048B (zh) * | 2009-12-28 | 2014-07-09 | 国际商业机器公司 | 用于基于框架的应用程序的回归测试选择方法和装置 |
US20120054724A1 (en) * | 2010-08-31 | 2012-03-01 | International Business Machines Corporation | Incremental static analysis |
US8683449B2 (en) * | 2010-10-28 | 2014-03-25 | Juniper Networks, Inc. | Automated parallel software code impact analysis |
US8769501B2 (en) * | 2011-12-07 | 2014-07-01 | Siemens Aktiengesellschaft | Method for analyzing changes in a software code and software analysis system |
CN103988176A (zh) * | 2011-12-12 | 2014-08-13 | 株式会社日立制作所 | 软件分析程序和软件分析*** |
US9298453B2 (en) * | 2012-07-03 | 2016-03-29 | Microsoft Technology Licensing, Llc | Source code analytics platform using program analysis and information retrieval |
US9032376B2 (en) * | 2012-09-28 | 2015-05-12 | Synopsys, Inc. | Static analysis of computer code to determine impact of change to a code component upon a dependent code component |
US9201649B2 (en) * | 2012-10-26 | 2015-12-01 | Inforsys Limited | Systems and methods for estimating an impact of changing a source file in a software |
US20170235661A1 (en) * | 2013-03-05 | 2017-08-17 | NetSuite Inc. | Integration of Software Systems via Incremental Verification |
US20150026664A1 (en) * | 2013-07-17 | 2015-01-22 | International Business Machines Corporation | Method and system for automated test case selection |
US9348585B2 (en) * | 2013-08-20 | 2016-05-24 | Red Hat, Inc. | System and method for estimating impact of software updates |
JP6316120B2 (ja) * | 2014-06-30 | 2018-04-25 | 日立オートモティブシステムズ株式会社 | テストケース生成システム及びテストケースを記録した記録媒体 |
US20160062876A1 (en) * | 2014-09-03 | 2016-03-03 | Ajit Kumar Narayanan | Automated software change monitoring and regression analysis |
US9652366B2 (en) * | 2014-12-04 | 2017-05-16 | Hcl Technologies Ltd. | Code change analysis to optimize testing lifecycle |
US9600275B2 (en) * | 2015-03-12 | 2017-03-21 | International Business Machines Corporation | Smart source code review system |
US9886262B2 (en) * | 2015-03-16 | 2018-02-06 | Microsoft Technology Licensing, Llc | Adaptive upgrade to computing systems |
US10146673B2 (en) * | 2015-11-04 | 2018-12-04 | Sap Portals Israel Ltd. | Source code change resolver |
TWI611349B (zh) * | 2015-12-11 | 2018-01-11 | 財團法人資訊工業策進會 | 檢測系統及其方法 |
US20170212829A1 (en) * | 2016-01-21 | 2017-07-27 | American Software Safety Reliability Company | Deep Learning Source Code Analyzer and Repairer |
US9747098B2 (en) * | 2016-01-29 | 2017-08-29 | International Business Machines Corporation | Verifying source code in disparate source control systems |
US10565089B2 (en) * | 2016-08-15 | 2020-02-18 | Sap Se | Identification of code features potentially associated with code behavior |
US10437586B2 (en) * | 2017-01-03 | 2019-10-08 | Infosys Limited | Method and system for dynamic impact analysis of changes to functional components of computer application |
-
2017
- 2017-04-26 KR KR1020170053498A patent/KR20180119857A/ko not_active Application Discontinuation
- 2017-11-27 US US15/822,805 patent/US20180314519A1/en not_active Abandoned
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020141968A1 (en) * | 2018-12-31 | 2020-07-09 | Mimos Berhad | A system and method for impact analysis of change request that affects database structure through classificiation and keyword similarity analysis |
WO2022158842A1 (ko) * | 2021-01-20 | 2022-07-28 | 한국수력원자력 주식회사 | 복수의 장치에 대한 작동예측시스템 |
Also Published As
Publication number | Publication date |
---|---|
US20180314519A1 (en) | 2018-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20180119857A (ko) | 소프트웨어 변경 영향성 분석 방법 및 장치 | |
US10437713B2 (en) | System and method for equivalence class analysis-based automated requirements-based test case generation | |
US9424115B2 (en) | Analysis engine for automatically analyzing and linking error logs | |
US20170132119A1 (en) | Method and device for retrieving test case based on code coverage | |
CN105701008B (zh) | 用于测试用例生成的***和方法 | |
US9747190B2 (en) | Analysis system, analysis method, and computer program product | |
US9081586B2 (en) | Systems and methods for customizing optimization/transformation/ processing strategies | |
US9134976B1 (en) | Cross-format analysis of software systems | |
US20120222007A1 (en) | Automated defect classification | |
US20070061641A1 (en) | Apparatus and method for generating test driver | |
US7272753B2 (en) | Methods and apparatus for translating application tests for execution with simulation software tools | |
CN112269774A (zh) | 异构数据库应用代码适配评估装置、方法及存储介质 | |
CN117076338B (zh) | 基于kprobe的linux内核动态调试方法及*** | |
JP2012181666A (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
US20020100001A1 (en) | Active trace debugging for hardware description languages | |
CN107577476A (zh) | 一种基于模块划分的安卓***源码差异性分析方法、服务器及介质 | |
CN115495362A (zh) | 生成测试代码的方法、装置、存储介质及计算机设备 | |
CN111078548B (zh) | 测试用例解析方法、装置、存储介质及验证平台 | |
JP4559930B2 (ja) | 故障解析システム、故障解析情報処理装置及び故障解析方法 | |
US20090007068A1 (en) | Accessing Non-Public Code | |
US7689399B1 (en) | Automatic extraction of design properties | |
JP6644188B2 (ja) | 影響抽出装置、影響抽出プログラム及び影響抽出方法 | |
US20080072187A1 (en) | Method, system, and program product for pre-compile processing of HDL source files | |
JP2002014847A (ja) | プログラム検査装置、プログラム検査方法及び検査を行うためのプログラムを格納した記録媒体 | |
CN117992359B (zh) | 服务化软件的观测方法、装置和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |