KR20100096621A - 소프트웨어의 검증 방법 및 소프트웨어 검증 방법이 기록된기록 매체 - Google Patents

소프트웨어의 검증 방법 및 소프트웨어 검증 방법이 기록된기록 매체 Download PDF

Info

Publication number
KR20100096621A
KR20100096621A KR1020090015590A KR20090015590A KR20100096621A KR 20100096621 A KR20100096621 A KR 20100096621A KR 1020090015590 A KR1020090015590 A KR 1020090015590A KR 20090015590 A KR20090015590 A KR 20090015590A KR 20100096621 A KR20100096621 A KR 20100096621A
Authority
KR
South Korea
Prior art keywords
state
software
markov
modeling
petri net
Prior art date
Application number
KR1020090015590A
Other languages
English (en)
Other versions
KR101038849B1 (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 KR1020090015590A priority Critical patent/KR101038849B1/ko
Publication of KR20100096621A publication Critical patent/KR20100096621A/ko
Application granted granted Critical
Publication of KR101038849B1 publication Critical patent/KR101038849B1/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]

Landscapes

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

Abstract

소프트웨어의 개발 단계에서 소프트웨어의 비기능적 요구사항을 검증할 수 있는 소프트웨어의 검증 방법 및 소프트웨어 검증 방법이 기록된 기록 매체가 개시된다. 먼저, 하드웨어 및 소프트웨어로 구성된 시스템을 계층형 큐잉 페트리 넷으로 모델링 하고, 모델링된 계층형 큐잉 페트리 넷을 마코프 체인으로 변환한 후, 변환된 마코프 체인에 리워드율을 적용하여 마코프 리워드 모델로 변환하고, 마코프 리워드 모델에 기초하여 소프트웨어의 가용성을 계산한다. 따라서, 소프트웨어의 개발 단계에서 소프트웨어의 비기능적 요소를 검증할 수 있고, 이로인해 소프트웨어의 개발 효율성을 증가시킬 수 있다.
소프트웨어, 비기능, 가용성, HQPN, MC, MRM

Description

