Download presentation
Presentation is loading. Please wait.
Published byChristine Bendtsen Modified 5년 전
1
상태 다이어그램 상태 다이어그램의 UML 표기법 간단한 상태 다이어그램의 예 상태 다이어그램의 슈퍼 상태와 서브 상태
상태 다이어그램 예제
2
상태 다이어그램의 개념을 이해한다. 상태의 확장개념을 학습한다. 상태 다이어그램 모델링 과정을 학습한다. 실습을 통한 상태 다이어그램을 학습한다.
3
기본 표기법 상태 [그림 8-1] 객체가 존재할 수 있는 조건 중의 하나 둥근 모서리를 가진 사각형으로 표시
반응적인 성격을 가지는 세탁기 객체의 행동을 상태 다이어그램으로 표현한 것 [그림 8-1] 세탁기 객체가 가질 수 있는 상태들 상태 객체가 존재할 수 있는 조건 중의 하나 둥근 모서리를 가진 사각형으로 표시 둥근 모서리를 가진 사각형의 안쪽 상단에 상태의 이름을 기술 [그림 8-1] 세탁기 객체가 가질 수 있는 4가지 상태를 표현 [그림 8-2] 상태들 사이의 행동관계를 나타내는 상태 다이어그램으로 표현 [그림 8-2] 세탁기 객체의 행동을 표현한 상태 다이어그램
4
상태다이어그램도 활동 다이어그램과 마찬가지로 시작과 종료 상태가 있으며,
상태에서 중요한 것 객체가 가질 수 있는 모든 가능한 경우가 상태로 파악되어야 한다 객체는 파악된 상태들 이외의 상태를 가질 수 없다. 객체는 특정 순간에는 오직 한 상태로만 존재할 수 있다. 상태다이어그램도 활동 다이어그램과 마찬가지로 시작과 종료 상태가 있으며, 시작 상태와 종료 상태의 표기는 활동 다이어그램에서처럼 동일하게 사용한다.
5
이벤트와 전이 [그림 8-3] 객체에 외부로부터 자극이 전달된 경우 전이(Transition) 이벤트
이벤트에 의해 전이되는 두 상태를 표현 객체에 외부로부터 자극이 전달된 경우 이 자극에 의해서 객체가 다른 상태로 변경 전이(Transition) 객체의 상태가 다른 상태로 변경되는 것 이벤트 객체의 전이를 유발하는 자극 상태 사이의 전이 : 실선으로 표시 ( UML 상태 다이어그램 ) 상태의 전이를 유발하는 이벤트는 전이 위에 이벤트 이름이 표시 [그림 8-3] time over 이벤트에 의해‘세탁 중’상태에서‘정지’상태로의 전이
6
[그림 8-2]의 세탁기 객체에 대한 이벤트와 전이
세탁기는 시작 상태에서 activate 이벤트를 받으면 가동할 수 있는‘정지’상태가 된다. ‘정지’상태에서는 언제든지 shut down 이벤트를 받으면 세탁기 객체는‘종료’ 상태로 간다. 즉 세탁기는 동작하지 않는다. 세탁기가‘정지’상태에 있을 때, 즉 정지한 상태에서 wash 이벤트를 받으면 ‘세탁 중’ 상태가 된다. 일정한 시간이 되면, 즉 time over 이벤트를 수신하면 세탁기는 정지한다. ‘정지’상태일 때, 즉 정지한 상태에서 dry 이벤트를 받으면‘건조 중’상태가 된다. 마찬가지로 세탁기가‘정지’상태에 있을 때, 즉 정지한 상태에서 spin 이벤트를 받으면 ‘건조 중’상태가 된다.
7
확장된 표기법 상태 아이콘의 확장 상태와 이벤트 표기법을 확장하여 좀 더 상세한 표현이 가능
상태 아이콘은 클래스 아이콘처럼 두 영역으로 나누어 정보를 넣을 수 있다. 가장 위에는 상태 이름 ( 필수 ), 가장 아래 부분에는 활동 ( 선택적 ) [그림 8-4] 상태 아이콘의 확장된 표현
8
예제 : 프린터 프린터는 컴퓨터로부터 프린트할 데이터를 메모리에 저장 프린트가 끝나면 메모리에 저장된 데이터를 삭제 상태 변수
메모리에 저장·삭제하는 save_momory_data, delete_momory_data 프린트할 종이가 있는지를 체크하는 check_paper 프린트할 페이지를 알아내는 amount_pages(페이지 양) [그림 8-5] 상태변수와 활동으로 표현된 프린터의 상태 다이어그램
9
이벤트와 전이의 확장 전이를 나타내는 선 위에 정보를 추가
전이가 일어나는 원인을 제공하는 이벤트와 실제로 수행되어 상태 변화를 일으키는 동작으로 표현 이벤트와 동작은 전이선에 가깝게 붙여 써주며, 슬래시(/)를 사용하여 사건과 동작을 구분 어떤 사건의 경우에는 연관된 동작 없이 전이를 일으킬 수 있으며, 활동을 종료했기 때문에 일어나는 전이도 있다.
10
예제 : 에어컨 시스템 [그림 8-6] 다이어그램의 부족한 점 [그림 8-7] : [그림 8-6] 보완 상태의 종류
초기화(Initializing) 작동 중(Working) 끝 마무리(Finishing) 에어컨을 켜면, 현재 온도를 확인하고 설정된 온도보다 높으면 에어컨이 작동 에어컨을 켜는 일(turn air conditioner on)은‘초기화’상태로 전이되도록 하는 이벤트 온도 확인(temperature confirmation)은 이 전이가 수행되는 도중에 일어나는 동작 [그림 8-6] 다이어그램의 부족한 점 에어컨 시스템은‘작동 중’상태에서 다른 상태로 전이 [그림 8-7] : [그림 8-6] 보완 [그림 8-7] 전이 조건이 추가된 에어컨 시스템의 상태 다이어그램 전이가 일어나는 원인 제공 이벤트 /실제로 수행되어 상태변화를 일으키는 동작 [그림 8-6] 에어컨 시스템의 상태 다이어그램
11
온라인 진료예약 시스템 상태를 기술하기 위한 상태 다이어그램
첫 번째 단계 : 환자의 초기 상태 확인 기술에서“우선 병원을 방문하여 한 번이라도 진료를 받은 환자 이면‘관심’ 상태 가 된다. 초기 상태 표현 : 시작 상태, 전이 화살표, 첫 번째 상태 요소 필요 초기 상태에서 사건 환자가 한 번이라도 방문해야 한다. [그림 8-8] 환자의 초기 상태: 관심 상태 [그림 8-9] 사건과 조건의 표현 아픔/방문
12
‘관심’ 상태를 다른 상태로 바꾸는 이벤트 확인
기술서 : “지속적인 통근 진료를 요하는 환자의 경우 ‘진료중’상태 로 한다” 상태 변화 모델링 : 전이 화살표, 이벤트, 객체가 전이할 새로운 상태 필요 ‘진료중’ 상태를 다른 상태로 바꾸는 이벤트 확인 기술서 : “‘진료중’에서 의사의 결정에 따라 입원이 결정되면 ‘입원상태’ 가 된다” ‘진료중’에서 ‘입원상태’로 전이 이벤트 : “입원결정” 지속적 통근 치료 [그림 8-10] ‘관심 ’상태에서 ‘진료중’ 상태로의 전이 입원결정 [그림 8-11] ‘진료중’ 에서 ‘입원상태’ 로의 전이
13
관심상태에서나 진료 중 상태에서 진료 종료 상태로 전이.
입원상태를 다른 상태로 바꾸는 이벤트 확인. 기술서 : “입원상태에서 퇴원이 결정되면‘진료중’이나‘진료종료’상태 가 된다” ‘입원상태’에서‘진료중’상태나‘진료종료’로 전이 관심상태에서나 진료 중 상태에서 진료 종료 상태로 전이. 기술서 : “‘관심’이나‘진료중’상태에서 의사의 결정에 따라 진료가 종료되면 ‘진료종료’로 한다” [그림 8-12] ‘입원상태’에서 ‘진료종료’로의 전이 [그림 8-13] ‘관심’과‘진료중’상태에서 ‘진료종료’상태로 전이
14
물품 객체의 상태 다이어그램 초기 상태 ‘매입 처리 중’ (매입주문을 기록하는 단계)
[그림 8-14] 물품 객체의 초기 생성 모델링
15
[그림 8-15] 물품 접수 이벤트(itemReceive)에 의해 초기 상태의 ‘매입 처리 중’에서 ‘재고반영’으로의 상태전이 receive(item,count): 매입주문 객체의 접수물품과 수량 list(location) : 물품의 재고 위치를 수정하는 동작 [그림 8-16] 판매 이벤트(sell)와 setOrder(Order) 동작 sell 이벤트 : 물품 객체의 상태를‘판매’상태로 전이 setOrder(Order) 동작 : 주문 객체에 재고를 확보한 물품의 정보 기록 → itemReceive 이벤트는 물품 재고 위치를 수정하는 list(location) 동작을 발생 [그림 8-15] 재고목록과 매입주문 내용 수정 → sell 이벤트는 물품의 정보를 기록하는 setOrder(Order) 동작을 발생 [그림 8-16] 물품 판매와 재고를 확보한 물품정보 기록
16
[그림 8-17] ‘판매’에서‘포장’으로 상태전이를 일으키는 물품 포장 이벤트(packing_item)를 모델링한 것 packing_item 이벤트 : 운송정보를 기록하는 동작인 setCarryInfo(carryInfo) 동작을 일으킨다. [그림 8-18] ‘포장’에서‘운송’으로의 상태전이를 표현 상태전이를 일으키는 이벤트 : carry 이벤트 관련된 동작 : 운송자와 발송 일자를 기록하는 setCarry(date, carrier) 동작을 일으킨다. [그림 8-17] 운송을 위한 물품 포장 [그림 8-18] 물품 발송
17
[그림 8-19] 물품 객체에 대해 완성된 상태 다이어그램 반송 이벤트(return)가 다이어그램에 추가 return 이벤트
‘운송’상태에서‘재고 반영’상태로의 전이를 발생시키고 물품의 위치를 기록하는 동작이 실행 [그림 8- 15]의 물품 접수 이벤트(itemReceive) 재고 반영 상태로 들어가는 이벤트로서 return 이벤트와 동일한 동작을 실행 ‘재고 반영’상태로 들어가는 모든 이 벤트가 동일한 동작을 실행하므로 이벤트에 대한 동작을 하나의 들어가는 동작으로 나타낼 수 있다. [그림 8-19] 물품 객체에 대한 완성된 상태 다이어그램
18
UML 상태 다이어그램 객체의 동작과 상태를 높고 낮은 2가지 관점에서 볼 수 있는 중첩된 상태의 개념 지원 슈퍼 상태 서브 상태를 포함하는 확장된 상태 둥근 사각형의 상태 아이콘이 확장되어 슈퍼 상태 내에 자세한 정보를 하나 이상의 상태 다이어그램으로 표현 복잡한 상황을 높은 관점에서 표현 서브 상태 자세한 정보를 나타내는 하나 이상의 상태 다이어그램 상태 안에서 세부 항목을 낮은 관점으로 본다. [그림 8-20] 슈퍼 상태와 서브 상태
19
슈퍼 상태와 서브 상태의 예 예 : 자동 온도 조절기 객체
자동 온도 조절기를 좀 더 단순화시켜 온도계의 역할 중에서 영하 쪽만을 생각해보자. 자동 온도 조절기가‘냉각’상태에 들어갈 때, ‘냉각’상태가 동시에 일어나는 2가지의 서브 상태로 나뉘는 것을 나타낸다.(2가지 일이 동시에 실행) 냉각 프로세스의 진행을 모니터링하고 더불어 문제점을 감지하기 위해 냉각장치를 모니터링 하는 것. 2개의 서브 상태는‘냉각’상태에 들어가자마자 시작 [그림 8-21] ‘냉각상태 모니터’와‘냉각장치 모니터’, 2개의 서브 상태를 가진 슈퍼 상태‘냉각’
20
제어의 분리와 동시성 제어의 분리 [그림 8-22] 오직 하나의 전이에 기초하여 다수의 작업을 진행하는 것을 의미
오직 하나의 전이에 기초하여 다수의 작업을 진행하는 것을 의미 활동 다이어그램에서 배운 개념과 동일 제어의 분리가 일어나면 하나의 전이가 여러 상태 또는 서브 상태를 가리키는 다수의 화살표로 나뉜다. 분리는 활동 다이어그램에서 사용한 동기화 막대에 의해 수행 [그림 8-22] 이벤트 when temperature receive(temperature) [temperature>76F]/air conditioner.turnOn( )에 의해‘냉각’상태로 전이된 자동 온도 조절기 객체가‘냉각상태 모니터’와‘냉각장치 모니터’의 2가지 서브 상태로 나뉘어 동시에 수행 제어의 합병 또한 동기화 막대를 가리키는 다수의 전이 화살표로 모델링 에어컨을 켜는 일 [그림 8-22] 제어의 분리
21
동시성 한 상태 내에서 여러 개의 상태 다이어그램을 허용하기 때문에 UML은 어떤 상태 내에서 동시성(Concurrency) 지원 동시성의 모델링 슈퍼 상태 내부를 필요한 만큼 나누고, 서브 상태 다이어그램을 그 분리된 영역에 나누어 그리는 것 [그림 8-23] ‘냉각’슈퍼 상태에서 다수의 전이에 따라‘온도 모니터’상태로 되돌아가는 모습을 모델링한 것. [그림 8-23] 하나의 슈퍼 상태로부터 다수의 전이
22
항공기 예약 시스템 상태 시작점에서 노선 상태까지 여행 장소 선택 노선 상태에서 항공사 상태까지 항공사 선택
노선, 항공사, 결제 3가지이다. 시작점에서 노선 상태까지 여행 장소 선택 노선 상태에서 항공사 상태까지 항공사 선택 항공사 상태에서 결제까지 계산의 이벤트가 전이 [그림 8-24] 항공기 예약 상태 다이어그램
23
주문관리 시스템 상태 시작점에서 회원가입 상태까지 정보입력,
회원가입, 고객확인, 상품선택, 결제, 운송 시작점에서 회원가입 상태까지 정보입력, 회원가입 상태에서 회원확인까지 혹은 시작점에서 회원확인상태까지 로그인, 회원확인 상태에서 상품선택 상태까지 상품조회, 상품선택 상태에서 결제 상태까지 계산, 결제에서 운송 상태까지 운반의 이벤트가 전이 [그림 8-25] 주문관리 상태 다이어그램
24
도서예약 관리 시스템 상태 시작점에서 예약 상태까지의 책 예약 시작점에서 반납 상태까지 책 반납
예약, 반납, 대출, 취소 시작점에서 예약 상태까지의 책 예약 시작점에서 반납 상태까지 책 반납 반납 상태에서 예약 상태까지 예약된 책 여부 확인 예약 상태에서 대출 상태까지 책 대출 예약에서 취소까지 조건, 기한 초과의 이벤트 전이 [그림 8-26] 도서예약 상태 다이어그램
Similar presentations