[UML] 유스케이스 다이어그램(Usecase Diagram)
시스템과 사용자의 상호작용을 다이어그램으로 표현한 것으로, 사용자의 관점에서 시스템의 서비스, 기능, 외부와의 관계에 대해서 다이어그램으로 표현한 것을 말한다.
사용자(액터)가 시스템 내부에 있는 기능 중에 어떤 기능을 사용할 수 있는지를 나타내는 것으로 사용자와 시스템 사이의 관계를 간략하게 표현할 수 있는 장점이 있다.
1. 유스케이스 구성요소(Component)
유스케이스 다이어그램의 구성요소로 시스템, 액터, 유스케이스, 관계로 구성되어 있다.
2. 시스템(System Scope)
현재 개발할 프로그램을 나타낸다.
프라이머리 액터와 세컨더리 액터 사이의 사각형으로 표기한다.
3. 액터(actor)
시스템 외부에 존재하며 시스템과 상호작용을 하는 모든 것을 말한다.
대게 시스템을 사용하는 사용자와, 시스템을 사용함으로서 상호작용 되는 다른 시스템이 액터가 될 수 있다.
1) 프라이머리 엑터
시스템을 사용하는 주체가 되는 액터이며 졸라맨과 같은 사람 형태의 모형으로 표기한다. 시스템의 왼쪽에 그리며 액터의 역할을 작성해준다.
2) 세컨더리 엑터
프라이머리 엑터로부터 시작되어 시스템과 상호작용하는 다른 시스템(외부 시스템)을 말하며 박스에 <<actor>>를 포함하여 표기한다. 시스템의 오른쪽에 그려준다.
4. 유스케이스(Usecase)
사용자의 입장에서 바라본 시스템의 추상적인 기능으로 시스템의 요구사항을 나타내며 타원형으로 표기한다.
5. 관계(Relation)
액터와 유스케이스, 유스케이스 사이의 유스케이스의 관계를 나타낸다.
관계는 연관(Assosiation), 의존(Dependency), 일반화(Generalization)이 있으며, 의존 관계는 포함(Include)와 확장(Extend)로 나눠진다.
1) 연관관계
액터와 유스케이스 간의 상호작용이 있음을 실선으로 표현한다.
2) 포함관계
하나의 유스케이스가 다른 유스케이스가 실행되었다는 것에 대한 전제가 되었을 때의 관계이다.
위의 유스케이스 다이어그램을 예로 들자면, 상품 주문 유스케이스는 사용자 인증 유스케이스가 반드시 실행 되어야만 상품 주문을 할 수 있게 되기 때문이다.
포함하는 유스케이스에서 포함 되는 유스케이스 방향으로 화살표를 점선으로 연결하고 <<include>>라고 표기한다.
3) 확장관계
확장기능 유스케이스와 확장대상 유스케이스 사이에 형성되는 관계로, 해당 유스케이스에 부가적인 유스케이스를 실행할 수 있을 때의 관계이다. 상품목록조회 유스케이스에서 부가적으로 상품상세조회 기능을 추가할 수 있기 때문에 확장 관계로 표기한다.
확장하는 유스케이스에서 대상 유스케이스 방향을 점선으로 연결하고 <<extend>>라고 표기한다.
4) 일반화 관계
추상화한 유스케이스 또는 액터를 그룹화시켜 이해도를 높이기 위해 표현하는 관계이다.
구체적인 유스케이스에서 추상적인 유스케이스로 화살표를 그리고 실선으로 표기한다. 카테고리 관리가 추상적인 유스케이스가 되고 카테고리 등록, 수정, 삭제가 구체적인 유스케이스가 되는 관계이다.
6. 유스케이스 다이어그램 작성 시
1) 유스케이스 식별
액터가 원하는 시스템 제공 기능은 무엇인지, 시스템에 어떤 정보를 생성, 수정, 조회, 삭제하고 싶어 하는지, 모든 기능 요구사항들을 만족할 수 있도록 유스케이스가 모두 식별 되었는지를 확인하여 유스케이스를 정의한다.
2) 관계 정의
- 연관 관계: 액터와 유스케이스 간에 상호 작용이 존재하는지
- 포함 관계: 유스케이스를 실행하기 위하여 반드시 실행되어야 하는 유스케이스가 존재하는지
- 확장 관계: 유스케이스를 실행함으로써 선택적으로 실행되는 유스케이스가 존재하는지
- 일반화 관계: 액터 또는 유스케이스가 구체화 된 다른 액터 또는 유스케이스를 가지고 있는지
위 관계에 해당하는 상호 작용 관계를 확인하고 관계를 정의한다.
'Database > 데이터베이스 이론' 카테고리의 다른 글
[Database] ODS(Operational Data Store)란? (0) | 2020.07.29 |
---|---|
[데이터베이스 이론] ER 모델 - 개념적 모델링 (0) | 2020.03.31 |
[UML] 클래스 다이어그램(Class Diagram) 정리 (1) | 2020.03.26 |