소프트웨어의 검증 방법 및 소프트웨어 검증 방법이 기록된 기록 매체{Method For Validating Software And Recorded Medium For Performing Method Of Validating Software}
본 발명은 소프트웨어의 개발 방법에 관한 것으로, 더욱 상세하게는 소프트웨어 시스템의 개발 초기에 소프트웨어의 신뢰도를 검증할 수 있는 소프트웨어의 검증 방법에 관한 것이다.
소프트웨어의 기능적 요소와 비기능적 요소를 동시에 만족시키는 것은 소프트웨어 공학의 목표 중 하나이고, 이러한 요구사항들은 주어진 소프트웨어 개발 기간 내에 충족되어야 한다.
소프트웨어의 비기능적 요소들 중 대표적인 것으로는 성능(Performance), 신뢰도(Dependability), 유용성(Usability) 및 유지 보수성(Maintainability) 등이 있고, 신뢰도는 다시 신뢰성(Reliability)과 가용성(Availability)으로 구분될 수 있다.
전통적인 소프트웨어 공학 측면에서 비기능적 요구사항에 대한 검증은 대부분 소프트웨어의 통합 단계에서 이루어진다. 그리고, 소프트웨어 통합 단계에서 비 기능적 요구사항에 대한 검증의 수행 결과 소프트웨어 비기능적 요구사항을 만족시키는 못하는 것으로 판단되면 소프트웨어의 개발 기간을 추가로 소모하게 되어 막대한 비용과, 개발 기간 및 인력 등이 낭비된다.
따라서, 소프트웨어의 비기능적 요구사항을 소프트웨어 통합 단계 이전에 검증한다면 소프트웨어 개발의 효율성이 증가됨은 물론 소프트웨어 개발 비용을 절감할 수 있다.
소프트웨어의 비기능적 요구사항 중에서 가용성은 사용자가 요청한 서비스를 소프트웨어가 전달할 수 있는 확률을 의미하는 것으로, 우주항공 시스템이나 군사목적 시스템에서와 같이 고수준의 서비스를 보장해야 하는 소프트웨어 개발 분야에서는 매우 중요한 속성이다.
소프트웨어의 개발 초기 단계에서 가용성을 분석하는 방법에는 상태 기반의 분석 모델을 기반으로 시스템을 모델링하고 모델링한 결과를 수학적으로 분석하는 방법이 있다. 그러나, 상기와 같은 상태 기반의 모델링 방법은 상태 공간 폭발(state space explosion)을 야기하는 문제가 있다.
상태 공간 폭발 문제를 해결하기 위한 방법으로 계층형 큐잉 페트리 넷(HQPN: Hierarchical Queuing Petri Nets)을 이용한 모델링 방법이 소프트웨어의 모델링에 사용된다.
계층형 큐잉 페트리 넷은 상태 공간 폭발 문제를 회피할 수 있고, 모델링 언어의 표현에 있어서 상당히 유용하다는 장점이 있다. 그러나, 기존의 연구에서 계층형 큐잉 페트리 넷은 시스템의 성능 분석을 위한 모델링 방법에 대한 연구만 수 행되었을 뿐 시스템의 가용성을 검증하기 위한 연구는 수행되지 않고 있다.
또한, 계층형 큐잉 페트리 넷을 마코프 모델로 변환하여 시스템의 성능을 분석하는 방법이 소개되었으나, 마코프 모델은 시스템의 개별적인 상태에 기반한 모델이기 때문에 시스템의 전체적인 특성을 고려해야 하는 소프트웨어의 가용성 검증에는 적합하지 않은 문제가 있다.
예를 들어, 복수의 프로세서로 구성된 멀티 프로세서 시스템에서 어느 하나의 프로세서가 결함으로 인해 동작을 하지 않는 경우에도 나머지 다른 프로세서들이 사용자에게 서비스를 지속적으로 제공할 수 있다. 즉, 멀티 프로세서 시스템에서 동작하는 프로세서의 개수는 줄었으나 시스템 전체의 가용성은 변하지 않는다. 따라서, 시스템의 개별적인 상태를 기반으로 하는 마코프 모델만으로는 소프트웨어의 가용성을 검증할 수 없기 때문에, 시스템의 개별적인 상태를 고려하여 시스템의 전체적인 가용성을 검증할 수 있는 방법이 요구된다.
따라서, 본 발명의 목적은 소프트웨어의 개발 단계에서 소프트웨어의 비기능적 요구사항을 검증할 수 있는 소프트웨어 검증 방법을 제공하는 것이다.
또한, 본 발명의 다른 목적은 소프트웨어의 개발 단계에서 소프트웨어의 비기능적 요구사항을 검증할 수 있는 소프트웨어 검증 방법이 기록된 기록 매체를 제공하는 것이다.
상술한 본 발명의 목적을 달성하기 위한 본 발명의 일 측면에 따른 소프트웨어의 검증 방법은, 하드웨어 및 소프트웨어로 구성된 시스템을 계층형 큐잉 페트리 넷으로 모델링 하는 단계와, 상기 모델링된 계층형 큐잉 페트리 넷을 마코프 체인으로 변환하는 단계와, 상기 변환된 마코프 체인에 리워드율을 적용하여 마코프 리워드 모델로 변환하는 단계 및 상기 마코프 리워드 모델에 기초하여 상기 소프트웨어의 가용성을 계산하는 단계를 포함한다. 상기 하드웨어 및 소프트웨어로 구성된 시스템을 계층형 큐잉 페트리 넷으로 모델링 하는 단계는, 상기 시스템의 컴포넌트 및/또는 리소스를 모델링하는 단계와, 작업부하의 컴포넌트를 모델링하는 단계와, 상기 시스템 컴포넌트 상호간의 트랜잭션(transaction) 및/또는 상기 트랜잭션의 프로세싱을 모델링하는 단계 및 모델 파라미터를 결정하는 단계를 포함할 수 있다.상기 시스템의 컴포넌트 및/또는 리소스를 모델링하는 단계는, 상기 시스템의 자원들을 능동적인 자원과 수동적인 자원으로 구분하고 상기 능동적인 자원은 플레이스(place)로 표현하고, 상기 수동적인 자원은 토큰(token)들로 표시할 수 있다. 상기 작업부하의 컴포넌트를 모델링하는 단계는, 상기 작업부하의 컴포넌트들을 토큰으로 모델링한 후, 각 작업부하의 클래스를 구분하기 위해 상기 모델링된 토큰에 서로 다른 식별정보를 부여할 수 있다. 상기 시스템 컴포넌트 상호간의 트랜잭션(transaction) 및/또는 상기 트랜잭션의 프로세싱을 모델링하는 단계는, 상기 플레이스들 사이에 트랜지션(transition)을 배치하여 표시할 수 있다. 상기 모델 파라미터를 결정하는 단계는, 상기 플레이스에 포함된 토큰의 수, 토큰의 서비스 시간, 트랜지션의 파이어링 가중치, 파이어링 딜레이 값 중 적어도 하나의 파라미터 값을 결정할 수 있다. 상기 하드웨어 및 소프트웨어로 구성된 시스템을 계층형 큐잉 페트리 넷으로 모델링 하는 단계는, 상기 시스템이 계층형 큐잉 페트리 넷으로 모델링된 후, 상기 모델링된 계층형 큐잉 페트리 넷에 검증의 관점인 비가용적인 상태를 의미하는 토큰의 유출을 적용하는 단계를 포함할 수 있다. 상기 하드웨어 및 소프트웨어로 구성된 시스템을 계층형 큐잉 페트리 넷으로 모델링 하는 단계는, 상기 토큰의 유출이 적용됨에 상응하여 파라미터를 조정하는 단계를 더 포함할 수 있다.상기 모델링된 계층형 큐잉 페트리 넷을 마코프 체인으로 변환하는 단계는, 상기 계층형 큐잉 페트리 넷으로부터 상기 시스템의 초기상태에서 마킹 공간 및 초기 생성자 행렬을 구하는 단계와, 상태 전이에 기초하여 상기 초기 생성자 행렬을 생성자 행렬로 변경하는 단계 및 상기 마킹 공간 및 상기 생성자 행렬에 기초하여 마코프 체인을 생성하는 단계를 포함할 수 있다. 상기 상태 전이에 기초하여 상기 초기 생성자 행렬을 생성자 행렬로 변경하는 단계는, 상기 상태 전이가 이미디에이트 트랜지션(immediate transition)인 경우에는 파이어링 가중치를 통해 상기 생성자 행렬을 구하고, 상기 상태 전이가 타임드 트랜지션(timed transition)인 경우에는 입력 대기율(input latency)을 통해 상기 생성자 행렬을 구할 수 있다. 상기 변환된 마코프 체인에 리워드율을 적용하여 마코프 리워드 모델로 변환하는 단계는, 상기 마코프 체인의 상태를 가용적 상태와 비가용적 상태로 구분하는 단계와, 상기 가용적 상태에는 리워드율 1을 부과하고, 상기 비가용적 상태에는 리워드율 0을 부과할 수 있다. 상기 마코프 리워드 모델에 기초하여 상기 소프트웨어의 가용성을 계산하는 단계는, 수학식
Figure 112009011582145-PAT00001
(여기서,
Figure 112009011582145-PAT00002
는 정상상태에서 기대 리워드율을 의미하고,
Figure 112009011582145-PAT00003
는 상태 i에서의 리워드율을 의미하며,
Figure 112009011582145-PAT00004
는 정상상태에서 상태 i의 확률 벡터를 의미한다. 또한, S는 상태를 의미하고, U는 가용성 상태인 업 스테이트를 의미한다)을 통해 계산될 수 있다.
또한, 상술한 본 발명의 다른 목적을 달성하기 위한 본 발명의 일 측면에 따른 소프트웨어의 검증 방법이 기록된 기록 매체는, 모델링된 계층형 큐잉 페트리 넷을 마코프 체인으로 변환하는 단계와, 상기 변환된 마코프 체인에 리워드율을 적용하여 마코프 리워드 모델로 변환하는 단계 및 상기 마코프 리워드 모델에 기초하여 소프트웨어의 가용성을 계산하는 단계를 수행하는 프로그램이 기록된다.
상기와 같은 소프트웨어의 검증 방법 및 소프트웨어 검증 방법이 기록된 기록 매체에 따르면, 시스템을 계층형 큐잉 페트리 넷으로 모델링 하고, 모델링된 계층형 큐잉 페트리 넷을 마코프 체인으로 변환한 후 변환된 마코프 체인에 리워드율을 적용하여 마코프 리워드 모델을 생성하고, 마코프 리워드 모델에 기초하여 소프트웨어의 가용성을 계산한다.
따라서, 소프트웨어의 개발 단계에서 소프트웨어의 비기능적 요소를 검증할 수 있고, 이로인해 소프트웨어의 개발 효율성을 증가시킬 수 있다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다거나 "직접 접속되어"있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르 게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
가용성을 정량적으로 측정하기 위해서는 가용성을 마코프 체인(MC: Markov Chain) 모델로 나타낸 다음, 가용성 관점에서 마코프 체인의 각 상태에 리워드율(reward rate)을 부과하여 마코프 리워드 모델(MRM: Markov Reward Model)로 변환해야 한다.
도 1은 마코프 체인의 가용성 모델을 나타낸 것이고, 도 2는 마코프 체인의 각 상태에 부과되는 리워드율을 나타낸 것이다.
도 1 및 도 2를 참조하면, 마코프 체인의 상태 0은 시스템이 결함 없이 정상적으로 서비스를 전달하는 상태를 의미하고, 상태 1은 시스템에 결함이 발생하였으나 서비스가 가능한 상태를 의미한다. 또한, 상태 2는 시스템에 재앙적인 상황이 발생하여 시스템이 가용적이지 않은 상태를 의미한다.
또한, 도 1에서 각 상태 사이에는 두 개의 전이율이 존재하는데,
Figure 112009011582145-PAT00005
는 시스템 의 고장 발생율을 의미하고,
Figure 112009011582145-PAT00006
는 고장 복구율을 의미한다.
도 1에 도시된 마코프 체인에서 각각의 상태들을 가용성의 관점으로 구분하면, 시스템이 가용 상태인 업 스테이트(up state)의 집합 U={0, 1}과, 시스템이 비가용 상태인 다운 스테이트(down state)의 집합 D={2}로 구분될 수 있다.
도 1에 도시된 바와 같은 마코프 체인 가용성 모델을 마코프 리워드 모델로 나타내기 위해서는 마코프 체인의 각 상태에 리워드율을 할당하여야 한다. 구체적으로, 가용성의 관점에서 고려하여 업 스테이트 집합인 상태 0과 상태 1에는 리워드율 1을 부과하고, 다운 스테이트 집합인 상태 2에는 리워드율 0을 부과한다.
즉, 마코프 체인의 각 상태에서 가용성은 만족하는가 또는 만족하지 않는가로 구분되기 때문에 본 발명의 일 실시예에 따른 소프트웨어 검증 방법에서는 가용성에 따라 리워드율을 1 또는 0으로만 부과한다.
도 3은 도 1에 도시된 마코프 체인의 상태를 무한소 행렬 Q로 나타낸 것이다.
도 3에서, 상태 0에서 상태 0으로의 전이와 같이 자기 자신의 상태로 전이되는 행렬값(즉, 상태 전이가 발생하지 않는 행렬값)은 그 상태에서 제공되는 모든 전이율을 합한 값의 음의 값을 가진다.
도 3에서 시스템의 초기 상태에서 각 상태의 확률이
Figure 112009011582145-PAT00007
일 때, 임의의 시간 t에서 상태 0의 확률
Figure 112009011582145-PAT00008
, 상태 1의 확률
Figure 112009011582145-PAT00009
및 상태 2의 확률
Figure 112009011582145-PAT00010
는 수학식 1에 의해 구할 수 있다.
Figure 112009011582145-PAT00011
또한, 주어진 시간 t에서 시스템이 가용할 확률, 즉 순간 가용성(instantaneous availability)(A(t))은 수학식 2와 같다.
Figure 112009011582145-PAT00012
수학식 2에서,
Figure 112009011582145-PAT00013
는 주어진 시간 t에서 순간 기대 리워드율을 의미하고,
Figure 112009011582145-PAT00014
는 상태 i에서의 리워드율을 의미한다. 또한, S는 상태를 의미하고, U는 업 스테이트를 의미한다.
또한, 정상 상태의 확률 벡터
Figure 112009011582145-PAT00015
는 수학식 3에 의해 구할 수 있다.
Figure 112009011582145-PAT00016
수학식 3에서
Figure 112009011582145-PAT00017
이므로, 수학식 3은 수학식 4와 같이 고쳐쓸 수 있고, 정상 상태의 가용성은 수학식 5에 의해 획득할 수 있다.
Figure 112009011582145-PAT00018
Figure 112009011582145-PAT00019
수학식 5에서,
Figure 112009011582145-PAT00020
는 정상 상태에서 기대 리워드율을 의미하고,
Figure 112009011582145-PAT00021
는 상태 i에서의 리워드율을 의미한다.
도 4는 본 발명의 일 실시예에 따른 소프트웨어 검증 방법을 나타내는 흐름도이고, 도 5는 도 4에 도시된 계층형 큐잉 페트리 넷 모델링 과정을 보다 상세하게 도시한 흐름도이다.
도 4 및 도 5를 참조하면, 먼저 가용성을 검증하고자 하는 시스템을 계층형 큐잉 페트리 넷으로 모델링한다(단계 410). 여기서, 시스템은 소프트웨어 및 소프트웨어가 실행되는 하드웨어를 모두 포함하는 개념이다.
계층형 큐잉 페트리 넷(HQPN)은 하드웨어 관점에서 모델링 강점을 가진 큐잉 네트워크(Queuing Network)와 소프트웨어 관점에서 강점을 가진 페트리 넷(Petri Nets)을 결합한 큐잉 페트리 넷에 계층적 모델 기법을 적용한 것으로 복잡한 시스템 구조를 용이하게 모델링 할 수 있도록 서브넷 플레이스에 큐잉 페트리 넷을 내재할 수 있게 하여 상태 공간 폭발 문제를 완화시키는 장점이 있다.
시스템을 계층형 큐잉 페트리 넷으로 모델링하기 위해서는 먼저 시스템의 컴포넌트(components) 및 리소스(resource)를 모델링한다(단계 411).
구체적으로, 시스템의 하드웨어 및 소프트웨어 자원들을 계층형 큐잉 페트리 넷으로 표현하기 위해 시스템의 컴포넌트 및 자원들을 플레이스(place)와 토큰(token)으로 구분한다. 이를 위해 시스템의 자원들을 능동적 자원(active resource)과 수동적 자원(passive resource)으로 구분하고 능동적 자원은 큐잉 플레이스(queuing place)로 표현하고 수동적 자원은 정규 플레이스(ordinary place) 내의 토큰들로 표시한다. 여기서, 능동적 자원에는 서버의 CPU 또는 데이터베이스 디스크(database disk) 등과 같은 하드웨어가 포함될 수 있고, 수동적 자원에는 스레드(threads), 프로세스(process), 데이터베이스 커넥션(database connection) 등이 포함될 수 있다.
여기서, 정규 플레이스는 일반적인 플레이스를 의미하고, 큐잉 플레이스는 정규 플레이스에 토큰을 저장하기 위한 큐가 포함된 플레이스를 의미한다.
다음으로, 워크로드(workload, 작업부하)들의 기본적인 컴포넌트들을 토큰으로 모델링하고, 각각의 워크로드 클래스를 구분하기 위해 각각의 토큰에 서로 다른 식별정보를 부여한다(단계 413).
그리고, 플레이스들 사이에 트랜지션을 배치하여 표시함으로써 시스템 컴포넌트들간의 트랜잭션(transaction)을 모델링한다. 또한, 트랜잭션 각각의 프로세싱 단계인 서브 트랜잭션(subtransation)을 토큰으로 나타낸다(단계 415). 여기서, 트랜잭션의 토큰은 대문자로 표시하고, 서브 트랜잭션의 토큰은 소문자로 표시할 수 있다.
마지막으로, 정규 플레이스에 포함된 토큰 수나 큐잉 플레이스의 큐에서 토큰의 서비스 시간 또는 트랜지션의 파이어링 가중치(firing weight) 또는 파이어링 딜레이(firing delay) 등의 파라미터 값을 결정한다(단계 417). 여기서, 상기 파이어링 가중치는 소정의 플레이스에서 토큰의 서비스 가중치를 의미하고, 파이어링 딜레이는 소정의 플레이스에 토큰이 생성된 후부터 생성된 토큰이 서비스 될 때까지의 지연시간을 의미한다.
단계 411 내지 단계 417의 수행을 통해 시스템이 계층형 큐잉 페트리 넷으로 모델링 되면, 모델링된 계층형 큐잉 페트리 넷에 비가용적인 상태를 의미하는 토큰의 유출을 적용하여 모델링된 계층형 큐잉 페트리 넷을 검증 관점(aspect)에 적합하도록 변경한다. 또한, 토큰이 유출이 적용됨에 따라 트랜지션의 가중치 값이 달라지기 때문에 파라미터 값을 조정한다. 예를 들어, 각 트랜지션에서 파이어링 모드와 토큰 유출에 따른 파이어링 가중치를 조정할 수 있다.
이후, 모델링된 계층형 큐잉 페트리 넷을 마코프 체인으로 변환한다(단계 420).
구체적으로 계층형 큐잉 페트리 넷을 마코프 체인으로 나타내기 위해서는 마킹 공간(state space) M과 생성자 행렬(generator matrix) Q에 대한 정의가 필요하다. 여기서, 마킹 공간 M은 플레이스들이 가지고 있는 토큰의 수를 의미하며 상태 공간 S와 동일한다. 생성자 행렬 Q는 소정의 상태가 다른 상태로 전이될 때의 전이율을 행렬로 표현한 것이다.
M0를 초기 상태에서의 마킹 공간이라고 정의하면, 계층형 큐잉 페트리 넷의 초기 상태에서 토큰과 플레이스의 상태로 마킹 공간 M0를 결정할 수 있다. 또한, 초기 생성자 행렬 Q0 역시 계층형 큐잉 페트리 넷을 통해 행렬 값을 획득할 수 있다. 즉, 초기의 계층형 큐잉 페트리 넷에서 상태의 수를 n 이라 하면 초기 생성자 행렬 Q0는 총 nㅧ n의 공간을 가지는 행렬로 정의된다. 여기서, 자기 자신의 상태로 전이되는 행렬값(즉, 상태 전이가 발생하지 않는 행렬값)은 도 3에 도시된 바와 같이 그 상태에서 제공되는 모든 전이율을 합한 값의 음의 값을 가지게 된다.
상태 전이가 일어나는 경우 초기 생성자 행렬 Q0는 트랜지션의 종류에 따라 달라진다. 예를 들어, 전이되는 플레이스들 간의 트랜지션이 이미디에이트 트랜지션(immediate transition)인 경우에는 파이어링 가중치를 통해 행렬을 구하고, 트랜지션이 타임드 트랜지션(timed transition)인 경우에는 플레이스에 토큰이 들어 오는 입력 대기율(input latency)을 통해 행렬을 구한다. 여기서, 이미디에이트 트랜지션은 소정의 플레이스에 토큰이 생성되는 즉시 서비스(firing)되는 것을 의미하고, 타임드 트랜지션은 플레이스에 토큰이 생성된 후 일정 시간 대기 후에 서비스되는 것을 의미한다.
상기한 바와 같이 초기 상태의 마킹 공간 M0 및 초기 생성자 행렬 Q0을 이용하여 마킹 공간 M과 생성자 행렬 Q를 획득할 수 있고, 획득한 마킹 공간 M 및 생성자 행렬 Q를 통해 계층형 큐잉 페트리 넷을 마코프 체인으로 변환할 수 있다.
상기와 같이 변환된 마코프 체인을 가용성 관점에서 수학적으로 검증하기 위해서 마코프 체인의 업 스테이트와 다운 스테이트에 리워드율을 부과하여 마코프 체인을 마코프 리워드 모델로 변환한다(단계 430). 즉, 마코프 체인의 업 스테이트는 리워드율 1을 적용하고, 다운 스테이트는 리워드율 0을 적용한다.
다음으로, 마코프 리워드 모델에 대해 가용성을 수학적으로 검증한다(단계 440). 여기서, 가용성은 상기 수학식 2 또는 수학식 5를 통해 획득할 수 있다.
도 6은 본 발명의 일 실시예에 따른 소프트웨어 검증 방법을 적용하기 위해 계층형 큐잉 페트리 넷으로 모델링된 화상 회의 시스템을 나타내고, 도 7은 화상 회의 시스템의 사양을 나타낸다. 여기서, 상기 화상 회의 시스템의 목표 가용성은 90%로 가정한다.
도 6 및 도 7을 참조하면, 화상 회의 시스템은 로드 밸런서(load balancer)(L) 1개와, 비디오 회의 서버(video conference server)(A1, A2 및 A3) 3개 및 기타 장치들(예를 들면, 게이트웨이 G, 클라이언트 C, W)를 포함하고, 일반 채팅과 화상 채팅 및 채팅 도중 파일 송수신 기능을 제공하고, 회의실 생성 및 참가 기능을 제공한다.
화상 회의 시스템의 계층형 큐잉 페트리 넷에서 로드 밸런서와 비디오 회의 서버는 큐잉 페트리 넷이 내재된 서브넷 플레이스로 표시된다. 즉, 로드 밸런서와 비디오 회의 서버는 각각 하나의 정규 플레이스와 큐잉 플레이스로 구성된다.
또한, 상기한 화상 회의 시스템의 기능들 중 식별이 가능한 일반 채팅은 토큰 C로, 화상 채팅은 토큰 V로, 파일 송수신은 토큰 D로 표시하였고, 상기 각 토큰의 소문자 c, v 및 d는 각각 대문자로 표시된 토큰 C, V 및 D의 서브 트랜잭션으로 표시하였다.
도 8은 도 6에 도시된 화상 회의 시스템에 대한 계층형 큐잉 페트리 넷 모델에서 가용성 분석을 위해 설정된 가용적인 상태 및 보장 확률을 나타낸다.
화상 회의 시스템의 가용성 분석을 위해서는 가용적인 상태와 비가용적인 상태를 구분할 필요가 있고, 화상 회의 시스템에서 비가용적인 상태는 클라이언트가 비정상적인 종료를 했을 경우 또는 채팅 메시지의 손실이나 파일 송수신시 에러가 발생한 경우를 포함시킬 수 있다.
또한, 화상 회의 시스템이 가용적인 상태를 유지하기 위해서는 상기한 바와 같은 비가용적인 문제들이 발생하지 않기 위한 가용 상태에 대한 일정 수준의 확률 을 보장해야 한다. 상기 확률은 하드웨어 및 소프트웨어 장치가 가져야 하는 최소한의 요구사항을 기반으로 설정될 수 있고, 도 8은 본 발명의 일 실시예에 따른 소프트웨어 검증 방법에서 화상 회의 시스템의 가용성 분석을 위해 가용적인 상태 및 각 상태의 보장 확률에 대한 설정값을 나타낸다.
계층형 큐잉 페트리 넷에서 비가용적인 상태는 토큰의 유실을 의미한다. 종래의 계층형 큐잉 페트리 넷은 토큰의 유실을 고려하지 않기 때문에 직접적으로 가용성 검증에 이용할 수 없다. 따라서, 계층형 큐잉 페트리 넷에 관점 지향 페트리 넷(AOPN: Aspect Oriented Petri Nets)의 개념을 도입할 필요가 있다.
구체적으로, 관점 지향 페트리 넷은 토큰 삽입(token injection)을 고려하고 있고, 본 발명의 일 실시예에 따른 소프트웨어 검증 방법에서는 시스템의 가용성 모델링을 위해 필요한 토큰 유출(token leak)이라는 모델링 방법을 이용한다.
토큰 유출은 시스템이 비가용적인 상태가 되어 토큰이 유출되는 상태를 표현하는 것으로 유출된 토큰들이 모이는 플레이스와 토큰이 유출될 가능성이 있는 플레이스를 연결함으로써 토큰이 유출되어 시스템이 비가용적인 상태가 되는 것을 표현한다.
도 9는 도 6에 도시된 화상 회의 시스템의 계층형 큐잉 페트리 넷 모델에 토큰 유출을 적용한 모델을 나타낸 것으로, 도 6에 도시된 계층형 큐잉 페트리 넷의 구성요소와 동일한 기능을 수행하는 구성 요소들에 대해서는 도 6과 동일한 부호로 표기하였다. 또한, 도 10은 도 9에 도시된 계층형 큐잉 페트리 넷 모델에 대한 가중치 조정을 나타낸 것이다.
도 9를 참조하면, 플레이스 P1은 로드 밸런서에서 유출된 토큰들의 목적 플레이스를 의미하고, 플레이스 P2는 비디오 회의 서버에서 유출된 토큰들의 목적 플레이스를 의미하며, 플레이스 P3는 인터넷 환경에서 유출된 토큰들의 목적 플레이스를 의미한다.
도 9에 도시된 계층형 큐잉 페트리 넷을 마코프 체인을 거쳐 마코프 리워드 모델로 변경하기 위해서는 시스템의 가용 상태에 따라 리워드율을 부과하여야 하고, 도 9에 도시된 계층형 큐잉 페트리 넷에서는 P1, P2 및 P3로 전이된 상태들은 토큰 유출이 발생되었음을 의미하므로 비가용적 상태인 다운 스테이트로 간주하여 P1, P2 및 P3에 각각 리워드율 0을 부과하고, 그 밖의 비가용 상태가 아닌 상태들은 모두 가용적 상태인 업 스테이트로 간주하여 리워드율 1을 부과한다.
또한, 토큰이 유출됨에 따라 트랜지션의 가중치 값이 달라지기 때문에 도 8에 도시된 가용적 상태의 보장 확률에 기초하여 각 트랜지션에서 파이어링 모드와 토큰 유출에 따른 가중치의 조정이 필요하다. 도 10은 도 9의 트랜지션 t1에서의 토큰 유출에 따른 가중치 조정을 나타낸다.
도 11은 도 9에 도시된 계층형 큐잉 페트리 넷에 기초하여 생성된 마코프 리워드 모델의 일부를 나타낸다.
도 11에서 cx는 예측 가능한 장애가 발생할 확률을 의미한다.
도 11에 도시된 바와 같이 비가용적인 상태에는 리워드율 0이 할당되고, 가용적인 상태에는 리워드율 1이 할당된다. 상기와 같은 각 상태에 할당된 리워드율 및 수학식 5를 이용하여 화상 회의 시스템에 대한 가용성을 수학적으로 검증할 수 있다.
즉, 수학식 5를 이용하여 계산된 값이 도 8에 도시된 보장확률 이하인 경우에는 가용성을 위배하는 상태이며, 상기 계산된 값이 상기 보장확률 이상인 경우에는 가용성을 만족하는 상태로 판단할 수 있다.
도 12는 도 9에 계층형 큐잉 페트리 넷으로 표시된 화상 회의 시스템의 가용성 분석 결과를 나타낸다.
도 12에 도시된 바와 같이, 가용성을 위배하는 상태들이 전체 상태들의 8.1%를 차지하였고, 가용성을 만족하는 상태는 91.9%를 차지하였다. 즉, 상기 화상 회의 시스템의 가용성은 91.9%로 요구 가용성인 90%를 만족한다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
도 1은 마코프 체인의 가용성 모델을 나타낸 것이다.
도 2는 마코프 체인의 각 상태에 부과되는 리워드율을 나타낸 것이다.
도 3은 도 1에 도시된 마코프 체인의 상태를 무한소 행렬 Q로 나타낸 것이다.
도 4는 본 발명의 일 실시예에 따른 소프트웨어 검증 방법을 나타내는 흐름도이다.
도 5는 도 4에 도시된 계층형 큐잉 페트리 넷 모델링 과정을 보다 상세하게 도시한 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 소프트웨어 검증 방법을 적용하기 위해 계층형 큐잉 페트리 넷으로 모델링된 화상 회의 시스템을 나타낸다.
도 7은 도 6에 도시된 화상 회의 시스템의 사양을 나타낸다.
도 8은 도 6에 도시된 화상 회의 시스템에 대한 계층형 큐잉 페트리 넷 모델에서 가용성 분석을 위해 설정된 가용적인 상태 및 보장 확률을 나타낸다.
도 9는 도 6에 도시된 화상 회의 시스템의 계층형 큐잉 페트리 넷 모델에 토큰 유출을 적용한 모델을 나타낸 것이다.
도 10은 도 9에 도시된 계층형 큐잉 페트리 넷 모델에 대한 가중치 조정을 나타낸 것이다.
도 11은 도 9에 도시된 계층형 큐잉 페트리 넷에 기초하여 생성된 마코프 리워드 모델의 일부를 나타낸다.
도 12는 계층형 큐잉 페트리 넷으로 표시된 화상 회의 시스템의 가용성 분석 결과를 나타낸다.

