Skip to main content

Integration and Analysis of Use Cases Using Modular Petri Nets in Requirements Engineering

· 4 min read
이우진
담당교수
차성덕
권용래

논문 정보

  • 제목: Integration and Analysis of Use Cases Using Modular Petri Nets in Requirements Engineering
  • 저자: Woo Jin Lee, Sung Deok Cha, Yong Rae Kwon (KAIST)
  • 학회/저널: IEEE Transactions on Software Engineering, Vol. 24, No. 12
  • 발행일: 1998-12-01
  • DOI: (문서 내 명시되지 않음)
  • 주요 연구 내용: 자연어로 작성된 비정형 유스케이스를 정형 모델인 CMPN(Constraints-based Modular Petri Nets)으로 변환하는 체계적인 절차를 제시하고, 이를 통해 요구사항 단계에서 시스템의 결함을 조기에 발견하는 방법을 제안한다.
  • 주요 결과 및 결론: 통신 서비스(Basic Call Processing 및 Call Forwarding) 사례 연구를 통해 제안된 방법이 순환 호출 전달과 같은 교착 상태(Deadlock)나 서비스 간의 충돌(Feature Interaction)을 효과적으로 탐지함을 입증했다.
  • 기여점: 유스케이스의 직관성을 유지하면서도 정형 분석이 가능한 모델링 기법을 확립하였으며, 점진적인 요구사항 명세와 자동화된 검증 가이드라인을 제공한다.

요약

초록

요구사항 공학은 소프트웨어 품질에 결정적인 역할을 한다. 유스케이스 접근법은 산업계에서 널리 사용되는 요구사항 도출 기법이지만, 자연어로 작성되어 정형적인 문법과 의미론이 부족하다는 단점이 있다. 또한 유스케이스 간의 상호작용이 명시적으로 표현되지 않아 전체 시스템의 완전성과 일관성을 분석하기 어렵다. 본 논문에서는 이러한 비정형성을 해결하기 위해 제약 기반 모듈형 페트리 넷(CMPN) 접근 방식을 제안한다. 주요 기여로는 자연어 유스케이스를 CMPN 모델로 변환하는 체계적인 절차와 CMPN에서 불일치 및 불완전성을 찾아내는 가이드라인 개발이 있다.

서론

소프트웨어 시스템 구축에서 가장 어렵고 중요한 부분은 무엇을 만들지 결정하는 요구사항 공학이다. 요구사항 명세는 정확하고, 일관되며, 완전하고, 모호하지 않아야 한다. 유스케이스는 이해하기 쉽고 추적 가능하다는 장점이 있으나, 비공식적인 자연어 서술로 인해 모호성의 위험이 있고 자동화된 분석이 제한적이다. 특히 여러 유스케이스가 통합될 때 발생하는 의존성과 상호작용 문제를 체계적으로 분석할 방법이 부족하다. 본 연구는 유스케이스의 장점을 유지하면서 한계를 극복하기 위해 CMPN이라는 정형 표기법을 제안한다.

배경

기존의 페트리 넷(Petri Nets)이나 컬러 페트리 넷(CP-nets)은 모듈화 및 점진적 명세를 지원하는 언어 구조가 부족하여 유스케이스를 정형화하는 데 한계가 있다. 예를 들어, P/T 넷은 모든 유스케이스를 하나의 전역 모델로 결합해야 하므로 추적성이 떨어지고 변경에 민감하다. CP-nets의 모듈화 기능(Substitution transitions 등) 역시 유스케이스 간의 상태 공유나 동기화를 자연스럽게 표현하기에는 부족함이 있다. 따라서 유스케이스의 부분적(Partial)이고 점진적인 특성을 반영할 수 있는 새로운 확장이 필요하다.

모델 아키텍처 / 방법론

핵심 구조: CMPN (Constraints-based Modular Petri Nets)

