KR20070082263A - 상태그래프를 이용한 정보시스템 기반구조분석 품질검증기및 그 제어방법 - Google Patents

상태그래프를 이용한 정보시스템 기반구조분석 품질검증기및 그 제어방법 Download PDF

Info

Publication number
KR20070082263A
KR20070082263A KR1020060014850A KR20060014850A KR20070082263A KR 20070082263 A KR20070082263 A KR 20070082263A KR 1020060014850 A KR1020060014850 A KR 1020060014850A KR 20060014850 A KR20060014850 A KR 20060014850A KR 20070082263 A KR20070082263 A KR 20070082263A
Authority
KR
South Korea
Prior art keywords
program
quality
pattern
verifier
component
Prior art date
Application number
KR1020060014850A
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 KR1020060014850A priority Critical patent/KR20070082263A/ko
Publication of KR20070082263A publication Critical patent/KR20070082263A/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/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44589Program code verification, e.g. Java bytecode verification, proof-carrying code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 개발된 프로그램의 품질을 자동으로 검증하기 위해, 품질을 결정하는 일정한 패턴을 상태 그래프화 하고 프로그램 코드의 특징과 비교하여 검증하고, 검증결과를 사용자에게 제공하는 상태그래프를 이용한 기업용 기반구조분석 품질검증기 및 그 제어방법에 관한 것이다.
본 발명의 목적은 개발자, 품질관리자 등의 사용자가 프로그램 코드를 자동으로 검증하고 검증된 품질정보를 조회하므로 정보시스템의 구축 및 유지보수에 있어서 품질을 높이는 데 있다.
본 발명의 구성은 프로그램 코드를 적재하는 프로그램 적재기, 프로그램의 품질을 검증하는 품질검증기, 품질검증DB, 프로그램의 패턴을 입력하는 프로그램 패턴 입력기, 성능패턴을 입력하는 성능 패턴기, 시스템으로부터 성능관련 중요정보를 수집하는 성능관련 요소정보 수집기, 품질관련 내역을 시각적으로 보여주는 품질정보 시각화기, 변경위험의 비용을 계산하기 위한 계수를 입력하는 변경위험 계수 입력기, 변경위험패턴 입력기로 되어 있다
본 발명의 효과는 정보시스템의 구축과 운영과 관련된 품질관리자, 성능관리자, 프로젝트매니저 및 개발자에게 패턴으로 기준을 제시하고 해당패턴으로 프로그램이 되었는지 검증하여 품질 좋은 정보시스템을 구축하는 데 있다.
상태 그래프, 정보시스템, 프로그램 패턴, 품질검증, 변경위험, 품질정보, 프로그램 특성

Description

