The concept of scenario has been widely used in recent years as object-oriented paradigm has gained more popularity among practioners. Although the scenarios cannot be fully exploited due to the existence of many variants, major object-oriented development process adopt it for managing the entire software development activities.
There are two major drawbacks in applying the scenario-based modeling technique. One is the difference of abstraction levels between scenarios. This causes from the facts that the requirements of complex systems are elicited from various sources such as users and documents. The other drawback is the difficulty in eliciting the whole requirements of the system at once such that the same problem occurs in requirements elicitation of a system in general. Specially, scenarios from the requirements of a large and complex system can be partially redundant or missed because of eliciting the requirements from users of various domains. Therefore, it is difficult to collect the full set of scenarios for a system at the initial phase of requirements engineering. This can cause the changes of scenarios such as appearing new scenarios and modifying scenarios partially during scenario modeling phase.
This thesis proposes a high-level Petri net based on object-oriented concepts, called HOONet(Hierarchical Object-Oriented Petri Net) in order to solve the above mentioned drawbacks. We formally describe the definition of our HOONet and suggest the representation schemes of object-oriented concepts by the HOONet when modeling a system. Additionally, we explain the recipes for coordinating the different abstraction levels between scenarios and reflecting the requirements changes into scenario-based modeling. Coordination of the different abstraction levels, first, is solved by incorporating abstraction mechanism with a general high-level Petri net such as colored Petri nets. When a system is represented by its functional hierarchy, function units in high-level of the hierarchy can be represented by abstract components. This abstract components are refined into their detailed behaviors in low-level. The abstract components are expressed with abstract places and abstract transitions in HOONet models. Abstract places or abstract transitions will be refined into a HOONet model representing detailed behaviors in low-level. One of major characteristics of our proposed abstraction and refinement mechanisms is capable of abstracting together system states(data) and state transitions(control) while in existing approaches, the abstraction concept is supported only in data abstraction such as ADT(abstract data type).
Second is to minimize the changes of drawn models caused from the incomplete requirements in scenario modeling. In order to minimize the changes and their ripple effects, we adopt the object concept. Also, the abstraction and inheritance concepts help us reflect the changes easily. Reflecting the changes into HOONet models can be considered in two categories: Covering the changes within a HOONet model and Covering the changes between HOONet models. Handling the changes within a HOONet model - or an actor - is, that the changed portion, first, is defined as an abstract component, and then is represented with a HOONet model in detail. Otherwise an inherited model is declared for the changed portion, and it is substituted by overriding methods. In case of the handling the changes between HOONet models, the changed portion is redefined as a method call, and then the method allows to interacts with a new model which represents the change portion.
The effectiveness of our approach is demonstrated with an example system by showing the possible benefit gains in the performance of reachability analysis and applicability of our approach to resolving the different abstract levels of scenarios and to performing incremental modeling and analysis with incomplete requirements.
최근 시나리오의 개념은 객체지향 패러다임이 시스템 개발자들에게 일반화되면서 더욱 널리 사용되고 있다. 그러나 시나리오가 다양한 연구에 의해 서로 다른 모습으로 활용되어 왔기 때문에 시나리오 본래의 충분한 의미를 활용할 수 없었지만, 객체지향 개발 프로세스를 통한 소프트웨어 개발 활동은 시나리오 개념을 적용하여 시스템을 개발하기에 적합하다고 볼 수 있다.
시나리오를 기반으로 하는 시스템 모델링 기법에 있어서 여러가지 문제들이 발생되고 있지만 기존에 고려되지 않았던 두가지 문제점이 있다. 첫번째는 시나리오들간에 존재하는 추상화 수준의 차이이다. 이는 목잡한 시스템의 요구사항이 매우 다양한 사용자와 문서로 부터 추출되어지는 것이 기인 한다. 또 다른 문제점은 일반적인 시스템의 요구사항 추출과정에서 발생하는 문제로써, 한번에 전체 시스템에 대한 요구사항을 추출하기 어렵다는 것이다. 특히 복잡하고 대규모의 시스템에 대한 요구사항으로 부터 추출된 시나리오는 부분적으로 중복되거나 누락될 수 있기 때문에 요구사항 분석의 초기 단계에서 시스템에 대한 시나리오의 전체 집합을 수집하는 것은 어려운 일이다. 이러한 문제는 시나리오 모델링 과정에서 새로운 시나리오가 발견되거나 추출한 시나리오가 수정되는 변경을 유발한다.
본 논문에서는 객체지향 개념을 기반으로 하는 고 수준의 페트리 넷으로써, HOONet (Hierarchical Object-Oriented Petri Net)을 제안하였는데,이는 앞서 언급한 시나리오 모델링에서의 문제들을 해결하기 위해 고안되었다. HOONet은 객체지향 개념에 대한 표현 방법을 제공하며, 시나리오 모델링 과정에서 발생하는 서로 다른 추상화 수준을 조정하고, 요구사항의 변경으로 인한 모델의 변경을 핸들링하는 방법을 제공한다. 먼저, 서로 다른 추상화 수준의 차이는 기존의 Colored Petri Nets과 같은 고 수준의 페트리 넷에 추상화 메카니즘을 추가함으로써 가능하도록 하였다. 한 시스템의 기능에 대한 표현이 계층적으로 나타났을 때, 계층 구조의 상위 수준에 존재하는 단위 기능은 추상화된 구성 요소로 표현될 것이며, 하위 수준에서는 상세화 되어 표현될 것이다. HOONet에서 추상화는 추상화 플레이스(abstract place)와 추상화 트랜지션(abstract transition)에 의해 표현된다. 본 논문에서 제안하는 추상화 및 상세화 메카니즘의 특징은 기존의 추상화에 대한 연구가 추상화 데이터 타입(abstract data type, ADT)을 통한 데이터 추상화만을 지원한 반면 본 연구에서는 시스템에 대한 상태(데이터)와 상태 전이(제어)를 함께 추상화할 수 있는 방법을 제공한다는 것이다.
시나리오 모델링에서 요구사항의 변경으로 인한 모델의 수정을 최소화하는 것은 중요하다. 본 논문에서는 변경 및 변경 효과를 최소화하기 위하여 객체(object) 개념을 도입하였으며, 또한 객체지향 개념에서의 추상화 및 상속성 개념을 통하여 이러한 변경의 반영을 쉽게 할 수 있도록 하였다. HOONet 모델로의 변경 사항에 대한 반영은 변경이 객체내에 국한되는 경우와 객체간의 상호작용(interaction)에 걸쳐 발생하는 경우로 분류하여 핸들링되었는데, 전자의 경우는 변경 부분을 추상화 및 상세화 메카니즘을 통해 모델에 반영하였고, 상속성을 통한 변경 사항의 오버 라이딩(overriding)을 통해 모델에 반영하였다. 후자의 경우는 변경 부분을 하나의 HOONet 모델로 표현하고 이를 호출하는 방법으로 모델에 반영하였다.
본 논문에서의 제안하는 연구 접근 방법의 효율성은 예제 시스템을 통해 설명되었으며, 예제를 통해 도달성 분석(reachability analysis)에서의 성능 향상을 보였다. 또한 시나리오에 존재하는 서로 다른 추상화 수준을 해결하고, 불충분한 시나리오 집합으로부터 시스템을 점진적으로 모델링하고 분석할 수 있는 적용성을 보였다.