행위 모델링
p2
역할, 스타일 가이드라인, 과정
sequence diagram
communication diagram
(behavioral) state machine
기능 모델 : 비즈니스 시스템이 어떻게 행동할 것인지, 시스템이 무엇을 해야하는 지 표현, 정보 시스템의 외부 행위 시각을 묘사
구조 모델 : 비지니스 시스템에 의해 만들어지고 사용되는 오브젝트 표현, 정보 시스템의 정적인 관점에서 묘사, 클래스 수준에 집중
행위 모델 : 정보 시스템의 내부 행위나 동적인 관점에서 묘사, 오브젝트 수준에 집중
행위 모델링
- 비즈니스 프로세스; 절차 -> sequence diagram, communication diagram
- 절차에서 사용되는 데이터가 어떻게 변해가는가 -> state machine
목적
- 구조 모델의 각 use case를 지지하기 위해 어떻게 오브젝트가 협력하는지 보여주기 위함
- 비즈니스 절차에서 내부 관점을 묘사
클래스 다이어그램에서 어떤 멤버변수, 멤버함수가 필요한지를 정의했지만 멤버 함 수에 대해서 어떤 함수가 호출될 것인지 그들 간에서 어떻게 동작할 것인가를 정의하기 위해 /
<시스템의 동적인 관점>
- 활동 다이어그램
- interaction d
- sequence d
- communication d
- interaction overview d
- state machine diagram
- (behavioral) state machine 멤버변수가 어떤 값을 가지면서 상태의 전환 표현
- protocol state machine 한 클래스 안의 메소드(연산)가 어떤 호출 순서대로 실행되어지는지.
어떤 상태와 조건 하에서 클래스의 연산이 호출되는지
- uc 다이어그램
<d 구성요소>
객체 : 클래스의 인스턴스
속성(attributes) : 객체와 관련된 데이터
operation : 객체의 행동, 메시지 주고받음
메시지 : 객체 사이의 function call, procedure call
<sequence d>
- 동적 모델
- 하나의 uc에서 참여하는 오브젝트 보여준다, 객체가 서로 어떻게 상호작용하는지 보여준다
- 정의된 상호작용에서 객체 사이에 주고받는 메시지를 보여준다.
- 수직 축 : 시간 라인, 수평 축 : 객체 집합
- instance form(특정한 시나리오), generic form(시나리오에서 모든 가능한 대안)
<ex>
objectName : className
: className
오브젝트가 1개
objectName : className
object 를 나타냄
- actor
- object
- lifeline (생명선)
- 실행 발생
- 메시지 : 보낼 때 solid arrow 돌아올때 dashed arrow, asynchronous msg 는 > synchronous msg는 ▶
- 객체 소멸 : x
- frame : interaction operator(이름) 등 포
● combined fragment
- alt
- loop(1,5)
- par
● state invariants : 걸쳐있는 object가 해당 멤버변수 갖고 그 값으로 되어있을 때의 제약사항 가짐
● recursion
● interaction occurrences : ref
관여되는 객체만 써야한다, 안에 combined fragment 올 수 ㅇ
sd 그리기
1. 시스템, uc, uc 시나리오, 클래스 메서드 결정
2. 참여하는 객체 확인
3. 생명선 설정
4. 메시지 레이아웃
5. 실행 발생 추가
6. 제약사항, fragments 정의
7. 검증
communication diagram
sd : 시간이나 순서가 중요, 여러 상호작용 fragments 보여줄 필요
cd : 상호작용의 맥락 보여줄 필요, 공동작업 객체에 대한 제어 흐름 이해. 순서보다는 객체사이의 메시지 흐름을 강조
actor, object, association, message, frame
message label은 sequence-number : [aGuardCondition] a Message
interaction overview diagram
상호작용에 대해 존재하는 옵션을 한 곳에 보여주는 것에 집중
노드가 상호작용하거나 상호작용 발생 위치에 대한 제어 흐름 개요
활동 다이어그램의 변형
state machine
- 한 생명주기 동안 클래스의 객체가 가질 수 있는 가능한 모든 상태를 보여준다.
- 모든 객체에 대해서 사용x 복잡한 객체 정의 시
- 동적 모델
state : 특정 시점에서 속성의 값, 다른 객체와의 관계
initial state
final state
events : 객체의 상태 변화를 일으킴; 메소드 호출
transitions : 한 상태에서 다른 상태로 객체의 움직임
frame
guard-condition : 속성값 포함하는 boolean 표현
actions : atomic, nondecomposable 과정. interrupted x ; 메소드 실
activities : nonatomic, decomposable 과정. interrupted o
객체 사이의 상호작용이 아니라, 한 객체가 어떻게 처음 만들어져서 사라질 때까지의 상태변화
한 객체가 상태변화를 겪고 있다 -> 멤버변수의 값이 바뀐다
usecase명세서 형용사로 되어있는 것이 상태가 될 수 있다
Event [guard-condition] / Action-expression 3가지
메시지 보내기 : dashed arrows로 state machine 연결
OR-substate / AND-substate
hierarchical modeling
history indicator : 상태 전이 직전을 기억하고 있다가 다시 그쪽으로 갈 떄?
클래스 다이어그램에서 어떤 subclass들은 상태일 수도 있다.
BSM을 복잡한 오브젝트에 대해서만 만든다
다이어그램의 왼쪽 위에 초기 상태, 오른쪽 아래에 final 상태
guard conditions은 상호 배제적이어야한다.
BSM 그리기
1. context(클래스) 설정
2. 오브젝트의 initial, final, stable 상태를 확인
3. 객체가 stable states를 어떤 순서로 통과할 것인지 결정
4. 전이와 관련된 event, action, guard conditions 확인
5. 검증
sd는 객체간의 메시지 흐름을 시간으로
cd는 객체간의 메시지 전달 복잡도
bsm 객체 하나의 상태변화
'전공 > 객체지향설계' 카테고리의 다른 글
13 Physical Architecture Design (0) | 2023.06.08 |
---|