2.1. UML의 이해
UML(Unified Modeling Language)
- 구조 다이어그램 (Structual Digaram) : 클래스, 객체, 복합 구조, 배치, 컴포넌트, 패키지
- 행위 다이어그램 (Behavioral Diagram) : 활동, 유스케이스, 상태(머신)
- 상호작용 다이어그램 (Interaction Diagram) : 순차, 통신, 타이밍
- UML: 객체지향 시스템 개발 분야에서 가장 우수한 모델링 언어
SW를 코딩하기 앞서 표준화되고 이해되기 쉬운 방법으로 SW를 설계함으로써 타인과 효율적으로 의사소통할 수 O
UML의 특징
: 객체 지향 설계를 위한 표준 언어
1. 시각화 언어: 시각적인 그래프 형태 -> 오류 없는 원활한 의사소통
2. 명세화 언어: 분석, 설계, 구현 단계의 각 과정에서 필요한 모델을 명세화
3. 문서화 언어: 시스템 아키텍처와 모든 상세 내역을 문서화하는 역할
UP, UML, Usecase(=쓰임새), Actor
- UP(Unified Process)? 객체 지향 시스템을 개발하기 위한 UML에 기반한 SW 개발 프로세스
- UML(Unified Modeling Language)? 시스템 개발 과정에서 객체지향 시스템의 결과물을 시각화(가시화), 명세화 문서화하기 위해 사용되는 모델링 언어(그래픽 언어)
-> Usecase 와 Actor 등에 대한 그래픽 표현을 제공
- Actor? 시스템과 상호작용하는 인간 또는 시스템
- Usecase? Actor에게 가치 있는 결과를 제공하기 위하여 시스템이 수행하여야 하는 일련의 활동 / 시스템의 기능적인 요구사항의 표현
2.2. 유스케이스 다이어그램
2.2.1. 사용자 액터 (User Actor)
: 시스템을 사용하는 사람(역할)
액터와 유스케이스의 관계는 화살표로 나타냄,
시스템 액터, 주요 액터, 보조 액터, 프록시 액터 등이 있음
- 액터 식별 (필요한 액터를 찾아야 함)
- 액터 이름 (사용자 액터의 이름은 구체적인 역할을 나타내게 정함)
- 시스템 액터 (시스템 이름을 사용해 이름을 정함)
- 액터 목록 (어떤 일을 하는지 파악 위해)
2.2.2. 유스케이스 (Usecase)
: 사용자가 시스템을 통해 사용하고 싶은 기능, 실제로 코딩할 수 있을 만큼 작은 단위의 기능
- 유스케이스 식별 (후보 유스케이스 선정, 업무에서 유스케이스 도출 -> 정련 과정을 통해 최적화된 유스케이스 결정)
- 유스케이스 검증 ( 수작업으로 이루어지는 것 X, 액터가 원하는 최종 결과만 나타내는지, 액터가 수행하는지, 유스케이스 내의 이벤트 흐름 전체를 액터가 사용하는지)
- 유스케이스 이름 (사용자 관점에서 이해할 수 있는, 동사형 명사, 최종 목적)
- 유스케이스 목록
2.2.3. 관계
- 액터 -> 유스케이스 관계
: 연관 ( association) 관계, 방향성을 갖는 실선으로 표현 (제어의 흐름을 나타냄)
제어하는 주체에서 출발해 제어받는 대상으로 연관 방향이 결정된다.
- 시스템 액터도 유스케이스 제어의 주체가 될 수 있다.
- 유스케이스 -> 액터 관계
: 통보 기느이 유스케이스 수행 결과를 액터에게 알려줌
통보 기능이 시스템 내에서 이루어져야 한다.
- 유스케이스 -> 시스템 액터 관계
: 다른 시스템에게 요청을 보내거나 상호작용을 하는 경우
- 액터의 일반화 관계
: 일반화 Genralization (개별적인 것에서 공통적인 특징을 뽑아 이름을 붙인 것)
일반화 될수록 추상화가 되고 반대는 구체화가 된다. (특수화 specification)
일반화 개념은 액터 사이에 먼저 적용할 수 있다.
- 액터 간의 연관 관계
: 액터가 또 다른 액터를 통해 유스케이스를 이용할 때
- 포함 관계
: 유스케이스의 일부 기능이 다른 유스케이스에서도 공통으로 필요하다면 이를 별도 유스케이스로 만든 뒤 호출해 사용,
기본 유스케이스 -> 피포함 유스케이스
점선을 사용하고, 스테레오 타입으로 <<include>>
라고 표기한다.
- 피포함 유스케이스(included): 공통으로 사용하기 위해 만들어 놓은 별도 유스케이스
(2개 이상의 유스케이스에서 사용할 수 있는 공통 부분(이벤트 흐름)으로 만들어야 하고 다른 유스케이스에서 사용하지 않는 기능이라면 포함 관계를 만들지 X
- 기본, 기준 유스케이스(basic, based): 피포함 유스케이스를 호출하는 유스케이스
- 확장 관계
: 특정 조건이 발생하면 확장 유스케이스를 수행하고 다시 기준 유스케이스를 수행한다.
점선 화살표로 표기하고 방향은 기준 유스케이스 쪽으로 향한다.
<<extend>>
라는 스테레오 타입을 사용한다.