상태그래프를 이용한 정보시스템 기반구조분석 품질검증기 및 그 제어방법{A QUALITY VERIFICATION SYSTEM USING STATUS GRAPH AND VERIFICATION METHOD}
도 1은 본 발명의 실시 예에 따른 상태그래프를 이용한 정보시스템 기반구조분석 품질검증기의 전체 시스템 개념도 이다.
도 2는 본 발명의 실시 예에 따른 프로그램 코드의 품질을 검증하는 품질검증기의 구성도 이다.
도 3은 본 발명의 실시 예에 따른 품질검증결과 등의 품질정보를 사용자가 쉽게 조회할 수 있도록 하는 품질정보 시각화기의 블록 구성도 이다.
도 4는 본 발명의 실시 예에 따른 프로그램 패턴 검증기의 처리방식에 따른 순서도 이다.
도 5는 본 발명의 실시 예에 따른 성능검증기의 동작방법에 따른 순서도 이다.
도 6은 본 발명의 실시 예에 따른 프로그램 패턴 입력기의 동작방법에 따른 순서도 이다.
도 7은 본 발명의 실시 예에 따른 구성요소 변경시 구성요소의 변경에 따른 위험/비용을 계산하는 계산방법의 순서도 이다.
본 발명은 개발된 프로그램의 품질을 자동으로 검증하기 위해, 품질을 결정하는 일정한 패턴을 상태 그래프화하고 프로그램 코드의 특징과 비교하여 검증하고, 검증결과를 사용자에게 제공하는 상태그래프를 이용한 정보시스템 기반구조분석 품질검증기 및 그 제어방법에 관한 것이다.
일반적으로 프로그램의 품질특성은 국제 표준인 ISO/IEC 9126-1에서 정의한바 같이 기능성, 신뢰성, 사용성, 효율성, 유지보수성, 이식성으로 규정하고 있으며, 이러한 특성들은 다시 세부적인 부 특성들로 구성된다. 부 특성은 소프트웨어의 생명주기에 따라 개발단계에서의 품질관련은 9126-3 내부 메트릭에서 규정하고 있으며, 제품개발 완료 후 실행코드 단계에서의 품질관련은 9126-2의 외부 메트릭(완성단계의 측정)에서 규정하고 있다.
이러한 품질특성은 환경적인 요인과 개발 프로그램의 특성, 개발자의 프로그램 능력 등에 영향을 받는다. 하드웨어와 다르게 소프트웨어는 유연성이 존재하며, 개발자의 능력이나 특성에 따라 잘 만들어진 프로그램과 그렇지않은 프로그램과는 커다란 차이를 나타낸다. 이러한 품질의 특성은 개발자가 프로그램을 작성하는 패턴과도 영향이 깊으며, 품질이 좋은 프로그램의 패턴을 정의하고 해당패턴과 개발자가 작성한 프로그램과의 차이점을 분석하여 프로그램의 품질을 검증한다.
프로그램 코드의 코딩 스타일 등의 프로그램패턴에 관련된 품질을 검증하는 방법으로 품질관리자가 시각적으로 프로그램의 특징과 형식을 검사하는 수작업의 방법과 본 발명에서와 같이 자동화된 품질검증기를 이용하는 방법이 있다.
프로그램을 수작업으로 검증하는 방법은 프로그램 표준정의서, 품질 지침서에 나와 있는 프로그램 코딩시 지켜야될 사항을 품질관리자가 시각적으로 검증하고 해당내용을 개발자에게 통보해 주는 방법으로 소수의 품질관리자가 다수의 프로그램을 검증하는데 어려움이 있고 프로그램의 표준 및 준수사항이 많을 때는 완벽히 검증하는 것이 불가능한 단점이 있다.
프로그램의 패턴을 바탕으로 자동으로 검증하는 방법은 프로그램의 특징을 검출하여 패턴을 만들고 해당 패턴과의 차이점을 검증하고 추출된 검증정보를 제공하는 방법으로, 프로그램의 패턴을 추출하기 위해서는 프로그램의 특징을 검출하고 해당 특징들 간의 관계를 정의 하여 해당프로그램의 특징을 나타내는 패턴을 추출할 수 있다. 프로그램의 특징은 언어적 특성과 기술적 특성으로 정의될 수 있으며, 특징 간의 관계는 포함관계, 연관관계, 사용관계, 의존관계 등의 관계적 특성으로 구성된다. 프로그램의 특징, 그리고 특징 간의 관계가 해당프로그램의 품질에 영향이 있는 패턴을 형성한다.
구성요소의 변경과 관련된 품질은 구성요소의 변경으로 인한 변경위험비용과 구성요소 간의 연관관계에 밀접한 영향이 있다. 이러한 위험비용과 구성요소 간의 관계가 변경관련 품질을 결정하는 특정한 패턴을 형성한다. 즉 변경으로 인해 시스템의 불안정성을 야기하는 패턴을 만들 수 있으며 이러한 패턴을 비교하고 추출하므로 구성요소 변경에 대한 품질검증을 한다.
본 발명과 관련된 선행기술로는 Christopher Alexander, 1977년에 발표한 "A Pattern Language: Towns, Buildings, Construction”에서 제시한 품질 좋은 프로그램을 만드는 패턴에 관련된 내용이 기술되어 있으며, 기업환경에서의 패턴에 관련된 기술로는 Martin Fowler 2003년에 발표한 "Patterns of Enterprise Application Architecture"가 있다.
또 다른 선행기술로는 인터넷을 이용하여 품질관리 프로세스를 제시한 출원번호 10-2004-0028939 "인터넷을 이용한 품질관리 운영방법"이 있다. 해당 특허는 6 시그마 품질관리에 필요한 분석, 관리, 개선모듈을 인터넷 화면으로 구성하고 입력,조회하는 것으로 품질관리를 위해 당사자 간의 정보교환에 중점을 두고 있다.
그러나 상기의 기술들은 품질을 높이기 위한 품질 좋은 프로그램의 특징에 대한 추상적인 패턴에 대한 연구, 또는 수작업으로 검증한 품질관련 정보를 서로 교환하므로 프로그램의 품질을 높이는 연구는 진행되고 있으나, 품질이 좋은 프로그램의 유형을 프로그램 패턴으로 정의하고 해당 패턴과 프로그램 코드를 자동을 비교하므로 프로그램의 품질을 점검하는 기술은 전무한 상태이다. 즉 품질과 성능이 우수한 프로그램의 특성을 추출하여 패턴화시키고 이 패턴을 개발자가 작성한 프로그램의 패턴과 비교하여 프로그램의 품질을 자동으로 점검하는 것은 어려운 일로써, 프로그램의 특징들 간의 관계를 바탕으로 프로그램의 패턴을 추출하는 것이 언어적 특성과 기술적 특성이 혼재되어 있어서, 프로그램의 특징을 추출하여 패턴화시키는데 어려움이 있고, 정의된 패턴을 바탕으로 다양한 형태의 프로그램 코드를 자동으로 검사하는 것이 어려워 프로그램의 품질검증을 자동화하는 것이 불가능 한 문제점이 있다.
본 발명은 프로그램 품질검증에 있어서 상기의 문제점을 해결하기 위한 것으로 품질이 좋은 프로그램의 특징을 상태 그래프를 이용하여 프로그램내의 패턴을 구성하는 특징요소를 추출하고 품질이 좋은 프로그램과 비교하여 품질과 성능을 검증하게 하고, 추출된 구성요소의 연관관계 패턴을 이용하여 변경에 대한 변경비용과 위험성을 이해하기 쉽도록 그래프 형식으로 제공하므로, 개발자, 품질관리자 등의 사용자가 프로그램 코드를 자동으로 검증하고 검증된 품질정보를 조회하므로 정보시스템의 구축 및 유지보수에 있어서 품질을 높이는데 그 목적이 있다.
상기의 목적을 달성하기 위해 본 발명의 시스템은 프로그램의 특징을 입력받아 상태 그래프형식의 프로그램 패턴DB에 저장하는 프로그램 패턴 입력기; 특정조건하에서 성능저하의 원인에 대한 결과와 해결방안을 성능패턴DB에 저장하는 성능패턴 입력기; 프로그램의 수행환경에 대한 성능관련 환경정보를 수집하는 성능관련 요소정보 수집기; 프로그램 코드를 입력받아 품질 검증 DB을 이용하여 프로그램코드의 품질을 검증하여 검증결과를 검증결과DB에 저장하는 프로그램 품질 검증기;를 포함하는 것을 특징으로 한다.
또한 상기 목적을 달성하기 위한 본 발명의 방법은 프로그램의 특징을 상태그래프형식의 프로그램 패턴으로 변환하여 프로그램 패턴DB에 저장한다. 프로그램 패턴 검증기는 프로그램 코드를 입력받아 프로그램 패턴DB을 이용하여 프로그램의 품질패턴을 검증하고 프로그램의 성능평가 영역을 검출하여 성능분석기에서 전달하 고 구성요소와 연관관계 정보를 구성요소 추출기에 전달한다. 프로그램 품질패턴 검증에서 추출한 성능평가 영역에 대해 시스템 소프트웨어의 수행평가를 통해 특정조건하에서의 성능저하 원인과 결과 및 해결방안을 검증결과DB에 저장한다. 품질검증기에서 추출한 구성요소와 연관관계를 구성요소 연관관계DB에 저장한다. 연관관계DB에 저장된 연관관계와 변경위험계수DB을 이용한 변경 위험비용 값과 변경위험 패턴을 비교하여 구성요소 변경에 따른 변경비용과 위험도를 검증결과DB에 저장한다. 또한 ISO9126에서 명시한 바와 같이 유지보수에 관련된 품질을 실현하기 위해 정보시스템을 구성하는 구성요소 간의 관계를 추출하여 구성요소 간의 연관관계를 점검 하므로써, 한 구성요소의 변경으로 인해 주변의 연관된 구성요소의 변경비용 또는 위험성을 표시하고 장애시 장애의 원인파악 및 조치가 신속히 되도록 변경위험 요소를 관리할 수 있도록 한다
이하, 본 발명의 바람직한 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명에 따라 상태그래프를 이용한 정보시스템 기반구조분석 품질검증기의 전체 구성도이다.
도 1을 참조하면 본 발명에 따른 프로그램 코드(10)를 적재하는 프로그램 적재기(100), 프로그램의 품질을 검증하는 품질검증기(200), 품질검증DB(300), 프로그램의 패턴을 입력하는 프로그램 패턴 입력기(400), 성능패턴을 입력하는 성능패턴기(500), 시스템으로부터 성능관련 중요정보를 수집하는 성능관련 요소정보 수집 기(600), 품질관련내역을 시각적으로 보여주는 품질정보 시각화기(700), 변경위험의 비용을 계산하기 위한 계수를 입력하는 변경위험 계수입력기(800), 변경위험패턴 입력기(900)로 구성되어 있다.
도면을 참조하면 본 발명에 따른 품질검증기(200)는 프로그램 적재기(100)로부터 프로그램코드를 입력받아 품질검증DB(300)을 이용하여 프로그램코드(10)를 점검하고 점검내용을 검사내역에 출력하고 구성요소정보를 품질검증DB(300)에 저장한다.
도면을 참조하면 본 발명에 따른 품질검증 DB(300)은 프로그램 패턴 입력기(400), 성능패턴 입력기(500), 성능관련 요소정보 수집기(600) 및 변경위험 패턴입력기(900)로부터 정보를 입력받아 정보를 저장하고 프로그램 품질 검증기(200)가 사용할 수 있도록 한다.
도면을 참조하면 본 발명에 따른 품질정보 시각화기 (700)는 프로그램 품질검증기(200)로부터 산출된 품질검증 내역을 시각화하고 구성요소와 구성요소 간의 연관관계를 바탕으로 변경위험을 정량적으로 산출하여 표시한다.
도 2는 본발명에 따른 프로그램 품질검증기의 세부구성도로써, 프로그램 품질검증기는 프로그램 패턴검증기(210), 성능검증기(220), 구성요소 추출기(230) 및 변경위험검증기(240)로 구성되며, 프로그램 적재기(100)로 부터 프로그램을 적재하고 적합한 상태그래프 정보를 프로그램 패턴 검증기(210)에 입력하면 프로그램 패턴 검증기(210)는 프로그램 패턴DB의 프로그램 패턴을 이용하여 프로그램의 품질을 검증하고 성능평가영역관련 정보를 추출하여 성능검증기(220)에 전달하고, 구성요소관련 정보를 생성하여 구성요소 추출기(230)에 전달한다.
도면에 따르면 성능검증기(220)는 프로그램 패턴검증기(210)로 부터의 성능평가영역정보를 입력받아 성능패턴DB(320)을 이용하여 해당영역의 성능을 검증하고 검증결과를 검증결과DB(350)에 저장한다. 구성요소추출기(230)는 프로그램 패턴 검증기로부터 구성요소 정보를 입력받아 구성 요소간 연관관계를 생성하여 구성요소 연관관계DB(330)에 저장한다.
도면에 따르면 변경위험 패턴 검증기(240)는 구성요소 연관관계 DB(330)으로부터 구성요소와 연관관계를 입력받아 변경위험 DB을 이용하여 변경위험이 높은패턴을 찾아 검증결과DB(350)에 저장한다.
도 3은 본 발명에 따른 품질정보 시각화기의 세부 구성도로서, 품질정보 시각화기는 변경 위험/비용 계산기(710)와 변경 위험/비용 표시기(720) 및 품질검증결과 표시기(730)로 구성되며, 변경 위험/비용계산기(710)는 구성요소 연관관계 DB(330)으로부터 구성요소 간의 연관관계를 입력받고 연관관계에 따른 변경위험계수 DB(340)을 이용하여 변경위험과 비용을 계산하고, 변경위험 표시기(720)는 변경 위험/비용 계산기로 부터의 계산결과와 구성요소 연관관계DB 및 검증결과DB를 이용하여 변경 위험/비용을 표시하며, 변경위험 표시내용은 변경에 따른 비용 List와 변경 구성요소가 중앙에 위치하고 연관된 구성요소를 방사선으로 배치한 변경위험 방사선 그래프 및 구성요소의 변경에 따른 변경의 의존도를 나타낸 변경 의존도 그 래프 등으로 구성되며, 변경요소와 연관요소와의 관계표현을 포함한다. 또한 변경되는 구성요소의 영향으로 연관된 구성요소가 변경되고, 변경된 구성요소로 인한 연관 비용도 포함한다.
품질 검증결과표시기(730)는 검증결과 DB(350)을 이용하여 품질 검증결과를 표시하며, 품질검증 표시내용은 프로그램 패턴검증결과와 성능검증결과로 구성된다.
도 4는 본 발명에 따른 프로그램 패턴 검증기가 처리하는 절차를 도시한 순서도이다. 도4를 참조하면 프로그램 패턴 검증기는 프로그램 패턴DB로부터 상태그래프를 가져온다(211). 상태그래프는 품질이 좋은 프로그램이 가져야할 프로그램 패턴을 그래프 형태로 구성되어 있으며 해당그래프에 따라 검증할 프로그램과 상태그래프를 비교하므로 좋은 프로그램의 패턴에 맞도록 코딩되어 있는지를 검증한다. 도 4를 참조하면 상태그래프를 가져온 후 검증할 프로그램 파일을 열고 상태코드를 시작으로 초기화 한다(212). 품질검증기가 입력파일을 읽어(213) 인식의 단위인 토큰으로 문장을 분리한다. 현재상태에서 입력될 토큰과 비교하여(214) 일치하면(214-1) 상태정보를 해당 토근과 연관된 상태 값으로 변경한다(215). 상태코드가 목표상태에 도달했는지를 검사(215-1)하고 목표상태에 도달했으면 지정된 동작을 수행한다(216). 또한 파일이 끝났는지를 검사하고(216-1), 파일의 끝이면 해당 프로그램의 품질 검증결과를 검증결과 DB에 저장한다.(217) 파일의 끝이 아니면 입력 파일을 읽어 다음 토큰을 가져온다.(213) 상태 그래프에 정의되지 않아서 프로그램 을 해석하기 불가능한 경우(214-2) 프로그램 패턴입력기(400)를 통해 상태그래프를 수정하거나 새로운 상태 그래프를 입력받도록 한다.
도 5는 본 발명에 따라 성능검증기의 동작을 도시한 순서도이다. 도면을 참조하면 성능검증기는 프로그램 패턴으로 받은 성능평가영역 정보를 바탕으로 성능평가 영역을 추출한다(221). 추출된 성능평가영역을 시스템 소프트웨어를 통해 수행평가를 실시하고(222), 수행평가의 결과로 수행평가 파일(223)을 생성하여 저장한다. 해당 수행 평가파일(223)을 읽어 수행성능을 저하시키는 패턴이 있는지 성능패턴 DB(320)에서 검색(224)한다. 해당 조건에 맞는 성능 패턴이 존재하면 성능저하원인 및 해결책을 성능패턴 DB로부터 입력받아 검증결과DB에 저장한다(225). 해당 처리 내역을 평가영역이 끝날 때까지 반복한다.(225-1)
도 6은 본 발명에 따라 프로그램 패턴 입력기의 동작을 도시한 순서도이다. 프로그램 패턴입력기는 상태그래프를 생성하기 위해 필요한 자료와 정보를 입력받는 입력기이다. 도 4를 참조하면 프로그램 패턴 검증기가 정의되지 않은 상태 그래프로 인하여 프로그램의 품질을 검증하기 불가능한 경우 해당문장을 프로그램 분석기(400)로 전달한다.
도 6을 참조하면 분석할 문장을 읽고(410) 해당문장을 해석할 유사상태 그래프를 이용하여 각각의 문장을 해석하기 위한 속성을 표시한다.(420). 해당 문장 중 예약어를 표시하기 위해 예약어DB(435)의 예약어를 이용하여 예약어를 표시하거나 예약어를 사용자가 지정하게 하고 해당 예약어를 예약어DB에 저장한다(430). 구성 요소는 품질 검증기가 패턴의 특징을 표현하기 위해 표시하는 문서 또는 프로그램에서의 인식이 가능한 단어, 표식 등의 속성으로 표현된다. 도면을 참조하면 프로그램 패턴 입력기는 구성요소를 지정하고(440) 목표상태를 지정하며(450), 목표상태에 도달했을 때의 동작을 지정한다(460) 해당문장에 대한 모든 정보의 입력이 끝나면 해당정보를 상태그래프로 변환한다.(470) 변환된 상태그래프는 프로그램 패턴DB(310)에 저장한다. 상태 그래프를 프로그램 패턴DB(310)에 저장할 때 기존에 저장된 다중의 상태그래프는 수행성능을 최적화하기 위해 상태 그래프의 논리적 개념을 유지하면서 기능적으로 효율적인 구조로 변형 저장된다.
도 7은 본 발명에 따라 구성요소의 변경시 구성요소 연관관계DB을 입력받아 구성요소의 변경으로 인한 변경위험을 정량적 값을 계산하는 변경 위험/비용 계산기(710)의 동작을 도시한 순서도이다.
도면을 참조하면 영향받는 구성요소를 처리하기 위한 queue와 계산된 요소집합을 초기화(711)한다. 변경할 구성요소를 계산된 구성요소집합에 추가하고 변경위험을 계산하기 위해 변경할 구성요소를 queue에 넣는다.(712) 변경위험을 계산하기 위해서 계산할 구성요소의 queue가 비었는지 검사한 후(712-1) queue에 처리할 구성요소가 남아 있으면 queue에 있는 첫번째값을 element에 대입한다.(713) 계산할 구성요소인 element와 연관관계가 있는 모든 구성요소와 연관관계를 구성요소 연관관계DB(330)을 이용하여 검색한다.(714). 검색된 모든 구성요소와 연관관계에 대하여 해당구성요소가 미리 계산된 구성요소인지 검사하고(716) 미리 계산된 구성요소가 아니면 중복된 계산을 하지 못하도록 계산된 구성요소 집합에 추가하고(717) 연 관관계로 변경될 구성요소의 변경비용을 계산하기 위해 queue에 추가하며(718) 변경위험계수 DB(340)의 변경계수를 이용하여 변경위험 및 변경비용을 계산한다(719). 도면을 참조하면 queue에 더 이상 처리할 구성요소가 없으면(712-1) 변경위험을 표시한다(720)
상기한 실시 예는 하나의 예에 불과한 것으로 본 발명은 상기한 실시 예에 한하지 않고 이하의 특허청구의 범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경실시가 가능한 범위까지 본발명의 기술적 사상이 미친다고 할 것이다.
이상에서 설명한 것과 같이, 본 발명은 첫째로 프로그램 코드의 품질을 이루고 있는 특징을 추출하여 프로그램의 프로그램패턴을 구성하고 이 프로그램패턴을 상태 그래프 형식으로 변환하여 프로그램 패턴을 생성하고, 둘째로 프로그램코드를 해당 프로그램 패턴과 자동으로 검증하며, 셋째로 해당 자동화된 품질검증기로부터 산출된 검증결과를 시각화하므로써 정보시스템의 구축과 운영과 관련된 품질관리자, 성능관리자, 프로젝트매니저 및 개발자에게 패턴으로 기준을 제시하고 해당패턴으로 프로그램이 되었는지 검증하여 품질 좋은 정보시스템을 구축할 수 있는 효과가 있다.
또한 ISO/IEC 9126-1에서 정의한 유지보수성에 관련된 품질을 높이기 위해 시스템 구성요소를 추출하고 시스템 구성요소 간의 관계를 표시함으로써 해당 시스템이 구성요소를 변경하므로 영향받는 구성요소를 표시하고, 구성요소를 변경하므로 감수해야될 위험을 정량적으로 표시하여, 시스템 구성요소의 장애로 인한 연관된 구성요소를 분석하게 하고, 장애로 인해 영향받는 구성요소를 표시하므로, 변경으로 인한 위험패턴을 조기에 발견할 수 있도록 하는 효과가 있다.