CMPN은 제약 넷(Constraint Net)들의 집합으로 정의된다. 각 제약 넷은 개별 유스케이스를 모델링하며, 내부 구조는 P/T 넷과 동일하지만 외부 인터페이스를 통해 다른 넷과 상호작용한다.

  • 정의: MN={Cnii=1...n}M_{N}=\{C_{n_{i}}|i=1...n\}
  • 공유 메커니즘: 서로 다른 제약 넷에 있는 플레이스(Place)와 트랜지션(Transition)이 동일한 레이블(Label)을 가질 경우, 이들은 공유된 것으로 간주하여 동기화 및 상태 공유가 이루어진다.
  • 토글 플레이스(Toggle Place): 'busy'와 'not-busy'와 같이 상호 배타적인 상태 변수를 모델링하기 위해 사용되며, 한 곳에 토큰이 생성되면 반대편 토큰이 제거되는 구조를 가진다. Figure 7

변환 절차 (Conversion Procedure)

논문의 Figure 7은 자연어 유스케이스를 CMPN으로 변환하는 과정을 보여준다.

  1. Action-Condition 테이블 작성: 각 유스케이스에 대해 수행되는 액션과 조건을 테이블로 정리한다.
  2. 이벤트 이름 명확화: 서로 다른 유스케이스에서 사용된 용어를 통일하고 명확히 한다.
  3. 선/후 조건 식별: 각 액션의 전제 조건(Pre-conditions)과 결과 조건(Post-conditions)을 식별한다.
  4. CMPN 변환: 작성된 테이블을 바탕으로 각 유스케이스를 독립적인 제약 넷으로 변환하고, 공유되는 이벤트는 공유 트랜지션으로 정의한다.

분석 방법: 슬라이싱 (Slicing)

전체 시스템의 복잡도를 줄이고 효율적인 분석을 수행하기 위해 CMPN 슬라이스(Slice) 개념을 도입한다. 슬라이스는 플레이스 공유가 발생하지 않는 제한된 형태의 CMPN으로, S-invariants 개념을 활용하여 계산된다. 이를 통해 관심 있는 부분만 분리하여 분석할 수 있다.

실험 결과

Figure 5 Figure 9

적용 사례: 통신 서비스

기본 호 처리(Basic Call Processing, BCP)와 착신 전환(Call Forwarding, CF) 서비스를 대상으로 본론의 방법론을 적용하였다.

  • 모델링: Figure 5와 Figure 9는 BCP와 CF에 대한 CMPN 모델링 결과를 보여준다.
  • 상호작용 탐지: 개별적으로는 올바른 유스케이스들이 통합될 때 발생하는 문제를 탐지하였다. Figure 10

핵심 분석 결과

  1. 교착 상태(Deadlock): 순환 착신 전환(예: A가 B로, B가 다시 A로 착신 전환) 시나리오에서 시스템이 교착 상태에 빠짐을 정형 분석을 통해 발견하였다(Figure 10).
  2. 비결정성(Nondeterminism): BCP와 CF 서비스가 통합될 때, 특정 상황(예: 통화 중 착신)에서 시스템 동작의 비결정성이 발생함을 슬라이스 분석을 통해 식별하였다. 이는 CF 서비스 도입 시 BCP 유스케이스의 제약 조건(예: 착신 전환이 꺼져있을 때만 벨 울림)이 수정되어야 함을 의미한다.

결론

본 논문은 CMPN을 통해 유스케이스의 비정형성을 극복하고 요구사항의 일관성과 완전성을 분석하는 방법을 제시하였다. 이 접근법은 기존 P/T 넷이나 CP 넷의 한계를 넘어 모듈화와 점진적 명세를 가능하게 한다. 특히 통신 소프트웨어의 기능 상호작용(Feature Interaction) 문제와 같은 복잡한 오류를 설계 이전 단계인 요구사항 단계에서 자동화된 분석을 통해 발견할 수 있음을 입증하였다. 향후 연구로는 시간 제약 분석 및 불리언(Boolean) 타입 이외의 시스템 변수 지원 확장이 필요하다.