Claims (13)

  1. 하드웨어 및 소프트웨어로 구성된 시스템을 계층형 큐잉 페트리 넷으로 모델링 하는 단계;
    상기 모델링된 계층형 큐잉 페트리 넷을 마코프 체인으로 변환하는 단계;
    상기 변환된 마코프 체인에 리워드율을 적용하여 마코프 리워드 모델로 변환하는 단계; 및
    상기 마코프 리워드 모델에 기초하여 상기 소프트웨어의 가용성을 계산하는 단계를 포함하는 소프트웨어의 검증 방법.
  2. 제1항에 있어서, 상기 하드웨어 및 소프트웨어로 구성된 시스템을 계층형 큐잉 페트리 넷으로 모델링 하는 단계는,
    상기 시스템의 컴포넌트 및/또는 리소스를 모델링하는 단계;
    작업부하의 컴포넌트를 모델링하는 단계;
    상기 시스템 컴포넌트 상호간의 트랜잭션(transaction) 및/또는 상기 트랜잭션의 프로세싱을 모델링하는 단계; 및
    모델 파라미터를 결정하는 단계를 포함하는 것을 특징으로 하는 소프트웨어의 검증 방법.
  3. 제2항에 있어서, 상기 시스템의 컴포넌트 및/또는 리소스를 모델링하는 단계 는,
    상기 시스템의 자원들을 능동적인 자원과 수동적인 자원으로 구분하고 상기 능동적인 자원은 플레이스(place)로 표현하고, 상기 수동적인 자원은 토큰(token)들로 표시하는 것을 특징으로 하는 소프트웨어의 검증 방법.
  4. 제3항에 있어서, 상기 작업부하의 컴포넌트를 모델링하는 단계는,
    상기 작업부하의 컴포넌트들을 토큰으로 모델링한 후, 각 작업부하의 클래스를 구분하기 위해 상기 모델링된 토큰에 서로 다른 식별정보를 부여하는 것을 특징으로 하는 소프트웨어의 검증 방법.
  5. 제3항에 있어서, 상기 시스템 컴포넌트 상호간의 트랜잭션(transaction) 및/또는 상기 트랜잭션의 프로세싱을 모델링하는 단계는,
    상기 플레이스들 사이에 트랜지션(transition)을 배치하여 표시하는 것을 특징으로 하는 소프트웨어의 검증 방법.
  6. 제5항에 있어서, 상기 모델 파라미터를 결정하는 단계는,
    상기 플레이스에 포함된 토큰의 수, 토큰의 서비스 시간, 트랜지션의 파이어링 가중치, 파이어링 딜레이 값 중 적어도 하나의 파라미터 값을 결정하는 것을 특징으로 하는 소프트웨어의 검증 방법.
  7. 제1항에 있어서, 상기 하드웨어 및 소프트웨어로 구성된 시스템을 계층형 큐잉 페트리 넷으로 모델링 하는 단계는,
    상기 시스템이 계층형 큐잉 페트리 넷으로 모델링된 후, 상기 모델링된 계층형 큐잉 페트리 넷에 검증의 관점인 비가용적인 상태를 의미하는 토큰의 유출을 적용하는 단계를 포함하는 것을 특징으로 하는 소프트웨어의 검증 방법.
  8. 제7항에 있어서, 상기 하드웨어 및 소프트웨어로 구성된 시스템을 계층형 큐잉 페트리 넷으로 모델링 하는 단계는,
    상기 토큰의 유출이 적용됨에 상응하여 파라미터를 조정하는 단계를 더 포함하는 것을 특징으로 하는 소프트웨어 검증 방법.
  9. 제1항에 있어서, 상기 모델링된 계층형 큐잉 페트리 넷을 마코프 체인으로 변환하는 단계는,
    상기 계층형 큐잉 페트리 넷으로부터 상기 시스템의 초기상태에서 마킹 공간 및 초기 생성자 행렬을 구하는 단계;
    상태 전이에 기초하여 상기 초기 생성자 행렬을 생성자 행렬로 변경하는 단계; 및
    상기 마킹 공간 및 상기 생성자 행렬에 기초하여 마코프 체인을 생성하는 단계를 포함하는 소프트웨어의 검증 방법.
  10. 제9항에 있어서, 상기 상태 전이에 기초하여 상기 초기 생성자 행렬을 생성자 행렬로 변경하는 단계는,
    상기 상태 전이가 이미디에이트 트랜지션(immediate transition)인 경우에는 파이어링 가중치를 통해 상기 생성자 행렬을 구하고, 상기 상태 전이가 타임드 트랜지션(timed transition)인 경우에는 입력 대기율(input latency)을 통해 상기 생성자 행렬을 구하는 것을 특징으로 하는 소프트웨어의 검증 방법.
  11. 제1항에 있어서, 상기 변환된 마코프 체인에 리워드율을 적용하여 마코프 리워드 모델로 변환하는 단계는,
    상기 마코프 체인의 상태를 가용적 상태와 비가용적 상태로 구분하는 단계;
    상기 가용적 상태에는 리워드율 1을 부과하고, 상기 비가용적 상태에는 리워드율 0을 부과하는 단계를 포함하는 소프트웨어의 검증 방법.
  12. 제1항에 있어서, 상기 마코프 리워드 모델에 기초하여 상기 소프트웨어의 가용성을 계산하는 단계는,
    수학식
    Figure 112009011582145-PAT00022
    (여기서,
    Figure 112009011582145-PAT00023
    는 정상상태에서 기대 리워드율을 의미하고,
    Figure 112009011582145-PAT00024
    는 상태 i에서의 리워드율을 의미하며,
    Figure 112009011582145-PAT00025
    는 정상상태에서 상태 i의 확률 벡터를 의미한다. 또한, S는 상태를 의미하고, U는 가용성 상태인 업 스테이 트를 의미한다)을 통해 계산되는 것을 특징으로 하는 소프트웨어의 검증 방법.
  13. 소프트웨어의 검증을 수행하는 디지털 처리 장치에 의해 실행될 수 있는 명령어의 프로그램이 유형적으로 구현되어 있으며, 상기 디지털 처리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록매체에 있어서,
    시스템이 모델링된 계층형 큐잉 페트리 넷을 마코프 체인으로 변환하는 단계;
    상기 변환된 마코프 체인에 리워드율을 적용하여 마코프 리워드 모델로 변환하는 단계; 및
    상기 마코프 리워드 모델에 기초하여 소프트웨어의 가용성을 계산하는 단계를 수행하는 프로그램을 기록한 기록매체.