Claims (11)

  1. 상태그래프를 이용한 정보시스템 기반구조분석 품질검증기에 있어서
    프로그램 코드를 입력받아 프로그램 패턴 입력기로 입력된 프로그램 패턴의 표현 형식인 상태그래프을 이용하여 품질을 검증하는 품질 검증기;
    상기의 품질검증기로부터 추출된 구성요소와 변경위험 계수 입력기로 부터 입력된 구성요소의 관계에 따른 위험비용 및 위험도를 표시하는 품질정보 시각화기;
    상기의 품질검증기에서 사용할 품질패턴을 입력받아 상태그래프 형태로 품질검증 DB에 저장하는 프로그램 패턴 입력기;
    상기의 품질검증기에서 성능패턴의 추출을 위해 사용할 조건-행위 그래프를 입력받아 품질검증 DB에 저장하는 성능패턴 입력기;
    상기의 품질검증기에서 성능의 조건으로 사용할 시스템의 성능요소의 정보를 수집하는 성능관련 요소정보 수집기;
    상기의 품질검증기에서 변경에 따른 위험 패턴을 비용 및 연관관계조건으로 이루어 진 변경위험패턴을 입력받아 품질검증DB에 저장하는 변경위험 패턴 입력기;
    상기의 품질정보 시각화기에서 사용할 구성요소 간의 관계에 따른 변경위험계수를 입력하는 변경위험 계수 입력기;및
    상기의 품질검증기에서 사용할 프로그램 코드의 종류를 분류하고 분석하여 품질검증기에 입력하는 프로그램 적재기;를 포함하는 것을 특징으로 하는 상태그래프를 이용한 정보시스템 기반구조분석 품질검증기
  2. 제 1항에 있어서, 프로그램코드의 종류는
    파일의 형태에 따라 프로그램 소스코드, 환경파일, XML파일, 메타파일 등이 있으며, 프로그램 기법을 적용할 수 있는 규칙이 정의되어 있고 이 규칙에 따라 파일의 내용을 해석할 수 있으며, 품질을 이루는 패턴을 정의하고 비교하여 품질을 검증하는 것을 특징으로 하는 상태그래프를 이용한 정보시스템 기반구조분석 품질검증기
  3. 제 1항에 있어서, 품질검증기는
    프로그램 적재기로 부터 입력받은 프로그램을 프로그램 패턴DB로부터 해당 프로그램에 관련된 상태그래프를 이용하여 프로그램의 패턴을 검증하는 프로그램 패턴 검증기;
    상기의 프로그램 패턴 검증기로부터 추출된 성능평가영역을 시스템 소프트웨어로 수행평가하고 평가된 내용에서 성능을 저하하는 패턴을 검사하는 성능검증기;
    상기의 프로그램 패턴검증기로부터 추출한 구성요소와 구성요소 간의 연관관계를 구성요소 연관 DB에 저장하는 구성요소 추출기;및
    상기의 구성요소 연관DB을 입력받아 변경위험 패턴DB을 이용하여 구성요소의 변경으로 인한 변경위험을 검증하는 변경위험 패턴검증기;를 포함하는 것을 특징으로 하는 상태그래프를 이용한 정보시스템 기반구조분석 품질검증기
  4. 제 3항에 있어서, 프로그램 패턴검증기로부터 추출한 구성요소는
    고유의 명칭과 속성을 가지며, 속성의 종류에 따라 파일, 테이블, 함수, 필드, 파라메터 등으로 구별된다. 구성요소는 구성요소의 속성을 바탕으로 서로 관계를 형 성해서 프로그램의 구조적 특징을 나타내는 것을 특징으로 하는 상태그래프를 이용한 정보시스템 기반구조분석 품질검증기
  5. 제 3항에 있어서, 구성요소 간 연관관계는
    구성요소의 속성 간의 관계에 따라 사용관계, 포함관계, 의존관계, 구성관계, 집합관계 등이 있으며, 프로그램을 해석하는데있어 프로그램 기법 및 방법상의 의미 있는 관계를 부여하는 것으로 한 구성요소의 변경이 연관된 구성요소가 영향을 주는 것을 특징으로 하는 상태그래프를 이용한 정보시스템 기반구조분석 품질검증기
  6. 제 1항에 있어서, 품질정보 시각화기는
    상기의 구성요소연관관계DB을 입력받아 변경계수DB의 변경계수를 이용하여 위험과 비용을 계산하는 위험/비용 계산기;
    상기의 위험/비용 계산기로부터 계산된 위험과 비용을 기반하여 위험/비용을 표시하여주는 위험/비용 표시기;및
    상기의 검증결과 DB와 구성요소 연관관계DB을 입력받아 품질을 자동검증한 결과를 표시하여주는 품질검증결과 표시기;를 포함하는 것을 특징으로 하는 상태그래프를 이용한 정보시스템 기반구조분석 품질검증기
  7. 프로그램 코드를 입력받아 사용할 프로그램 코드의 종류를 분석하고 품질검증기에서 사용할 상태그래프 정보와 파일을 품질검증기에 적재하는 프로그램 적재단계;
    상기 프로그램 적재단계에서 적재된 프로그램과 상태정보를 입력받아 프로그램 패턴 DB을 이용한 프로그램의 패턴 검증단계;
    상기의 프로그램 패턴 검증단계에서 추출한 성능검증영역정보와 성능패턴 DB을 이용하여 성능검증을 하는 단계;
    상기의 프로그램 패턴 검증단계에서 추출한 구성요소와 구성요소 간의 연관관계를 추출하는 구성요소 추출단계;
    상기의 구성요소 추출단계에서 추출한 구성요소와 구성요소 간 연간관계를 입력받아 변경위험패턴DB을 이용하여 변경위험 패턴을 검증하는 단계;를 포함하는 상태그래프를 이용한 정보시스템 기반구조분석 품질검증기 및 그 제어방법
  8. 제 7항에 있어서, 프로그램 패턴검증단계는
    상기의 프로그램 적재단계에서 적재된 프로그램과 상태그래프 정보를 읽는 1단계;
    검증할 프로그램을 열고 상태코드를 시작상태로 하는 2단계;
    상기 2단계에서 오픈된 검증할 프로그램을 비교할 수 있는 단위인 토큰으로 분리하여 읽는 3단계;
    상기 3단계에서 분리하여 읽은 토큰을 상태그래프의 현재상태의 입력 값과 비교하는 4단계;
    상기의 현재상태의 입력 값과 토큰이 일치하면 상태코드를 입력토큰에 관련된 상태로 대입하는 5단계;
    상기 5단계에서 변경된 상태코드가 목표상태에 도달했는지를 비교하고 목표상태에 도달했으면 지정된 동작에 따라 성능평가영역정보를 생성하거나, 구성요소 정보와 연관정보를 생성하거나, 품질패턴에 일치하거나 불일치한 정보를 생성하는 동작을 수행하는 6단계;및
    상기 6단계에서 파일이 끝나면 프로그램이 품질 패턴과 검증결과를 검증결과DB에 저장하는 7단계;를 포함하는 것을 특징으로 하는 상태그래프를 이용한 정보시스템 기반구조분석 품질검증기 및 그 제어방법
  9. 제 7항에 있어서, 프로그램의 성능을 검증하는 단계는
    상기 프로그램 패턴 검증단계에서 생성된 성능평가 영역정보를 바탕으로 성능평가 영역을 추출하는 8단계;
    상기 8단계에서 추출한 성능평가 영역의 프로그램 코드를 시스템 소프트웨어로 수행하여 수행평가 정보를 산출하여 수행평가파일에 저장하는 9단계;
    상기의 수행평가파일로부터 시스템 소프트웨어 수행평가파일을 입력받아 성능패턴 DB의 성능 저하패턴과 비교하여 성능저하 원인과 해결책을 찾는 10단계;및
    상기 10단계에서 성능 저하패턴과 일치하면 성능저하원인 및 해결책을 검증결과DB에 저장하는 11단계; 를 포함하는 것을 특징으로 하는 상태그래프를 이용한 정보시 스템 기반구조분석 품질검증기 및 그 제어방법
  10. 상기 프로그램 검증기로부터 정의되지 않은 해석이 불가능한 프로그램 코드를 입력받아 유사 상태그래프를 이용하여 속성을 지정하는 12단계;
    상기 12단계에서 속성이 지정되지 않은 토큰에 예약어 DB를 이용하여 예약어를 지정하거나 정의하는 13단계;
    상기에서 12, 13단계에서 속성이 지정되지 않은 토큰중 구성요소의 속성을 지정하는 14단계;
    상기의 속성이 지정된 상태에 대해 특징을 인식하거나 추출하기 위해 목표상태를 지정하는 15단계;
    상기 15단계에 도달시 수행하는 동작을 지정하는 16단계;및
    상기에 지정된 속성 및 목표상태, 목표상태에 따른 동작을 상태 그래프로 변환하여 프로그램 패턴DB에 저장하는 17단계;를 포함하는 것을 특징으로 하는 상태그래프를 이용한 정보시스템 기반구조분석 품질검증기 및 그 제어방법
  11. 구성요소의 변경위험과 비용을 산출하기 위해 변경될 구성요소를 입력받고 계산할 변경구성요소 관리 queue를 초기화시키고, 변경요소 집합을 초기화시키는 18단계;
    상기 18단계에서 입력받은 변경될 구성요소를 queue에 추가하고 변경요소집합에 입력받은 변경될 구성요소를 추가하는 19단계;
    Queue가 비었는지 확인한 후 queue가 비어있지 않으면 queue에서 값을 추출하여 임시변수인 element에 대입하는 20단계;
    상기 20단계에서 queue로부터 추출한 임시변수 element와 연관된 구성요소를 구성요소 연관관계 DB로부터 가져오는 21단계;
    상기 21단계에서 연관관계DB에서 가져온 연관된 구성요소 각각에 대해 구성요소가 변경요소 집합에 존재하는지 조사하고, 존재하지 않으면 중복계산되지 않도록 계산된 요소 집합에 추가하고 해당사항과 연관된 변경위험을 구하기 위해 queue에 해당 구성요소를 추가하고 해당구성요소의 연관관계에서 발생하는 변경비용을 계산하는 22단계;및
    상기 20단계에서 queue가 비었으면 전체의 변경위험과 변경비용을 변경위험/비용 표시기로 출력하는 23단계;를 포함하는 것을 특징으로 하는 상태그래프를 이용한 정보시스템 기반구조분석 품질검증기 및 그 제어방법
