용's
[Chap 5] Behavioral Modeling 본문
5.1 Behavioral Modeling
- 행동적 모델은 소프트웨어가 외부 이벤트들이나 자극에 어떻게 반응을 할 것인지를 가리킨다.
- 이 모델을 위해 분석가들은 다음과 같은 것들을 수행하여야 한다.
.모든 use case들을 평가하여 시스템 내에서 일어나는 상호작용들의 순서들을 완벽히 알고 있어야 함
.외부 사건들을 확인하고 이 사건들이 특정 오브젝트와 어떻게 연관이 있는지 이해함
.각 use case에 대한 시퀀스(sequence)를 만듦
.시스템을 위한 상태 다이어그램(state diagram)을 만듦
.behavioral model을 리뷰하여 정확성과 일관성을 확인
5.2 State Representation
- Behavioral Modeling에서 대표적인 diagram이 state diagram(상태 다이어그램) 이다.
- 상태 다이어그램을 이용하면 시스템이 어떻게 돌아가는지 한눈에 파악가능하게 해줌.
- 시스템에서의 상태들(states)들은 다음과 같은 것들이 있다.
.State: 시스템의 현제 상태에 대한 특징들의 집합(set),상태 다이어그램에서는 사각형으로 표시되고 초기 상태(initial state)와 최종 상태(final states)가 있음
.State Transition: 한 상태에서 다른 상태로의 이동을 말함
.Event: 시스템에 반응을 주는 것을 말함
.Action: 시스템이 반을을 하는 것을 말함
- 시스템의 여러 다른 상태(state)들의 목록을 만들고 시스템이 어떻게 한 상태에서 다른 상태로 전이되는지 확인하여 그 속에서 event와 action을 찾는다. (어떻게 시스템이 행동하고, 상태들이 어떻게 변화하는지 체크) 그리하여 State Transition Diagram(STD) 또는 Sequence Diagram(시퀀스 다이어그램)을 작성한다.
5.3 Petri Nets(페트리 네트)
- 페트리 네트는 시스템의 동작 과정을 보다 자세하게 분석하는 도구로 유용하다
- 비동기적(asynchronous)인 또는 동시적(concurrent)한 시스템을 분석할 때 아주 적절하다.
- 페트리 네트ㄴ 구조는 4개의 투플을 가진다.
.C=(P, T, I, O):
.P: Place, T: Transition, I: Input, O: Outputt
(검은 점은 Token)
- 페트리 네트의 특징
.Bipartite net: 두개의 그룹으로 나누지고 서로 연결(Connection)이 일어나는 형태
.토큰이 어디 있냐에 따라(place에 토큰이 몇개가 있는지에 따라) 상태를 나타냄
- Firing Rule(토큰이 어떻게 움질일 것인지에 대한 규칙
.Transition은 Place로 부터 한 개 또는 그 이상의 input과 output을 가진다.
.Transition에 대한 각각의 input Place안에 적어도 하나의 토큰이 존재하면 Transition은 ENABLE 됨.
.ENABLE된 transition은 fire 할 수 있다.
여기서 fire는 input place에서 하나의 토큰이 제거되고 output place로 토큰이 넘어감을 의미함.
- Place가 안전(safe)하다는 것은 place안에 토큰들이 개수가 0, 1이여야 한다.
- Petri net이 안전(safe)하기 위해서는 각가의 place들 모두가 safe해야 한다.
- Petri nets는 자원 할당 시스템의 모델로 사용될 수 있다(request, allocation, release...)
- Petri nets의 보존(conservation)적인 특징은 자원들이 생성되지도 파괴되지도 않음을 보여줄 수 있다.
.즉, 토큰들의 수가 항상 유지되는 것을 보여줌
- Petri nets에서 transition들이 fire될 수 없는 상태가 존재한다.
.이를 deadlock이라고 함
- Petri nets의 한계점
.토큰에 특색이 없고 너무 단순해서 복잡한 시스템을 명시하기에 어려움이 있음
token에 특성(색)을 부여하여 약간 해결 가능(Colored Petri Net)
.일반적으로 비결정적인 특징에 의해 selection부분을 명시하기에 불가능하다.
if then else 표현이 필요함. 이에 여러개의 net으로 분리하여 고려할 수도 있음
.Real-Time 시스템에서 타이밍 문제도 있음.
이 한계점에 시간의 특성들을 부여한 timed petri net도 존재함.
5.4 Statecharts: A Visual Formalism
- 반응 시스템(reactive system)의 behavioral modeling에 있어 유용하다.
.서로 반응 하는 시스템들을 모델링할 때 유용.
- STD에서 hierarchy와 concurrency, communication 등의 개념들이 더해져 확장된 것이다.
- Hierarchy(Depth)
.두 개 또는 이상의 상태들을 하나의 state로 합칠 수 있음(Or)
- Concurrency(Orthogonality)
.독립적으로 동시에 동작하는 두 개 또는 이상의 상태 및 콤포넌트들을 하나의 AND STATE로 묶을 수 있음.
- 위의 특징들을 잘 이용하여 Statechart를 그리게 되면 독립적으로 각 기능들을 그림으로써 더 간단히 그림을 그릴 수 있고 이해하기도 더 쉽다.
- State chart와 STD와의 차이점은 다음 그림과 같다
5.5 Data Dictionary
- 또 다른 모델링 기법으로 Data Dictionary라는 것이 있다.
- 이는 모델들을 만들 때 사용되는 수 많은 데이터들을 사전처럼 만드는 것이다.
.소프트웨어에 의해 생성되고 사용되는 데이터 오브젝트들에 관한 description들을 포함한다.
'Computer Science > Software Engineering' 카테고리의 다른 글
[Chap 7] Design (0) | 2014.12.11 |
---|---|
[Chap 6] Object-Oriented Concepts (0) | 2014.12.05 |
[Chap 4] Requirements Engineering (0) | 2014.10.22 |
[Chap 3] Software Process (0) | 2014.10.21 |
[Chap 2] Software Quality (0) | 2014.10.19 |