KR1020090015590A 2009-02-25 2009-02-25 소프트웨어의 검증 방법 및 소프트웨어 검증 방법이 기록된기록 매체 KR101038849B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090015590A KR101038849B1 (ko) 2009-02-25 2009-02-25 소프트웨어의 검증 방법 및 소프트웨어 검증 방법이 기록된기록 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090015590A KR101038849B1 (ko) 2009-02-25 2009-02-25 소프트웨어의 검증 방법 및 소프트웨어 검증 방법이 기록된기록 매체

Publications (2)

Publication Number Publication Date
KR20100096621A true KR20100096621A (ko) 2010-09-02
KR101038849B1 KR101038849B1 (ko) 2011-06-02

Family

ID=43004127

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090015590A KR101038849B1 (ko) 2009-02-25 2009-02-25 소프트웨어의 검증 방법 및 소프트웨어 검증 방법이 기록된기록 매체

Country Status (1)

Country Link
KR (1) KR101038849B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102050230B1 (ko) * 2018-06-29 2019-11-29 순천향대학교 산학협력단 페트리 넷 모델링을 이용한 산업용 사물 인터넷 시스템에 구비되는 드론의 검증방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102050230B1 (ko) * 2018-06-29 2019-11-29 순천향대학교 산학협력단 페트리 넷 모델링을 이용한 산업용 사물 인터넷 시스템에 구비되는 드론의 검증방법