KR1020060014850A 2006-02-15 2006-02-15 상태그래프를 이용한 정보시스템 기반구조분석 품질검증기및 그 제어방법 KR20070082263A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060014850A KR20070082263A (ko) 2006-02-15 2006-02-15 상태그래프를 이용한 정보시스템 기반구조분석 품질검증기및 그 제어방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060014850A KR20070082263A (ko) 2006-02-15 2006-02-15 상태그래프를 이용한 정보시스템 기반구조분석 품질검증기및 그 제어방법

Publications (1)

Publication Number Publication Date
KR20070082263A true KR20070082263A (ko) 2007-08-21

Family

ID=38611969

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060014850A KR20070082263A (ko) 2006-02-15 2006-02-15 상태그래프를 이용한 정보시스템 기반구조분석 품질검증기및 그 제어방법

Country Status (1)

Country Link
KR (1) KR20070082263A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112559359A (zh) * 2020-12-22 2021-03-26 华东师范大学 一种基于s2ml的安全攸关系统分析与验证方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112559359A (zh) * 2020-12-22 2021-03-26 华东师范大学 一种基于s2ml的安全攸关系统分析与验证方法
CN112559359B (zh) * 2020-12-22 2024-03-22 华东师范大学 一种基于s2ml的安全攸关系统分析与验证方法

