KR101623174B1 - 소스 코드 분석 장치, 이를 위한 컴퓨터 프로그램, 그 기록매체 - Google Patents

소스 코드 분석 장치, 이를 위한 컴퓨터 프로그램, 그 기록매체 Download PDF

Info

Publication number
KR101623174B1
KR101623174B1 KR1020140133347A KR20140133347A KR101623174B1 KR 101623174 B1 KR101623174 B1 KR 101623174B1 KR 1020140133347 A KR1020140133347 A KR 1020140133347A KR 20140133347 A KR20140133347 A KR 20140133347A KR 101623174 B1 KR101623174 B1 KR 101623174B1
Authority
KR
South Korea
Prior art keywords
information
defect
analysis
source code
unit
Prior art date
Application number
KR1020140133347A
Other languages
English (en)
Other versions
KR20160025426A (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 PCT/KR2015/008937 priority Critical patent/WO2016032234A1/ko
Priority to JP2017510645A priority patent/JP6579340B2/ja
Priority to US15/505,669 priority patent/US10496516B2/en
Priority to CN201580046317.1A priority patent/CN106796543A/zh
Publication of KR20160025426A publication Critical patent/KR20160025426A/ko
Application granted granted Critical
Publication of KR101623174B1 publication Critical patent/KR101623174B1/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/3604Software analysis for verifying properties of programs
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 소스 코드 분석 장치, 이를 위한 컴퓨터 프로그램, 그 기록매체에 관한 것이다.
본 발명의 일측면에 따르면, 소스 코드로부터 분석에 필요한 정보들을 추출하고 정제하는 구문 분석부와, 구문 분석부에서 정제된 분석에 필요한 정보들을 토대로 소스 코드에서 문제가 될 수 있는 결함 정보를 검출하는 결함 검출부와, 결함 검출부에서 검출된 결함 정보 및 구문 분석부에서 정제된 분석에 필요한 정보들을 토대로 수정예시 정보 및 유의사항 정보 중 적어도 하나를 생성하는 수정예시 생성부와, 생성된 결함 정보 및 수정예시 정보, 유의사항 정보 중 적어도 하나 이상을 종합 분석 결과 정보로 구성하여 분석 결과 출력 모듈로 전달하는 분석결과 전달부를 포함하는 소스 코드 분석 모듈; 및 소스 코드 분석 모듈로부터 전달받은 종합 분석 결과 정보에서 결함 정보를 추출하여 출력하는 결함 출력부와, 소스 코드 분석 모듈로부터 전달받은 종합 분석 결과 정보에서 수정예시 정보 및 유의사항 정보 중 적어도 하나를 추출하여 출력하는 수정예시 출력부를 포함하는 분석 결과 출력 모듈;을 포함하여 구성된 소스 코드 분석 장치가 개시된다.

Description

소스 코드 분석 장치, 이를 위한 컴퓨터 프로그램, 그 기록매체 {Source code analysis apparatus, Computer program for the same, Recording medium storing computer program for the same}
본 발명은 소스 코드 분석 장치, 이를 위한 컴퓨터 프로그램, 그 기록매체에 관한 것으로서, 미리 정의된 분석룰에 따라 분석한 분석 대상 소스 코드에 결함이 발견된 경우에 결함 수정안을 제안할 수 있도록 구성된 소스 코드 분석 장치, 이를 위한 컴퓨터 프로그램, 그 기록매체에 관한 것이다.
정적 프로그램 분석(Static Code Analysis)은 컴퓨터 소프트웨어를 분석하는 여러 가지 방법 중 하나이다. 이 방법의 특징은 소프트웨어를 직접 실행하지 않고 개발중인 소프트웨어의 소스 코드를 대상으로 분석을 수행한다는 점이다.
정적 분석 도구(Static Analysis Tool)는 정적 프로그램 분석을 사람의 손이 아닌 소프트웨어를 이용하여 자동적으로 수행하도록 개발된 프로그램이다. 일반적으로 소스 코드의 크기는 매우 방대하며, 사람의 손으로 일일이 정적 프로그램 분석을 수행하는 것은 거의 불가능하다고 볼 수 있다. 따라서 이러한 분석을 자동화하여 수행할 수 있도록 해주는 것이 정적 분석 도구의 역할이라고 할 수 있다. 정적 분석 도구는 종류에 따라 소스 코드에서 다양한 종류의 결함이나 취약점을 검출할 수 있으며, 분석을 통해 검출된 결함을 사용자에게 알려준다.
상기와 같은 정적 분석 도구 형태의 소스 코드 분석 장치가 기존에 다양하게 제안된 바 있다.
그러나, 기존에 제안 또는 사용되어온 소스 코드 분석 장치는 결함 검출 및 그에 대한 검출 메시지 생성이라는 제한된 기능만을 제공하여, 검출된 결함에 대한 수정 작업은 사용자(프로그래머)의 개인적인 지식과 경험에 의존해야 한다는 한계가 있었다.
대한민국 공개특허 제10-2013-0097252호 (2013년09월03일 공개)
본 발명은 상기와 같은 문제점을 감안하여 안출한 것으로서, 미리 정의된 분석룰에 따라 분석한 분석 대상 소스 코드에 결함이 발견된 경우에 결함 수정안을 제안할 수 있도록 구성된 소스 코드 분석 장치, 이를 위한 컴퓨터 프로그램, 그 기록매체를 제공하는 것을 그 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 일측면에 따르면, 소스 코드로부터 분석에 필요한 정보들을 추출하고 정제하는 구문 분석부와, 구문 분석부에서 정제된 분석에 필요한 정보들을 토대로 소스 코드에서 문제가 될 수 있는 결함 정보를 검출하는 결함 검출부와, 결함 검출부에서 검출된 결함 정보 및 구문 분석부에서 정제된 분석에 필요한 정보들을 토대로 수정예시 정보 및 유의사항 정보 중 적어도 하나를 생성하는 수정예시 생성부와, 생성된 결함 정보 및 수정예시 정보, 유의사항 정보 중 적어도 하나 이상을 종합 분석 결과 정보로 구성하여 분석 결과 출력 모듈로 전달하는 분석결과 전달부를 포함하는 소스 코드 분석 모듈; 및 소스 코드 분석 모듈로부터 전달받은 종합 분석 결과 정보에서 결함 정보를 추출하여 출력하는 결함 출력부와, 소스 코드 분석 모듈로부터 전달받은 종합 분석 결과 정보에서 수정예시 정보 및 유의사항 정보 중 적어도 하나를 추출하여 출력하는 수정예시 출력부를 포함하는 분석 결과 출력 모듈;을 포함하여 구성된 소스 코드 분석 장치가 개시된다.
바람직하게, 상기 수정예시 생성부는, 하나의 결함 정보에 대하여 하나 또는 그 이상의 수정예시 정보 또는 유의사항 정보를 생성하도록 구성된 것을 특징으로 한다.
바람직하게, 상기 결함 검출부의 결함 정보 검출은 각각의 결함 여부를 체크하도록 구비된 각각의 체커의 기능 실행에 의해 이뤄지며, 상기 각각의 체커는 결함 정보 검출 시에 검출된 결함 정보에 대하여 생성될 수정예시 정보 및 유의사항 정보 중 적어도 하나가 포함된 종합 분석 결과 정보를 수정예시 생성부로 전달하도록 구성된 것을 특징으로 한다.
바람직하게, 상기 수정예시 정보는, 결함 정보가 검출된 소스 코드 라인에 대하여 다른 코드 라인의 '추가', 다른 코드 라인으로의 '변경', 검출된 코드 라인의 '삭제' 중의 적어도 어느 하나를 포함하는 것을 특징으로 한다.
바람직하게, 상기 수정예시 정보에 포함되는 수정예시 코드는, 결함 정보를 검출한 체커가 미리 설정된 템플릿에 따라 소스 코드를 분석 및 추론한 결과를 입력값으로 하여 생성되는 것을 특징으로 한다.
본 발명의 또다른 일측면에 따르면, 컴퓨터 하드웨어와 결합되어, 컴퓨터를, 소스 코드로부터 분석에 필요한 정보들을 추출하고 정제하는 구문 분석부와, 구문 분석부에서 정제된 분석에 필요한 정보들을 토대로 소스 코드에서 문제가 될 수 있는 결함 정보를 검출하는 결함 검출부와, 결함 검출부에서 검출된 결함 정보 및 구문 분석부에서 정제된 분석에 필요한 정보들을 토대로 수정예시 정보 및 유의사항 정보 중 적어도 하나를 생성하는 수정예시 생성부와, 생성된 결함 정보 및 수정예시 정보, 유의사항 정보 중 적어도 하나 이상을 종합 분석 결과 정보로 구성하여 분석 결과 출력 모듈로 전달하는 분석결과 전달부를 포함하는 소스 코드 분석 수단; 및 소스 코드 분석 모듈로부터 전달받은 종합 분석 결과 정보에서 결함 정보를 추출하여 출력하는 결함 출력부와, 소스 코드 분석 모듈로부터 전달받은 종합 분석 결과 정보에서 수정예시 정보 및 유의사항 정보 중 적어도 하나를 추출하여 출력하는 수정예시 출력부를 포함하는 분석 결과 출력 수단;으로 기능시키기 위하여 매체에 저장된 컴퓨터 프로그램이 개시된다.
본 발명의 또다른 일측면에 따르면, 컴퓨터를, 소스 코드로부터 분석에 필요한 정보들을 추출하고 정제하는 구문 분석부와, 구문 분석부에서 정제된 분석에 필요한 정보들을 토대로 소스 코드에서 문제가 될 수 있는 결함 정보를 검출하는 결함 검출부와, 결함 검출부에서 검출된 결함 정보 및 구문 분석부에서 정제된 분석에 필요한 정보들을 토대로 수정예시 정보 및 유의사항 정보 중 적어도 하나를 생성하는 수정예시 생성부와, 생성된 결함 정보 및 수정예시 정보, 유의사항 정보 중 적어도 하나 이상을 종합 분석 결과 정보로 구성하여 분석 결과 출력 모듈로 전달하는 분석결과 전달부를 포함하는 소스 코드 분석 수단; 및 소스 코드 분석 모듈로부터 전달받은 종합 분석 결과 정보에서 결함 정보를 추출하여 출력하는 결함 출력부와, 소스 코드 분석 모듈로부터 전달받은 종합 분석 결과 정보에서 수정예시 정보 및 유의사항 정보 중 적어도 하나를 추출하여 출력하는 수정예시 출력부를 포함하는 분석 결과 출력 수단;으로 기능시키기 위한 컴퓨터 프로그램이 기록된, 컴퓨터로 판독 가능한 기록 매체가 개시된다.
이와 같은 본 발명은, 미리 정의된 분석룰에 따라 분석한 분석 대상 소스 코드에 결함이 발견된 경우에 결함 수정안을 제안할 수 있도록 구성되므로, 소스 코드에 대한 결함 수정 작업 시에 사용자(프로그래머)의 개인적인 지식과 경험에 의존하지 않고 보다 객관적이고 향상된 결함 수정 작업이 가능하다.
도 1은 본 발명의 일실시예에 따른 소스 코드 분석 장치의 구성도,
도 2는 본 발명의 일실시예에 따른 소스 코드 분석 장치의 분석 결과 정보 구성 예,
도 3은 본 발명의 일실시예에 따른 소스 코드 분석 장치의 결함 검출부의 체커에 의해 결함이 발견된 소스 코드 페이지 화면 예,
도 4은 본 발명의 일실시예에 따른 소스 코드 분석 장치의 수정예시 버튼 클릭 후의 종합 분석 결과 출력 화면 예,
도 5은 본 발명의 일실시예에 따른 소스 코드 분석 장치의 수정예시 버튼 클릭 후의 종합 분석 결과 출력 화면 중 예시 메뉴 표시 예,
도 6은 본 발명의 일실시예에 따른 소스 코드 분석 장치의 수정예시 버튼 클릭 후의 종합 분석 결과 출력 화면 중 결함 정보 표시 예,
도 7은 본 발명의 일실시예에 따른 소스 코드 분석 장치의 수정예시 버튼 클릭 후의 종합 분석 결과 출력 화면 중 수정예시 정보 표시 예,
도 8은 본 발명의 일실시예에 따른 소스 코드 분석 장치의 수정예시 버튼 클릭 후의 종합 분석 결과 출력 화면 중 유의사항 정보 표시 예,
도 9는 본 발명의 일실시예에 따른 소스 코드 분석 장치의 수정예시 XML 파일의 예,
도 10은 도 9의 수정예시 XML 파일의 주요 태그 또는 변수 정의 예,
도 11은 본 발명의 일실시예에 따른 소스 코드 분석 장치를 위한 체커 구현 클래스 중 XML 출력 클래스의 예,
도 12는 본 발명의 일실시예에 따른 소스 코드 분석 장치를 위한 체커 구현 클래스 중 코드 생성 클래스의 예,
도 13은 본 발명의 일실시예에 따른 소스 코드 분석 장치를 위한 체커 구성의 일예,
도 14는 본 발명의 일실시예에 따른 소스 코드 분석 장치를 위한 체커 구성의 또다른 일예,
도 15는 본 발명의 일실시예에 따른 소스 코드 분석 장치를 위한 체커 구성의 또다른 일예이다.
본 발명은 그 기술적 사상 또는 주요한 특징으로부터 벗어남이 없이 다른 여러가지 형태로 실시될 수 있다. 따라서, 본 발명의 실시예들은 모든 점에서 단순한 예시에 지나지 않으며 한정적으로 해석되어서는 안 된다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는 데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구비하다", "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 대응하는 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 본 발명의 일실시예에 따른 소스 코드 분석 장치의 구성도, 도 2는 본 발명의 일실시예에 따른 소스 코드 분석 장치의 분석 결과 정보 구성 예이다.
본 실시예의 소스 코드 분석 장치(A)는, 소스 코드 입력 모듈(100), 소스 코드 분석 모듈(200), 분석 결과 출력 모듈(300) 및 제어 모듈(400)을 포함하며, 일예로, 소스 코드 분석 장치 구현을 위한 컴퓨터 프로그램이 통상의 컴퓨터 하드웨어에서 구동되는 형태로 구현될 수 있다.
소스 코드 입력 모듈(100)은, 예를 들어, 분석 대상 소스 코드를 코드 파일의 형태로 입력받아 후술하는 소스 코드 분석 모듈(200)이 분석 처리를 할 수 있도록 한다. 일예로, 코드 파일의 입력은 사용자의 파일 입력 또는 오픈 조작에 의해 이뤄질 수 있다.
소스 코드 분석 모듈(200)은, 분석을 위해 입력 전달된 소스 코드로부터 결함 정보(220A) 및 수정예시 정보(230A), 수정 시 발생할 수 있는 다양한 종류의 유의사항 정보(230B)들을 포함하는 종합 분석 결과(240A)를 생성한다.
분석 결과 출력 모듈(300)은, 소스 코드 분석 모듈(200)로부터 전달받은 종합 분석 결과(240A)를 토대로 사용자에게 결함 정보(220A), 수정예시 정보(230A), 유의 사항 정보(230B)를 보여준다. 실시예에 따라 소스 코드 분석 모듈(200) 및 분석 결과 출력 모듈(300)은 하나의 모듈로 통합 구현될 수 있다.
바람직한 일예로, 소스 코드 분석 모듈(200)은, 구문 분석부(210), 결함 검출부(220), 수정예시 생성부(230), 분석결과 전달부(240)를 포함한다.
구문 분석부(210)는 입력받은 소스 코드로부터 분석에 필요한 각종 정보들을 추출하고 정제하는 역할을 수행한다. 분석에 필요한 정보는, 예를 들어, 추상 구문 트리(Abstract Syntax Tree)나 소스 코드의 라인 수, 위치 정보 등이 될 수 있다.
결함 검출부(220)는 구문 분석부(210)에서 정제된 분석에 필요한 정보들을 토대로 소스 코드에서 문제가 될 수 있는 결함 정보(220A)를 검출해 낸다. 상기 결함 검출부(220)의 결함 정보(220A) 검출은 일예로, 결함 여부를 체크하는 체커의 기능 실행에 의해 이뤄질 수 있다. 결함 정보(220A)는 예를 들어, 결함이 실제 발생한 소스 코드의 파일명, 라인과 같은 위치 정보와 결함의 종류, 실제 결함의 원인이 된 부분, 결함이 발생하게 된 소스 코드의 흐름과 같은 실제 결함 정보 등으로 구성된다.
상기 구문 분석부(210)의 구문 분석 기능 및 결함 검출부(220)의 결함 정보 검출 기능은, 공지의 다양한 정적 분석 도구(Static Analysis Tool)의 구문 분석 기능 및 결함 정보 검출 기능과 동일 내지 유사한 구성을 통해 구현될 수 있다. 정적 분석 도구는 문법기반(Syntactic) 분석 또는 의미기반(Semantic) 분석 방식의 다양한 상용 제품들이 공지된 바 있으므로, 그 상세한 설명은 생략한다.
상기 결함 검출부(220)의 결함 정보(220A) 검출은 각각의 결함 여부를 체크하도록 구비된 각각의 체커의 기능 실행에 의해 이뤄지며, 상기 각각의 체커는 결함 정보(220A) 검출 시에 검출된 결함 정보(220A)에 대하여 생성될 수정예시 정보(230A)와 유의사항 정보(230B)가 포함된 종합 분석 결과 정보(240A)를 수정예시 생성부(230)로 전달하도록 구성된다. 종합 분석 결과 정보(240A)는 예를 들어, 수정 예시 XML 파일의 형태로 구성될 수 있으며, 반드시 이러한 형태로 한정되는 것은 아니다.
한편, 동일한 하나의 체커인 경우에도, 분석된 소스 코드의 구조에 따라 다른 수정예시 정보(230A)와 유의사항 정보(230B)를 전달할 수 있다. 또한, 결함 특성상 체커가 체크한 결함에 대하여 굳이 수정예시 정보(230A)와 유의사항 정보(230B)가 제공될 필요가 없는 경우에는 이들 정보를 제공하지 않거나, 수정예시 정보(230A)만을 제공하거나 유의사항 정보(230B)만을 제공하도록 구성될 수도 있다. 또한, 하나의 결함 정보(220A)에 대해서 복수의 수정예시 정보(230A)와 유의사항 정보(230B)가 복수의 대안으로서 생성될 수도 있으며, 이에 대해서는 별도로 후술한다. 본 실시예의 설명에서는 수정예시 정보(230A)와 유의사항 정보(230B)가 함께 제공되는 경우를 예시 설명한다.
수정예시 생성부(230)는 결함 검출부(220)에서 검출된 결함 정보(220A) 및 구문 분석부(210)에서 정제된 분석에 필요한 정보들을 토대로 수정예시 정보(230A) 와 유의사항 정보(230B)를 생성해 낸다.
수정예시 정보(230A)는 결함 정보(220A) 내에서 발생한 결함을 실제 소스 코드로 어떻게 수정하면 되는지 알려줄 수 있는 수정예시 코드를 말한다. 예를 들어, 수정예시 정보(230A)에서 알려준 정보를 토대로 소스 코드를 수정하면 결함이 발생하지 않는다.
상기 수정예시 정보(230A)는, 결함 정보(220A)가 검출된 소스 코드 라인에 대하여 다른 코드 라인의 '추가', 다른 코드 라인으로의 '변경', 검출된 코드 라인의 '삭제' 중의 적어도 어느 하나를 포함할 수 있다.
유의사항 정보(230B)는 사용자가 소스 코드를 수정하면서 발생할 수 있는 다양한 유의사항 정보를 말한다. 예를 들어, 사용자가 소스 코드 수정 시 도움이 되는 정보나, 수정예시 정보(230A)에서 알려주는 수정예시대로 코드를 수정하면서 발생할 수 있는 부수적인 문제들, 또는 소스 코드 분석 장치(A)에서 자동적으로 생성할 수 없어 사용자가 직접 수정해야 하는 사항들이 될 수 있다.
분석결과 전달부(240)는 앞서 생성된 결함 정보(220A)나 수정예시 정보(230A), 유의사항 정보(230B)들을 종합 분석 결과 정보(240A)로 구성하여 분석 결과 출력 모듈(300)로 전달한다. 이러한 종합 분석 결과 정보(240A)는 파일 혹은 메모리 내의 데이터가 될 수 있으며, 다른 정보들이 포함될 수도 있다. 또한, 결함의 종류에 따라 하나의 결함 정보(220A)에서 수정예시 정보(230A)나 유의사항 정보(230B)는 없거나 더 많을 수 있다.
바람직한 일예로, 분석 결과 출력 모듈(300)은 결함 출력부(310)와 수정예시 출력부(320)를 포함한다.
결함 출력부(310)는 소스 코드 분석 모듈(200)로부터 전달받은 종합 분석 결과 정보(240A)에서 결함 정보(220A)를 추출하여 사용자에게 보여준다. 이러한 정보는 일반적으로 상술한 바와 같이 소스 코드의 파일명, 라인과 같은 위치 정보, 결함의 종류나 실제 결함의 원인이 된 부분, 결함이 발생하게 된 소스 코드의 흐름 등이 될 수 있다.
수정예시 출력부(320)는 소스 코드 분석 모듈(200)로부터 전달받은 종합 분석 결과 정보(240A)에서 수정예시 정보(230A) 및 유의사항 정보(230B)를 추출하여 사용자에게 보여준다. 이러한 정보는 일반적으로 상술한 바와 같이 실제 소스 코드를 어떻게 고쳐야 하는지에 대한 수정예시 코드와 소스 코드를 수정하면서 발생할 수 있는 다양한 유의사항 정보가 될 수 있다. 실시예에 따라 결함 출력부(310)와 수정예시 출력부(320)는 동시에 출력을 수행하거나 다른 정보를 추가적으로 출력할 수도 있다.
이하, 각 예시 화면을 통해 본 실시예의 소스 코드 분석 장치의 구현예를 예시 설명한다.
도 3은 본 발명의 일실시예에 따른 소스 코드 분석 장치의 결함 검출부의 체커에 의해 결함이 발견된 소스 코드 페이지 화면 예이다.
결함 발견 시 화면의 우측 상단에 수정예시 버튼이 표시된다.
도 4은 본 발명의 일실시예에 따른 소스 코드 분석 장치의 수정예시 버튼 클릭 후의 종합 분석 결과 출력 화면 예이다.
화면에 결함 정보, 수정예시 정보, 유의사항 정보가 각각 표시된다. 수정예시 정보 또는 유의사항 정보는 하나의 결함 정보에 대하여 하나 또는 그 이상이 제공될 수 있다.
도 5은 본 발명의 일실시예에 따른 소스 코드 분석 장치의 수정예시 버튼 클릭 후의 종합 분석 결과 출력 화면 중 예시 메뉴 표시 예이다.
예시 메뉴는 체커의 종류 및 소스 코드에 따라 개수가 달라질 수 있다. 각각의 예시 메뉴는 좌측단의 세모 표시를 누름에 의해 접거나 펴지는 것이 가능하다.
도 6은 본 발명의 일실시예에 따른 소스 코드 분석 장치의 수정예시 버튼 클릭 후의 종합 분석 결과 출력 화면 중 결함 정보 표시 예이다.
결함 정보 메뉴는 체커가 검출한 결함을 어떻게 수정해야 할 지를 알려준다.
도 7은 본 발명의 일실시예에 따른 소스 코드 분석 장치의 수정예시 버튼 클릭 후의 종합 분석 결과 출력 화면 중 수정예시 정보 표시 예이다.
수정예시 메뉴에서는 소스 코드에서 어떤 부분을 어떻게 수정해야 하는지를 알려준다. 상기 예시 코드는 최대한 실제 코드와 동일하게 제공된다. 화면 중에 붉은색으로 그라데이션 되어 '-' 로 시작하는 라인은 삭제될 코드를 표시하며, 녹색으로 그라데이션 되어 '+' 로 시작하는 라인은 추가되어야 할 코드에 해당한다. 수정이 필요한 코드의 라인이 많이 떨어져 있거나 다른 파일인 경우, 박스가 여러개 표시될 수 있다.
도 8은 본 발명의 일실시예에 따른 소스 코드 분석 장치의 수정예시 버튼 클릭 후의 종합 분석 결과 출력 화면 중 유의사항 정보 표시 예이다.
유의사항 정보는 소스 코드를 수정하였을 때 발생할 수 있는 다양한 상황이나 주의점들을 설명한다. 따라서, 체커의 종류 및 소스 코드에 따라 개수 및 내용이 달라질 수 있다.
도 9는 본 발명의 일실시예에 따른 소스 코드 분석 장치의 수정예시 XML 파일의 예, 도 10은 도 9의 수정예시 XML 파일의 주요 태그 또는 변수 정의 예이다. 도 9 및 도 10을 통해 본 실시예의 수정예시 XML 파일이 예시적으로 이해될 수 있다.
도면 중 'sca' 또는 'Sca'는 'Smart Code Alternative'의 약자로서, 본 실시예의 수정예시 XML 파일에 포함된 복수의 대안(alternative)을 포함하는 상위 요소의 예시적 명칭으로 편의상 명명한다.
도 11은 본 발명의 일실시예에 따른 소스 코드 분석 장치를 위한 체커 구현 클래스 중 XML 출력 클래스의 예, 도 12는 본 발명의 일실시예에 따른 소스 코드 분석 장치를 위한 체커 구현 클래스 중 코드 생성 클래스의 예이다.
도 11의 경우, 상위 클래스부터 간략하게 예시 설명한다.
최상부의 'AlarmXMLMaker' 클래스는, 알람 출력시 Sca 인스턴스가 있으면 함께 출력한다.
중간의 'Sca' 클래스는, ScaAlternative 인스턴스 생성을 책임지며, 체커에서 대안 생성 시에 이 함수를 사용한다.
최하부의 'ScaAlternative' 클래스(대안 정보 클래스)는, 설명, 코드, 유의사항 정보를 포함하며, 코드의 추가/변경/삭제 정보는 'CodeGenerator' 클래스가 생성한 코드 정보를 받아오거나, 원 소스 코드로부터 받아오는 경우도 있다.
도 12의 경우, 'CodeGenerator' 클래스(코드 생성 클래스)들은, 일정한 템플릿에 따라 원본 소스 코드를 분석 및 추론한 결과를 입력값으로 하여 수정 예시 코드를 생성해낸다. 'CodeGenerator' 클래스에는 라인 추가를 위한 'SimpleCodeGenerator', 타입 생성을 위한 'TypeCodeGenerator', 변수 생성을 위한 'VariableCodeGenerator', 함수 생성을 위한 'FunctionCodeGenerator' 등이 포함된다.
도 13은 본 발명의 일실시예에 따른 소스 코드 분석 장치를 위한 체커 구성의 일예, 도 14는 본 발명의 일실시예에 따른 소스 코드 분석 장치를 위한 체커 구성의 또다른 일예, 도 15는 본 발명의 일실시예에 따른 소스 코드 분석 장치를 위한 체커 구성의 또다른 일예이다.
도 13의 예제 1의 경우, dot(.) 연산자를 제외한 이항 연산자들과 전후 피연산자들은 공백으로 구분되어야 한다는 것을 검사하는 체커이다. 제공된 소스 코드 중 이항연산자 '-'가 사용된 부분의 좌우에 공백을 넣는 것으로 대안 코드(수정 예시 코드)를 작성할 수 있다. 이 예제의 경우 특별한 유의사항은 없다.
도 14의 예제 2의 경우, 배열 타입 파라메터로 받은 배열 타입의 변수에 대해 sizeof를 사용해서는 안된다는 체커이다. 대안코드는 1, 3번 라인에서 발생하게 되며, 이때 1번 라인의 변경으로 함수 인터페이스 변경 유의사항이 생긴다. 만약 함수 인터페이스가 변경되는 경우, 이 함수의 선언이나 사용한 부분 역시 수정되어야 한다. 3번 라인의 strncpy는 3번째 인자의 시작절을 대안코드1에서 추가한 길이값 변수를 넣도록 한다. 이와 관련된 관련된 특별한 유의사항은 없다.
도 15의 예제 3의 경우, 효과가 없는 함수 호출을 검사하는 체커이다. 예를들어, memset에서 세번째 인자의 값이 0인 경우 실질적으로 의미가 없는 코드가 되게 된다. 대안1은 초기화하려는 버퍼의 사이즈를 추론 가능한 경우 그 사이즈를 표시하고, 추론할 수 없는 경우 <<length>> 등과 같은 지정된 식별자를 사용하여 표시한다. 대안2의 경우 조건부로 생성하는 대안이다. 만약 memset의 두번째 인자가 단일 상수가 아닌 경우는 2, 3번째 인자를 바꿔 사용하였을 가능성이 있다. 따라서 대안2는 memset의 2, 3번째 인자값들을 서로 교체하는 것을 제안하도록 한다. 해당 체커 역시 특별한 유의사항은 없다.
일예로, 상기 도 13 내지 도 15에 예시된 각 체커의 대안은 상기 도 11을 통해 예시된 'Sca' 클래스 및 'ScaAlternative' 클래스(대안 정보 클래스)에 의해 제공될 수 있다.
다른 예로, 상기 도 13 내지 도 15에 예시된 각 체커의 대안 코드는 상기 도 12를 통해 예시된 'CodeGenerator' 클래스(코드 생성 클래스)에 의해 제공될 수 있다.
'Sca' 클래스, 'ScaAlternative' 클래스(대안 정보 클래스) 및 'CodeGenerator' 클래스(코드 생성 클래스) 들은 각 체커의 결함 내용에 상응하여 미리 설정될 수 있다.
본 발명의 실시예 들은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램과 이를 기록한 컴퓨터 판독가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD, USB 드라이브와 같은 광기록 매체, 플롭티컬 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
100: 소스 코드 입력 모듈
200: 소스 코드 분석 모듈
300: 분석 결과 출력 모듈
400: 제어 모듈

Claims (7)

  1. 소스 코드로부터 분석에 필요한 정보들을 추출하고 정제하는 구문 분석부와, 구문 분석부에서 정제된 분석에 필요한 정보들을 토대로 소스 코드에서 문제가 될 수 있는 결함 정보를 검출하는 결함 검출부와, 결함 검출부에서 검출된 결함 정보 및 구문 분석부에서 정제된 분석에 필요한 정보들을 토대로 수정예시 정보 및 유의사항 정보 중 적어도 하나를 생성하는 수정예시 생성부와, 생성된 결함 정보 및 수정예시 정보, 유의사항 정보 중 적어도 하나 이상을 종합 분석 결과 정보로 구성하여 분석 결과 출력 모듈로 전달하는 분석결과 전달부를 포함하는 소스 코드 분석 모듈; 및
    소스 코드 분석 모듈로부터 전달받은 종합 분석 결과 정보에서 결함 정보를 추출하여 출력하는 결함 출력부와, 소스 코드 분석 모듈로부터 전달받은 종합 분석 결과 정보에서 수정예시 정보 및 유의사항 정보 중 적어도 하나를 추출하여 출력하는 수정예시 출력부를 포함하는 분석 결과 출력 모듈;을 포함하여 구성되며,
    상기 수정예시 정보는, 결함 정보가 검출된 소스 코드 라인에 대하여 다른 코드 라인의 '추가', 다른 코드 라인으로의 '변경', 검출된 코드 라인의 '삭제' 중의 적어도 어느 하나를 포함하는 것을 특징으로 하는 소스 코드 분석 장치.
  2. 제1항에 있어서,
    상기 수정예시 생성부는,
    하나의 결함 정보에 대하여 하나 또는 그 이상의 수정예시 정보 또는 유의사항 정보를 생성하도록 구성된 것을 특징으로 하는 소스 코드 분석 장치.
  3. 제2항에 있어서,
    상기 결함 검출부의 결함 정보 검출은 각각의 결함 여부를 체크하도록 구비된 각각의 체커의 기능 실행에 의해 이뤄지며,
    상기 각각의 체커는 결함 정보 검출 시에 검출된 결함 정보에 대하여 생성될 수정예시 정보 및 유의사항 정보 중 적어도 하나가 포함된 종합 분석 결과 정보를 수정예시 생성부로 전달하도록 구성된 것을 특징으로 하는 소스 코드 분석 장치.
  4. 삭제
  5. 제3항에 있어서,
    상기 수정예시 정보에 포함되는 수정예시 코드는,
    결함 정보를 검출한 체커가 미리 설정된 템플릿에 따라 소스 코드를 분석 및 추론한 결과를 입력값으로 하여 생성되는 것을 특징으로 하는 소스 코드 분석 장치.
  6. 컴퓨터 하드웨어와 결합되어, 컴퓨터를,
    소스 코드로부터 분석에 필요한 정보들을 추출하고 정제하는 구문 분석부와, 구문 분석부에서 정제된 분석에 필요한 정보들을 토대로 소스 코드에서 문제가 될 수 있는 결함 정보를 검출하는 결함 검출부와, 결함 검출부에서 검출된 결함 정보 및 구문 분석부에서 정제된 분석에 필요한 정보들을 토대로 수정예시 정보 및 유의사항 정보 중 적어도 하나를 생성하는 수정예시 생성부와, 생성된 결함 정보 및 수정예시 정보, 유의사항 정보 중 적어도 하나 이상을 종합 분석 결과 정보로 구성하여 분석 결과 출력 모듈로 전달하는 분석결과 전달부를 포함하는 소스 코드 분석 수단- 상기 수정예시 정보는, 결함 정보가 검출된 소스 코드 라인에 대하여 다른 코드 라인의 '추가', 다른 코드 라인으로의 '변경', 검출된 코드 라인의 '삭제' 중의 적어도 어느 하나를 포함함-; 및
    소스 코드 분석 모듈로부터 전달받은 종합 분석 결과 정보에서 결함 정보를 추출하여 출력하는 결함 출력부와, 소스 코드 분석 모듈로부터 전달받은 종합 분석 결과 정보에서 수정예시 정보 및 유의사항 정보 중 적어도 하나를 추출하여 출력하는 수정예시 출력부를 포함하는 분석 결과 출력 수단;으로 기능시키기 위하여 기록 매체에 저장된 컴퓨터 프로그램.
  7. 컴퓨터를,
    소스 코드로부터 분석에 필요한 정보들을 추출하고 정제하는 구문 분석부와, 구문 분석부에서 정제된 분석에 필요한 정보들을 토대로 소스 코드에서 문제가 될 수 있는 결함 정보를 검출하는 결함 검출부와, 결함 검출부에서 검출된 결함 정보 및 구문 분석부에서 정제된 분석에 필요한 정보들을 토대로 수정예시 정보 및 유의사항 정보 중 적어도 하나를 생성하는 수정예시 생성부와, 생성된 결함 정보 및 수정예시 정보, 유의사항 정보 중 적어도 하나 이상을 종합 분석 결과 정보로 구성하여 분석 결과 출력 모듈로 전달하는 분석결과 전달부를 포함하는 소스 코드 분석 수단- 상기 수정예시 정보는, 결함 정보가 검출된 소스 코드 라인에 대하여 다른 코드 라인의 '추가', 다른 코드 라인으로의 '변경', 검출된 코드 라인의 '삭제' 중의 적어도 어느 하나를 포함함-; 및
    소스 코드 분석 모듈로부터 전달받은 종합 분석 결과 정보에서 결함 정보를 추출하여 출력하는 결함 출력부와, 소스 코드 분석 모듈로부터 전달받은 종합 분석 결과 정보에서 수정예시 정보 및 유의사항 정보 중 적어도 하나를 추출하여 출력하는 수정예시 출력부를 포함하는 분석 결과 출력 수단;으로 기능시키기 위한 컴퓨터 프로그램이 기록된, 컴퓨터로 판독 가능한 기록 매체.
KR1020140133347A 2014-08-27 2014-10-02 소스 코드 분석 장치, 이를 위한 컴퓨터 프로그램, 그 기록매체 KR101623174B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/KR2015/008937 WO2016032234A1 (ko) 2014-08-27 2015-08-26 소스 코드 분석 장치, 이를 위한 컴퓨터 프로그램, 그 기록매체
JP2017510645A JP6579340B2 (ja) 2014-08-27 2015-08-26 ソースコード解析装置、そのためのコンピュータプログラム、及びその記録媒体
US15/505,669 US10496516B2 (en) 2014-08-27 2015-08-26 Source code analysis device, computer program for same, and recording medium thereof
CN201580046317.1A CN106796543A (zh) 2014-08-27 2015-08-26 源代码分析装置、用于该装置的计算机程序及其记录介质

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20140112583 2014-08-27
KR1020140112583 2014-08-27

Publications (2)

Publication Number Publication Date
KR20160025426A KR20160025426A (ko) 2016-03-08
KR101623174B1 true KR101623174B1 (ko) 2016-05-20

Family

ID=55534423

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140133347A KR101623174B1 (ko) 2014-08-27 2014-10-02 소스 코드 분석 장치, 이를 위한 컴퓨터 프로그램, 그 기록매체

Country Status (4)

Country Link
US (1) US10496516B2 (ko)
JP (1) JP6579340B2 (ko)
KR (1) KR101623174B1 (ko)
CN (1) CN106796543A (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6472545B2 (ja) * 2016-01-27 2019-02-20 優太 竹田 処理システム、処理方法及びプログラム
KR101850303B1 (ko) 2016-09-13 2018-05-31 슈어소프트테크주식회사 소스 코드 위배 수정 방법 및 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
US11200053B2 (en) * 2018-11-09 2021-12-14 Affirm, Inc. Deployment models
CN110349477B (zh) * 2019-07-16 2022-01-07 长沙酷得网络科技有限公司 一种基于历史学习行为的编程错误修复方法、系统及服务器
CN110765003B (zh) * 2019-09-24 2023-06-02 贝壳技术有限公司 代码检测方法、装置以及设备、存储介质
CN112181428B (zh) * 2020-09-28 2021-10-22 北京航空航天大学 一种基于抽象语法树的开源软件缺陷数据分类方法及系统
CN112579477A (zh) * 2021-02-26 2021-03-30 北京北大软件工程股份有限公司 一种缺陷检测方法、装置以及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101051600B1 (ko) * 2010-03-29 2011-07-22 주식회사 소프트 포 소프트 아밥 소스코드의 코드 검사를 수행하는 코드검사 수행시스템

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0281230A (ja) * 1988-09-19 1990-03-22 Hitachi Ltd 構文解析および言語処理システム
US4931928A (en) * 1988-11-09 1990-06-05 Greenfeld Norton R Apparatus for analyzing source code
JPH0449432A (ja) * 1990-06-19 1992-02-18 Nec Corp 構文エラー解析方式
KR100621063B1 (ko) 1999-07-24 2006-09-07 삼성전자주식회사 인터프리터형 제어프로그램의 개발 방법 및 시스템
JP2003006255A (ja) * 2001-06-22 2003-01-10 Fujitsu Ltd Hdl自動修正装置およびhdl自動修正プログラム並びに同プログラムを記録したコンピュータ読取可能な記録媒体
KR100501936B1 (ko) 2003-05-07 2005-07-18 삼성전자주식회사 소스 코드 검사 시스템 및 방법
JP2006107338A (ja) * 2004-10-08 2006-04-20 Matsushita Electric Ind Co Ltd プログラム処理装置
JP5168279B2 (ja) * 2007-07-19 2013-03-21 富士通株式会社 アプリケーション改善支援プログラム、アプリケーション改善支援方法およびアプリケーション改善支援装置
CN101286132B (zh) * 2008-06-02 2010-09-08 北京邮电大学 一种基于软件缺陷模式的测试方法及系统
JP2010097426A (ja) * 2008-10-16 2010-04-30 Autonetworks Technologies Ltd コンピュータプログラム、ソースプログラム入力受付装置及びソースプログラム入力受付方法
CN101499015A (zh) * 2009-03-18 2009-08-05 北京和利时系统工程有限公司 一种高级语言转换成其它高级语言的方法及转换器
KR20110020520A (ko) 2009-08-24 2011-03-03 한국전력기술 주식회사 소프트웨어 개발 과정이 통합된 소프트웨어의 안전성 분석 방법 및 그를 위한 시스템
JP2011129121A (ja) 2009-12-18 2011-06-30 Korea Electronics Telecommun 静的分析道具統合管理装置及びシステム
JP2012103923A (ja) 2010-11-10 2012-05-31 Renesas Electronics Corp コンパイラ装置、コンパイル方法及びコンパイラプログラム
JP5725359B2 (ja) * 2011-09-20 2015-05-27 日本電気株式会社 ソースコード比較装置、ソースコード比較方法およびソースコード比較プログラム
KR20130097252A (ko) 2012-02-23 2013-09-03 삼성전자주식회사 소스 코드 분석에 의한 응용 프로그램 분석을 위한 방법 및 장치
US20170212829A1 (en) * 2016-01-21 2017-07-27 American Software Safety Reliability Company Deep Learning Source Code Analyzer and Repairer

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101051600B1 (ko) * 2010-03-29 2011-07-22 주식회사 소프트 포 소프트 아밥 소스코드의 코드 검사를 수행하는 코드검사 수행시스템

Also Published As

Publication number Publication date
KR20160025426A (ko) 2016-03-08
JP2017527034A (ja) 2017-09-14
US20170277617A1 (en) 2017-09-28
CN106796543A (zh) 2017-05-31
US10496516B2 (en) 2019-12-03
JP6579340B2 (ja) 2019-09-25

Similar Documents

Publication Publication Date Title
KR101623174B1 (ko) 소스 코드 분석 장치, 이를 위한 컴퓨터 프로그램, 그 기록매체
Stănciulescu et al. Concepts, operations, and feasibility of a projection-based variation control system
US9052983B2 (en) Source code patches
US9015666B2 (en) Updating product documentation using automated test scripts
CN108351764B (zh) 数据处理方法和系统
US20090271768A1 (en) Discriminating program code updates after merging for live review
US8434062B2 (en) Enhancing source code debugging and readability using visual symbols
US20090037830A1 (en) Software solution for localization of software applications using automatically generated placeholders
KR101706425B1 (ko) 코드의 단위 테스트를 위한 장치 및 방법
US9262132B1 (en) Incremental local source code analysis
US10261884B2 (en) Method for correcting violation of source code and computer readable recording medium having program performing the same
EP4272073A1 (en) Automatically updating documentation
JP6845429B2 (ja) コンパイラプログラム、情報処理装置およびコンパイル方法
JP6440895B2 (ja) ソフトウェア分析装置及びソフトウェア分析方法
US8473903B2 (en) Code edit apparatus and recording medium
US9645798B1 (en) Using program code to generate help information, and using help information to generate program code
US9165007B2 (en) Log message optimization to ignore or identify redundant log messages
JP6790921B2 (ja) プログラム分析装置、プログラム分析方法及びプログラム分析プログラム
JP4888663B2 (ja) 検証用プログラム自動生成装置、その方法及びプログラム
KR101585048B1 (ko) 다이어그램 기반 알고리즘 시뮬레이션 시스템
JP4983027B2 (ja) チェックプログラム及びチェック方法
GB2510866A (en) Computer code editor
JP2016126700A (ja) プログラム検証装置、プログラム検証方法及びプログラム検証プログラム
JP2009042951A (ja) プログラム中のデータ抽出方法及び装置
JP6281239B2 (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