OOAD-13
state machine 다이어그램, package 다이어그램, component 다이어그램, deployment 다이어그램
State machine Diagrm
-
객체의 상태를 모델링
-
유한한 상태 머신 형식을 사용하여 이벤트 동작을 모델링하는 데 사용하는 개념 집합을 정의(먼말이야)
-
다음을 포함하여 소프트웨어, 하드웨어 시스템의 특별한 틈새에 사용됨
- 실시간/미션 크리티컬 시스템. 예) 심장 모니터링 소프트웨어
- 동작이 상태 측면에서 정의되는 전용 장치. 예) 스마트폰, ATM
-
이벤트와 상태 확인
-
상태에 따른 행위(액션, 액티비티) 확인
state (상태)
- 객체 생명 주기 동안에 가질 수 있는 특정 조건(상황)이며, 해당 기간 동안 객체는 조건이 만족된 상태에서 활동을 수행하고 다른 사건도 기다림
- 상태의 구성
- 명칭(name) : 특정 상태와 다른 상태를 구분 짓는 문자열로 구성된 이름
- 진입/탈출 동작(entry/exit action) : 상태에 진입/탈출 때 수행되는 동작
- 내부 전이(internal Transition) : 상태 변경 없는 상태 내의 전이
- 초기 상태와 종료 상태
transition (전이)
특정 객체가 현 상태에서 어떤 동작을 수행한 후 지정된 조건이 만족되어 다음 상태로 들어가는 두 상태간의 관계
상태 내부 표현
상태 내부 묘사가 필요한 경우
- entry/exit action, internal transition, activity, deferred event
- 진입 동작, 내부 전이, 활동, 지연 사건
composite state with two states
하위(substate) 상태
하위 상태를 포함하는 복합(composite) 상태를 표현할 수 있다.
이력(history) 상태
객체가 복합 상태를 떠날 때 활동한 마지막 하위 상태를 기억하고 있는 객체 모델을 만들 필요가 있을 때 사용함
동시(concurrent) 하위 상태
객체가 동일 상태에서 동시적으로 실행되는 하위 상태가 두 개 이상 나타낼 때 사용
+)
concurrent와 parallel의 차이?
병렬적 : 같은 오퍼레이션을 다른 데이터에서 연산 처리
동시(다발)적 : 완전히 다른 오퍼레이션을 다른 환경에서 연산할 수 있도록 함
Package Diagram
그룹핑 구성체
- 상위 레벨 단위로 그룹핑
- 관련된 클래스들을 구조화
- 패키지는 다른 패키지 포함 가능
패키지 다이어그램의 용도
- 대형 시스템의 주요 요소들 간의 의존성 관계를 표현
- 어플리케이션의 의존성 제어
이름 영역
모든 클래스는 포함된 패키지 내에서 유일한 이름 보유
완전한 경로명
Component Diagram
시스템의 부품을 관리하고 재사용
- 컴포넌트는 캡슐화되고, 재사용가능하고, 교체가능한 S/W의 모듈화
Interface of Component Diagram
인터페이스 표기법 : Ball and Socket
- 구성 요소의 제공된 인터페이스는 구성요소를 실현하는 인터페이스다.
- 구성 요소의 제공된 인터페이스는 구성요소가 작동하는 데 필요한 인터페이스다.
인터페이스를 표기하는 3가지 방법
- ball and socket symbols
- stereotype notation
- text listings
인터페이스 표기법 : 스테레오타입
인터페이스의 오퍼레이션을 나타낼 때 사용
컴포넌트 다이어그램 예시
컴포넌트 구현 클래스
• 종속 관계를 통해 구현 클래스를 외부에 표시
Black-Box and White-Box Component Views
블랙 박스 뷰
- 구성 요소의 내부 구현에 대해 아무것도 지정하지 않는다.
화이트 박스 뷰
- 구성 요소가 기능을 수행하는 데 도움이 되는 클래스, 인터페이스, 기타 구성 요소를 보여줌
Deployment Diagram
- 시스템의 물리적인 배치 레이아웃 표현
- 어떤 소프트웨어 부분이 어떤 하드웨어 상에서 실행되는가를 표현
- 배포 패키지는 시스템의 실행 아키텍처와 시스템 요소에 대한 소프트웨어 아티팩트 할당을 정의하는 데 사용할 수 있는 구성을 지정함
- 통신 경로 : 어떻게 노드 간에 통신이 이루어지는 가를 표현. 사용되는 프로토콜 정보를 라벨로 표시
deployment diagram의 예
왼쪽은 유형 수준 사양이고 오른쪽은 인스턴스 수준 사양입니다.
노드와 커넥션
노드의 구성
- 노드를 패키지로 그룹화하여 구성
- 노드간의 의존, 일반화, 연관 관계로 노드들의 관계 표현
연결
- 노드간의 관계를 표현하며 연관 관계가 일반적임
- 연관 관계는 이더넷, 시리얼 라인, 쉐어드 버스 등과 같은 노드간의 물리적 연결을 표현
노드
소프트웨어를 호스트할 수 있는 것
디바이스 노드와 실행 환경 노드로 구분
- 디바이스 노드 : 하드웨어, 컴퓨터 또는 시스템에 연결된 하드웨어의 간단한 부분
- 실행 환경 노드 : 다른 소프트웨어를 호스트하거나 포함하는 소프트웨어, 운영체제 또는 컨테이너 프로세스
deployment되는 산출물 포함
컴포넌트와 배치
배치 다이어그램은 시스템과 관련된 하트웨어, 소프트웨어 제품 등 전반적인 요소들에 대한 내용을 표현