Similar Documents

Publication Publication Date Title
US9710257B2 (en) System and method to map defect reduction data to organizational maturity profiles for defect projection modeling
AU2010350247B2 (en) Code inspection executing system for performing a code inspection of ABAP source codes
Lami et al. An automatic tool for the analysis of natural language requirements
US8949166B2 (en) Creating and processing a data rule for data quality
US8589884B2 (en) Method and system for identifying regression test cases for a software
CN117951701A (zh) 用于确定软件代码中的缺陷和漏洞的方法
Le Goues et al. Specification mining with few false positives
CN111752833B (zh) 一种软件质量体系准出方法、装置、服务器及存储介质
CN115328784A (zh) 一种面向敏捷接口的自动化测试方法及系统
CN111966578A (zh) 一种安卓兼容性缺陷修复效果的自动化评估方法
KR20070082263A (ko) 상태그래프를 이용한 정보시스템 기반구조분석 품질검증기및 그 제어방법
Bucci et al. Metrics and tool for system assessment
CN114490413A (zh) 测试数据的准备方法及装置、存储介质和电子设备
Sejfia et al. Toward Improved Deep Learning-based Vulnerability Detection
KR102217092B1 (ko) 애플리케이션의 품질 정보 제공 방법 및 장치
Gopal Design quality metrics on the package maintainability and reliability of open source software
Abushark et al. A framework for automatically ensuring the conformance of agent designs
KR102390280B1 (ko) 무기체계 시스템의 개발 수명주기에서의 사이버보안 적용을 위한 자동화 장치 및 방법
Xiong et al. A Multi-code Representation Fusion Smart Contract Vulnerability Line Detection Method Based on Graph Neural Network
Duarte et al. Extraction of probabilistic behaviour models based on contexts
CN117311806B (zh) 基于加权有向耦合网络的软件结构风险识别方法与装置
CN113961475B (zh) 基于规约导向的错误处理缺陷的检测方法及系统
CN113434408B (zh) 一种基于测试预言的单元测试用例排序方法
Babu et al. Data in DevOps and Its Importance in Code Analytics
TWI519946B (zh) Regression testing system and method in variable database environment

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid