일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 가상메모리
- 애자일
- 객체지향설계
- css
- 컴파일러
- 파싱테이블
- 벡터
- C언어
- 데이터분석
- 운영체제
- 836
- 언어모델
- 스케줄러
- Agile
- React
- 자연어처리
- 프로세스
- 오픈소스웹소프트웨어
- 컴파일
- NLP
- 웹소프트웨어
- 소프트웨어공학
- OS
- 랩실일기
- 데이터베이스
- DB
- 정보검색
- 파싱
- Linear Algebra
- 클래스
- Today
- Total
observe_db
[객체지향설계] 7. Behavioral Modeling 본문
개발 과정-분석
요구사항->비즈니스 프로세스 이해->domain 모델링->행위적 모델링
기능모델: 어떻게 비즈니스 시스템이 동작하고 시스템이 무엇을 하는지. 시스템의 외부 행위 관점을 서술
구조모델: 비즈니스 시스템에 의해 생성되고 사용되는 객체. 정보 시스템의 정적 관점. 클래스 레벨 관점
행위모델: 내부 동작이나 정보시스템의 직접적인 관점 서술. 객체 레벨 관점
행위 모델의 종류
- 비즈니스 프로세스의 잠재된 세부사항을 나타내는 모델(sequence diagram, communicatoin diagram)
- 잠재된 데이터의 변화를 나타내는 모델(behavior state machine)
행위 모델링의 목적
-구조모델링의 usecase들끼리 객체가 어떻게 협업하는지.
-비즈니스 프로세스의 내부적 관점
-시스템의 다양한 프로세스의 효과를 보여줌.
시스템의 직접적인 관점
-Activity Diagram
-Interaction Diagram(Sequence, Communication, Interaction overview)
-State Machine(Behavior, Protocol)
-Other(usecase)
구성요소
-Object: 클래스의 예시
-Attributes: 객체의 정보/데이터
-Operation: 객체의 동작, 메시지를 주고받음
-Message: 객체가 그 동작을 실행하게끔 객체에게 보내는 정보. 하나의 객체에서 다른 객체로 보내진다.
Sequence Diagram(순서 다이어그램)
Dynamic 모델
설명(use-case의 객체/객체간의 상호작용)
정의된 상호작용 안에서 객체들이 어떻게 메시지를 보내는지.
SD의 2가지 축(time line과 객체 집합)
2개의 형태(instance-세부 시나리오/generic-시나리오의 가능한 모든 대안)
Diagram Syntax
Actor: 시스템 외부의. 이익을 얻는 사람이나 시스템. 다이어그램 꼭대기 위치.
Object: 메시지를 주고받음. 다이어그램 꼭대기 위치.
Lifeline: 시퀸스 동안 객체의 생애를 나타냄.
Execution Occurrence: lifeline에 존재하는 좁은 사각형. 객체가 메시지를 주거나 받은 때를 나타냄.
Message: 객체 하나에서 다른것으로의 정보 순환. (가는건 solid, 오는건 dashed)
Object Destruction: 객체 lifeline의 마지막에 위치하여 존재하지 않음을 보여줌.
Frame: 다이어그램의 맥락을 묶음.
Building
- 다이어그램 맥락(context: 시스템, usecase이나 그 시나리오, 클래스의 동작) 결정
- 참여하는 객체 식별
- 각 객체의 lifeline 설정
- 메시지를 다이어그램의 위에서 아래로 정렬
- 각 객체의 execution occurrence를 추가
- 제약조건과 단편 정의
- 다이어그램 검증
Communication Diagrams
다른 관계들(generalizaion, association, aggregation)대신 메시지 전달 관계를 보여줌
객체간의 메시지 흐름을 강조. 시간이나 공각적인것 대신
Sequence Diagram과의 차이
- sequence는 시간이나 순서를 중요시. 다중 상호작용을 보인다
- 관계의 맥락을 보인다. 협업하는 객체들간의 제어 흐름 이해.
Elements
Acotr: benefit을 얻는 시스템 외부의 사람 또는 시스템.
Object: 메시지를 주고받는데에 참여함. 다이어그램의 꼭대기에 위치.
Association: actors와/나 객체의 관계를 보여줌. 메시지가 이것을 통해 전달.
Message: 한 객체에서 다른 객체로 정보 전달(convey)
Frame: 다이어그램의 맥락 지시
Building
- Context(맥락) 설정
- 어떤 객체/액터나 관계가 협업에 참여하는 객체 사이에 있는지 식별(객체는 class의 인스턴스. CRUDE
- 다이어그램 나열(객체와 관계를 같이 위치시킴. 교차하는 관계 최소화)
- 메시지 추가
- 다이어그램 검증
Interaction Oerview Diagram
고수준에서 상호작용의 주요 흐름을 리뷰할 기회
다양한 activity diagram(그대로 가져옴)
관계가 존재하는 한 공간에만 관점을 맞춤.
노드들이 상호작용하는 제어 흐름의 overview
State Machine
생애주기동안 클래스의 객체가 가능한 모든 상태(state)를 보여줌.
행위(behavioral)/Protocol로 구분
Behavioral State Machine(행위 상태 머신)
클래스의 생애주기의 세부 정보를 기술하는 직접적 모델
모든 객체를 사용하지 않음.
State(상태): 특정 시점에서 다른 객체와 가지는 속성이나 관계의 값
Events: 확실한 한 시점에서 일어나는 것. 객체의 상태를 변화시킴.
Transitions(전이): 한 상태에서 다른 상태로 변화하는 것.(조건 만족시)
Guard-Condition: 속성값에 표현되는 Boolean 표현. 전이를 유발
Actions: 최소단위, 분해되지 않고 중단되지 않는 프로세스
Activities: 최소 단위가 아니고, 분해될 수 있으며, 중단될 수 있는 프로세스
Diagram Syntax
State: 이름은 객체 상태를 나타냄.
Initial: 객체가 존재하기 시작하는 시점을 나타냄.
Final: activity의 완료를 나타냄.
Event: 상태의 변화를 촉발시키는 요인. 전이의 label로 사용됨
Transition: 처음 상태에서 다음 상태를 가리킴.
Frame: BSM의 맥락을 묶음.
객체 A는 B의 상태이다.(나는 심심하다. 차가 질주한다. 그는 자는 중이다. 등등)
일반적으로 하나의 블럭으로 표시하지만,
그 상태에서 어떤 이름의 동작을 하는지. 그 동작은 어떤 Action인지 표시할 수도 있다.
Event[guard-condition]/Action-expression
(셋다 생략하는 것도 가능)
Protocol State Machine
클래스의 어떤 동작이 상태에서 호출되는지 명시
그 동작을 보이지 않은 객체의 명시된 event의 과정 보여줌.
복잡한 protocol을 보여줌.\클래스의 interface가 보여질 때.
가이드라인
- Compex한 객체만 BSM을 만들어라.
- 좌측 상단에 initial state를 배치
- 우즉 하단에 final state를 배치
- 간단하게, 그러나 의미있는 이름으로 상태를 명명하라
- Question blck hole과 miracle states
- guard condition은 상호 배타적이게
- 전이는 메시지와 동작과 관계되게.
Building
- 문맥 설정.(class, subsystem. entire system)
- 객체의 initial, final, stable state 식별
- order 결정.
- event, action, guard condition 식별
- diagram 입증.
'학교 공부 > 객체지향설계(3-1)' 카테고리의 다른 글
[객체지향설계] 9. Moving on To Design (0) | 2023.05.19 |
---|---|
[객체지향설계] 8. Verifying Models (0) | 2023.05.19 |
[객체지향설계] 6. Structure Modeling (0) | 2023.04.10 |
[객체지향설계] 5. Use Case Diagram (0) | 2023.03.30 |
[객체지향설계] 4. Activity Diagram (0) | 2023.03.29 |