2.log

06 | Sequence Diagram, State Diagram 본문

소프트웨어공학

06 | Sequence Diagram, State Diagram

2.log 2023. 4. 26. 00:01
728x90
반응형

* KOWC에 등록된 동국대학교 최은만 교수님의 강의내용을 공부목적으로 정리한 글임을 밝힙니다.
| 출처 : http://www.kocw.net/home/search/kemView.do?kemId=331697&ar=relateCourse 

 

 

Sequence Diagram 


Use Case에 나타난 객체들 간의 상호작용을 표현한 것 (다양한 View의 시나리오 표현 가능, Use Case 보조)

어떤 메시지가 언제 보내지는지 수행순서를 시간 흐름에 따라 나타내어 시스템의 동적 측면 보여줌 (Dynamic View)

 

 

 

 

구성요소


 

출처 : Sequence Diagram (from uml-diagrams.org)

 

Object

{"originWidth":1164,"originHeight":468,"style":"alignCenter","width":677,"height":272,"caption":"object

 

 

Life Line

모델링되는 인스턴스 나타냄

박스와 점선으로 이루어지며, 아래로 내려갈수록 시간 경과 

Life Line

 

 

Activation (box)

Life Line의 인스턴스가 다른 인스턴스와 상호작용 하며 활성화되어있는 상태 나타냄

 

[Activation box & 객체의 라이프타임 표시]             출처 : 최은만, CSE 4039 소프트웨어 공학, chrome-extension://oemmndcbldboiebfnladdacbdfmadadm/http://kocw-n.xcache.kinxcdn.com/data/document/2014/dongguk/choieunman/07.pdf, 14p,

 

 

Message

인스턴스 간 주고받는 데이터 나타냄

호출형식 : method name(parameter)

일반적으로 request - response 로 구성

화살표 헤드모양으로 *Sync(full arrow) / Async (empty arrow) 표시

점선 화살표는 리턴 표시

 

 

 

* Synchronous vs Asynchronous (동기와 비동기)

| Synchromous(동기)

요청에 대한 응답(리턴)을 받아야 다음 요청 가능

응답받기 전까지 아무것도 못하고 대기해야 함

설계 비교적 간단

 

| Asynchronous(비동기)

요청에 대한 응답받기 전에 다른 요청 보낼 수 있음

따라서 응답 기다릴 동안 다른 작업 수행 가능

동기에 비해 설계 복잡하나 자원 효율적 사용 가능

 

 

* 재귀 (Recusive)

인스턴스 간 상호작용이 아닌 한 인스턴스 내에서 처리할 경우 self message 사용해 본인의 Life Line으로 재귀 표시 가능

 

 

 

 

 

흐름제어 


 

[guard & fragment 예시]  출처 : 최은만, CSE 4039 소프트웨어 공학, chrome-extension://oemmndcbldboiebfnladdacbdfmadadm/http://kocw-n.xcache.kinxcdn.com/data/document/2014/dongguk/choieunman/07.pdf, 15p

 

Guard

단일 메시지에 대한 조건 명시

메시지 text 앞쪽에 [조건] 표기

ex) [ value > $10000] : 주문액 $10000 초과하면 특별구매자로 대우

 

 

Sequence Fragments

guard와 달리 범위로 조건 명시

guard 와 함께 사용 가능 (fragment 내에서 로직 작성)

 

| alterntives (alt)

if / else 구문 나타냄

 

| options (opt)

if 구문 나타냄

 

| loops

for / while 등의 loop 구문 나타냄

 

 

 

 

State Diagram


시스템에서 중요 역할 담당하는 클래스의 상태변화 기술 (단일 객체가 활성시간 동안 한 행동 기술)

클래스 다이어그램안의 놓치고 넘어간 Operation 찾아내는 역할 하기도 함 (Class Diagram 보조)

 

출처 : https://www.diagrams.net/blog/uml-state-diagrams

 

구성요소


초기 의사 상태 

 

전이 (transition)

한 상태에서 다른 상태로 이동

표기 : trigger [guard] / activity

 

Trigger

상태 변화를 유발하는 이벤트

 

Guard

전이가 이루어지는 boolean 조건

 

Activity

전이 동안 수행되는 행동

 

 

 

 

Action vs Activity


Action : 이벤트와 관련, 즉시 일어남

Activity : 상태와 관련, 시간이 걸림

 

 

 

** 상태 다이어그램 작성법 및 예시 참고 :  https://sabarada.tistory.com/192

 

 

 

 

 

 

 

 

[출처]

https://sabarada.tistory.com/84

 

[UML] 시퀀스 다이어그램 이해하기

[UML] 클래스 다이어그램 이해하기 [UML] 시퀀스 다이어그램 이해하기 안녕하세요. 우리는 이전 포스팅에서 클래스 다이어그램에 대해서 이야기 해본적이 있습니다. 구조 다이어그램(Structural Diagra

sabarada.tistory.com

https://ocwokocw.tistory.com/67

 

UML - 상태 기계 다이어그램

- 이 글은 UML Distilled (마틴 파울러)책을 기반으로 작성하였습니다. - 상태 기계 다이어그램(State Machine Diagrams) 상태 기계 다이어그램은 시스템의 행동을 기술한다. 객체 지향 접근법에서 단일 객

ocwokocw.tistory.com

https://www.lucidchart.com/pages/uml-state-machine-diagram

 

State Machine Diagram Tutorial

Create a state machine diagram in UML using Lucidchart - includes a vast UML shape library and specialized state machine diagram templates. Sign up free today!

www.lucidchart.com

 

728x90
반응형

'소프트웨어공학' 카테고리의 다른 글

08 | 소프트웨어 아키텍처  (0) 2023.04.30
07 | 설계 원리와 구조적 설계  (0) 2023.04.28
05 | 객체지향의 이해와 UML Class Diagram  (0) 2023.04.24
04 | Use Case 와 diagram  (0) 2023.04.22
03 | 구조적 분석  (0) 2023.04.20
Comments