Also Published As

Publication number Publication date
KR101038849B1 (ko) 2011-06-02

Similar Documents

Publication Publication Date Title
Becker et al. Model-based performance prediction with the palladio component model
US8140319B2 (en) Method and system for predicting system performance and capacity using software module performance statistics
US20120060167A1 (en) Method and system of simulating a data center
US20090006071A1 (en) Methods for Definition and Scalable Execution of Performance Models for Distributed Applications
Liu et al. Model-based sensitivity analysis of IaaS cloud availability
Petriu Software Model‐based Performance Analysis
Torres et al. A hierarchical approach for availability and performance analysis of private cloud storage services
US11663505B2 (en) Estimating performance and required resources from shift-left analysis
Albonico et al. Controlling the elasticity of web applications on cloud computing
Rak Performance modeling using queueing petri nets
JP6901423B2 (ja) 情報処理装置、情報処理端末、及びプログラム
Willnecker et al. Optimization of deployment topologies for distributed enterprise applications
KR101038849B1 (ko) 소프트웨어의 검증 방법 및 소프트웨어 검증 방법이 기록된기록 매체
Jagannatha et al. Algorithm approach: Modelling and performance analysis of software system
ChauPattnaik et al. Component based reliability prediction
Michelsen et al. What is service virtualization?
US11163592B2 (en) Generation of benchmarks of applications based on performance traces
Ren et al. Workload-aware harmonic partitioned scheduling for fixed-priority probabilistic real-time tasks on multiprocessors
US9769025B2 (en) Predicting the performance of a multi-stage communications network under load from multiple communicating servers
JPWO2017188037A1 (ja) 検証システム、検証方法および検証プログラム
Albanese et al. Maxim-gprt: A simulator of local schedulers, negotiations, and communication for multi-agent systems in general-purpose and real-time scenarios
Brunnert et al. Evaluating the Prediction Accuracy of Generated Performance Models in Up-and Downscaling Scenarios.
Agos Jawaddi et al. Insights into cloud autoscaling: a unique perspective through MDP and DTMC formal models
Begin et al. Predicting the system performance by combining calibrated performance models of its components: a preliminary study
Zheng et al. Probability distribution-based qos analysis for web service composition

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
FPAY Annual fee payment

Payment date: 20140402

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170123

Year of fee payment: 6

R401 Registration of restoration
FPAY Annual fee payment

Payment date: 20170627

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee