State Chart Diagram WHY DON’T WE BE a GREEN?
U INDEX of State Chart Diagram nified Modeling language WHY DON’T WE BE a GREEN? INDEX of State Chart Diagram nified Modeling language 1 State Cart Diagram 이란? 2 State Cart Diagram 표기법 3 State Cart Diagram 구조 예시(사용처) 4 주의 사항
1 U State Chart Diagram 이란? nified Modeling language -> 대상물을 이해하기 위한 중요한 ‘어떤 상황’ 말한다. 예) 휴대 전화 - 손에 들고 있다, 들고 있지 않고 있다. - 이벤트-간단히 말하면 ‘사건’이다 예) 휴대 전화 – 착신한다,버튼을 누른다,메시지를 수신한다. -> State Chart Diagram이란 ‘대상 안에 어떠한 상태가 있는지 찾아내어 각각의 상태에 대해 할 수 있는 것과 할 수 없는 것을 명확히 하고, 상태가 어떠한 이벤트에 의해 변화해 가는지’를 나타내는 것이다.
2 U State Cart Diagram 표기법 nified Modeling language 개시 상태 이력상태 평행상태 작업개시 상태 상태이동 가입[조건OK] 가입 완료 미가입 탈회[not대출중]/ 회원증반환 보류기한 끝 일반 회원 Entry/ 회원증발행 교직원 Entry/ 신회원증발행 대출의지 없음 가입[학생증 없음] H 보류기한 끝 종료상태 대출 회원 보류 Entry/ 신청서보관 미대출 대출중 Entry/ 대출회수기록 신분증확인 반환 회원 State Chart Diagram 액션 개시 상태 상태 이동의 시작 지점. 시작 시의 상태 이동은 시스템 부팅이나 오브젝트 생성을 나타냅니다. 개시 상태는 스테이트 차트 다이어 그램 안에서 반드시 1개는 있어야 합니다.
2 U State Cart Diagram 표기법 nified Modeling language 종료 상태 이력상태 평행상태 작업개시 상태 상태이동 가입[조건OK] 가입 완료 미가입 탈회[not대출중]/ 회원증반환 보류기한 끝 일반 회원 Entry/ 회원증발행 교직원 Entry/ 신회원증발행 대출의지 없음 가입[학생증 없음] H 보류기한 끝 종료상태 대출 회원 보류 Entry/ 신청서보관 미대출 대출중 Entry/ 대출회수기록 신분증확인 반환 회원 State Chart Diagram 액션 종료 상태 상태 이동의 종료 지점. 종료로의 상태 이동은 시스템 정지나 오브젝트 소멸을 나타냅니다. 종료 상태에서는 상태 이동은 없습니다. 종료상태는 생략 가능합니다.
2 U State Cart Diagram 표기법 nified Modeling language 상태 이력상태 평행상태 작업개시 상태 상태이동 가입[조건OK] 가입 완료 미가입 탈회[not대출중]/ 회원증반환 보류기한 끝 일반 회원 Entry/ 회원증발행 교직원 Entry/ 신회원증발행 대출의지 없음 가입[학생증 없음] H 보류기한 끝 종료상태 대출 회원 보류 Entry/ 신청서보관 미대출 대출중 Entry/ 대출회수기록 신분증확인 반환 회원 State Chart Diagram 액션 상태 대상의 라이프 사이클(발생부터 소명까지)안의 어떤 상황을 나타낸다. 상태 안에는 액션이나 내부 이동을 정의 할 수 있다.
2 U State Cart Diagram 표기법 nified Modeling language 상태 이동 • 이벤트 : 상태 이동을 발생시키는 이벤트 • 파라미터 리스트 : 이벤트 발생에 의해 전달된 파라미터. 복수로 정의 가능 • 가드 조건 : 조건이 성립하고 있을 때에만 상태가 이동한다 • 액션: 상태 이동에 따라 실행되는 액션 이벤트 (파라미터 리스트) [가드조건] / 액션 이력상태 평행상태 작업개시 상태 상태이동 가입[조건OK] 가입 완료 미가입 탈회[not대출중]/ 회원증반환 보류기한 끝 일반 회원 Entry/ 회원증발행 교직원 Entry/ 신회원증발행 대출의지 없음 가입[학생증 없음] H 보류기한 끝 종료상태 대출 회원 보류 Entry/ 신청서보관 미대출 대출중 Entry/ 대출회수기록 신분증확인 반환 회원 State Chart Diagram 액션 상태 이동 상태에서 상태로의 이동을 나타낸다. 지정된 이벤트가 발생 했을 때 상태가 이동합니다. 정의가 생략된 경우 이동 전 상태의 ENTRY 액션의 실행이 끝나면 자동으로 상태를 이동합니다. (‘무조건 이동’ 혹은 ‘Lambda 이동’이라 한다.)
2 U State Cart Diagram 표기법 nified Modeling language 평행상태 이력상태 평행상태 작업개시 상태 상태이동 가입[조건OK] 가입 완료 미가입 탈회[not대출중]/ 회원증반환 보류기한 끝 일반 회원 Entry/ 회원증발행 교직원 Entry/ 신회원증발행 대출의지 없음 가입[학생증 없음] H 보류기한 끝 종료상태 대출 회원 보류 Entry/ 신청서보관 미대출 대출중 Entry/ 대출회수기록 신분증확인 반환 회원 State Chart Diagram 액션 평행상태 상태 안에는 여러 개의 상태 이동을 정의할 수 있다. 상태 안에 상태 이동을 포함한 상태 를 혼합(composite) 상태 , 포한되어 있는 상태를 ‘서브 상태’ 라 한다 혼합상태에서 여러 개가 동시에 동작하는 상태 이동을 ‘평행 상태’라고 한다. 평행상태에 있는 서브 상태들의 상태 이동은 독립적으로 발생한다.
2 U State Cart Diagram 표기법 nified Modeling language 이력상태 평행상태 작업개시 상태 상태이동 가입[조건OK] 가입 완료 미가입 탈회[not대출중]/ 회원증반환 보류기한 끝 일반 회원 Entry/ 회원증발행 교직원 Entry/ 신회원증발행 대출의지 없음 가입[학생증 없음] H 보류기한 끝 종료상태 대출 회원 보류 Entry/ 신청서보관 미대출 대출중 Entry/ 대출회수기록 신분증확인 반환 회원 State Chart Diagram 액션 이력상태 혼합상태에서 다른 상태로 이동한 후, 다시 혼합 상태로 되돌아 왔을 때 어떤 서브 상태에 있었는지 마크를 해서 저장한다. 예)가입이 완료되고 나서 미가입으로 이동한 후, 한번 더 가입 완료로 되돌아 왔을 때 탈퇴시의 회원종류(일반 회원이나 교직원)로 복귀하고 있다.
2 U State Cart Diagram 표기법 nified Modeling language 포크 / 조인 미납품 납품완료 요망 수취 대출불가 발주 미지불 지불완료 작품 등록완료 지불 대출가능 작품이 프론트에 도착할 때 까지의 State Chart Diagram 포크 / 조인 동시에 움직이는 상태 이동이 있을 경우 포크와 조인을 사용한다. 포크 – 상태이동을 분리 조인 – 머지(merge) , 포크된 이동이 전부 종료할 때 까지 기다린다.
3 U State Chart Diagram 구조 예시(사용처) 예1) nified Modeling language |시스템 전체의 움직임을 파악한다. - 시스템 전체를 대상으로 스테이트 차트 다이어그램을 그렸을 경우 사용 UseCase은 UseCase와 Actor의 관계나, 유즈케이스 모델화 대상나에 몇 개만 나타내고 있지만 어느 타이밍에 실행할 수 있는지 알 수가 없다. State Chart Diagram은 시스템에서 취할 수 있는 상태 정의,각각의 상태에 대해 어떤 UseCase가 실행되는지 그려봄으로써 시스템과 라이프 사이클과 UseCase의 관계를 명확히 알 수 있다. UseCase 다이어그램을 State Chart Diagram에 매핑한다. 시스템을 기동한다 시스템을 정지한다 반환 Entry/ UC작품을 반환한다 접수계 시스템을 대출한다 반환요구 반환완료 시스템을 반환한다 /UC시스템을 부팅한다. 가입희망 대기 Entry/ UC알림을 표시한다 가입 Entry/ UC회원을 등록한다. 시스템을 등록한다 시스템을 표시한다 정지요구/UC시스템을 정지한다. 가입완료[가입만] 대출요구 정산완료 가입 희망 대출 Entry/ UC작품을 대출한다 렌탈 비디오점의 접수시스템 가입완료(대출과 함께 희망)
3 U State Chart Diagram 구조 예시(사용처) 예2) nified Modeling language |오브젝트의 라이프 사이클 파악 모델링 대상을 1개의 오브젝트로 했을 때 사용방법 시스템이 상태에 따라 움직이는 방법을 바꾸는 것처럼 오브젝트도 상태에 따라 움직인 방법이 바뀐다. 오브젝트의 스테이트 차트 다이어그램 사용법중 에서 중요한 것 중 하나 – 오브젝트의 생성/소멸 명확히 해야함 ->불필요한 오브젝트가 차례차례 쌓여 메모리 부족의 주 원인이 된다. 생성된 오브젝트의 소명 여부와 소멸 시점이 명시된다(종료 상태인가, 어떤 이벤트에서 종료 상태로 이동하는가) 참고) C++ - 오브젝트를 삭제하는 타이밍을 알 수 있다. Java – 오브젝트 참조를 멈추는 타이밍을 알 수 있다. -> Java에서는 오브젝트가 아무 곳에서도 참조되지 않으면 Garbage Collection이 대상이 됨
3 U State Chart Diagram 구조 예시(사용처) 예2) nified Modeling language 가입[조건OK] 가입 완료 미가입 탈회[not대출중]/ 회원증반환 보류기한 끝 일반 회원 Entry/ 회원증발행 교직원 Entry/ 신회원증발행 대출의지 없음 가입[학생증 없음] H 보류기한 끝 대출 회원 보류 Entry/ 신청서보관 미대출 대출중 Entry/ 대출회수기록 신분증확인 반환 회원 State Chart Diagram 미납품 납품완료 요망 수취 대출불가 발주 미지불 지불완료 작품 등록완료 지불 대출가능 작품이 프론트에 도착할 때 까지의 State Chart Diagram
3 U State Chart Diagram 구조 예시(사용처) 예3) nified Modeling language |이벤트의 취사 선택을 검토 이벤트 구동형 시스템(시스템 밖에서 발생한 사건에 대해 시스템이 반응 하는 시스템)에서 다양한 이벤트가 발생할때 이벤트의 취사 선택을 검토하는 것은 시스템 동작을 안정적으로 구현하기 위한,필수불가결한 요소이다. 효과적이다 - 상태별로 어떤 이벤트에 반응하고, 어떤 이벤트를 무시하는지 결정할 수 있다. e3 S3 S1 에서는 e1,e3의 이벤트에 반응하지만 e2는 무시한다 S2 에서는 e2에만 S3 에서는 e3에만 반응한다. S1 e3 e2 e1 S2
4 U State Chart Diagram의 주의 사항 nified Modeling language |의미가 있는 상태를 만든다. ‘상태’ 의 버람을 막기 위해 시스템에 특별한 의미가 있는지 반드시 검토. 판단기준 1. 상태로 밖에 할 수 없는 것이 있다. 2. 상태일 때 시키고 싶지 않은 것이 있다 |액션 상태와 다름이 없다. 스테이트 차트 다이어그램의 상태를 어떤 처리를 실행하고 있는 상태(=액션 상태)로 모두 자동으로 상태 이동을 한것이 액티비티 다이어그램이다. -> 플로우 차트와 같은 다이어그램이 되었다면, 이미 스테이스 차트 다이어그램이 액티비티 다이어그램으로 바뀐것이니 주의하라.
4 U State Chart Diagram 구조 예시(사용처) 예2) nified Modeling language 가입[조건OK] 가입 완료 미가입 탈회[not대출중]/ 회원증반환 보류기한 끝 일반 회원 Entry/ 회원증발행 교직원 Entry/ 신회원증발행 대출의지 없음 가입[학생증 없음] H 보류기한 끝 대출 회원 보류 Entry/ 신청서보관 미대출 대출중 Entry/ 대출회수기록 신분증확인 반환 회원 State Chart Diagram 미납품 납품완료 요망 수취 대출불가 발주 미지불 지불완료 작품 등록완료 지불 대출가능 작품이 프론트에 도착할 때 까지의 State Chart Diagram
4 U 활동(Activity) 다이어그램의 사용 예 시작 (합류지점) 진행 또는 취소? [취소] [진행] [취소됨] 운송자 고유 번호 입력 [운송자 정보 없음] 재입력 또는 취소 프롬프트 표시 운송자 검색 [운송자 정보 있음] 운송자 상세 정보 표시 접수할 물품이 더 있는가? [아니오] [매입 주문 내용 없음] [예] ‘일치하는 매입 주문 내용 없음’메시지 표시 일치하는 매입 주문 내용을 검색 [매입 주문 내용 있음] 수정된 매입 주문 내용을 지불회계 부서에 통보 재고 목록에 접수 물품을 반영 [일치안함] ‘일치하는 품목 없음’ 메시지 표시 매입 주문 내용에서 품목 검색 [일치함] 지불 회계 부서에 ‘통보 완료’메시지 표시 ‘재고 목록 수정 완료’ 메시지 표시 품목과 수량을 체크 (합류지점) 처리에서 제외시킴 접수 확인서 출력 [완료] (합류지점)
4 U State Chart Diagram의 주의 사항 nified Modeling language |어디서 액션을 쓸까 액션을 나누어 쓸대 ‘상태를 추가하면 다른 상태로 이동한다’ ‘다른 상태로 부터 이동해 왔다’의 관점에서 생각하면 이해가 쉽다. A A A exit/action1 e1 e1/action e1 B B B exit/action1 ※모두 상태 A 에서 B로 이동 할 때 action1을 실행한다.
4 U State Chart Diagram의 주의 사항 nified Modeling language |어디서 액션을 쓸까 액션을 나누어 쓸대 ‘상태를 추가하면 다른 상태로 이동한다’ ‘다른 상태로 부터 이동해 왔다’의 관점에서 생각하면 이해가 쉽다. [1]. [2]. [3]. A exit/action1 A A C C C e1/action e1 e1 D D D B B B entry/action1 [1] . A에서 B로 이동 할 때도 action1은 실행된다. [2] . A에서 B로 이동 할 때만 action1은 실행된다. [3] . A이외로부터 이동해 와도 action1은 실행된다.
4 U State Chart Diagram의 주의 사항 nified Modeling language |상태 이동표와 병행 스테이트 차트 다이어그램에서는 각각의 상태에 반응하는 이벤트에 기술이 없기 때문에 그려져 있지 않은 이벤트가 무시할것 인지, 검토 전 이벤트인지 애매한 경우가 있다. -> 상태 이동표를 같이 사용 상태이동표는 다양한 포멧이 있다 각각의 상태에 대해 이벤트가 발생 했을때 어떻게 처리할지 표에 기재 ※ EI(Event Ignore)- 이벤트무시 e1 e2 e3 S1 S2 EI S3 - e3 S3 S1 e3 e2 e1 S2 ※ CH(Can’t Happen)- 이벤트와 상태의 구성은 있을 수 없다는 의미. - 외형상 움직임에는 큰차이없지만 프로그램 작성에 영향을 줌 검토후 기입 (처음에는 EI로 하는게 안전)
참고 문헌 1. 다이어그램으로 쉽게 배우는 UML -이노우에 타케시 저 | 이영희 2. UML 3일 완성 -Thomas A. Pender 저 | 유영철 박순정 3. JAVA 프로그래머를 위한 UML 실전에선 이것만 쓴다 - 로버트 C. 마틴 저 | 이용원
Thank you!