본문 바로가기

[ Project Plan & Design ]/Uml

UML 요점 정리 #3 - 유스케이스 다이어그램

유스케이스 다이어그램 (UseCase Diagram)

 

프로젝트가 무엇인지 모르고 프로젝트를 수행할 수는 없다.

프로젝트가 무엇인지에 대해서 알아보는 것을 요구 분석(Requirement Analysis)라 하는데, 이를 위한 다이어그램이 바로 유스케이스 다이어그램이다. 즉, 프로젝트 수행시 가장 먼저 나오는 다이어그램이 유스케이스 다이어그램이고, 다른 다이어그램의 배경이 되는 중요한 다이어그램이다.

 

 

1. 표기(Notation)과 의미(Semantics)

 

 

(1) 유스케이스 (Usecase)


 

 

타원으로 표시하고 이름을 속에 명시한다.

(2) 유스케이스의 의미

 

말 그대로 쓰임새를 나타내며, 한 프로젝트의 결과물이 작동하여 사용되는 쓰임새를 분류해 나타낸다.

집이 사용되는 예를 들어보자. 집은 식사를위한 장소로 사용될 수 있고, 휴식을 위한 장소, 수면을 취하기 위한 장소 등등 여러가지 용도의 사용 예를 들 수 있다. 이러한 여러 사용 예들이 집의 구조를 결정하는 사항이 될 것이다.

 

 

(3) 액터 (Actor)


액터를 스틱맨으로 표시하고 하단에 액터의 이름을 명시


 

 

스테레오 타입(Stereotype)을 'Actor'로 가지는 클래스 표기

 

(4) 액터의 의미

 

액터는 구축해야 할 시스템과 상호 교류하는 추상적인 역할을 수행하는 어떤 사람이나 어떤 것이 될 수 있다.

예를 들어 입출금 ATM기를 보면 입출금을 하는 손님의 경우 하나의 액터가 될 수 있고, ATM기가 입출금 처리를 위해 연결하는 은행의 주 전산망도 하나의 액터가 될 수 있다.

 

 

 

 

2. 액터들간의 관계 (Relationship)

 

 

(1) 일반화(Generalization) 관계의 표기

 

 

 

 

(2) 일반화 관계의 의미

 

일반화 관계는 객체 지향의 상속의 의미와 유사하다.  일반화된 액터의 모든 특성을 특수한 액터가 모두 가지게 된다.

위 그림과 같이 고객 액터의 모든 특성을 상업 고객이 모두 포함하게 된다.

 

 

 

 

3. 액터와 유스케이스, 유스케이스와 유스케이스 사이의 관계

(여기서 설명하는 개념은 모두 UML 1.1을 대상으로 설명한 것이다)

 

 

(1) 통신(Communicates) 관계

 

 

(2) 통신 관계의 의미

 

위 그림에서와 같이 현금 자동 출납기의 시스템에서 그 사용자와 사용자 확인의 유스케이스는 상호작용을 하게 된다. 이를 관계로 표시한 것이 통신 관계이다. 즉 관계로 묶인 두 개체가 상호 작용을 하는 것이 통신 관계이다. (UML 1.3 RTF의 경우 통신관계는 연관(Association) 관계로 대체된다)

 

 

(3) 확장(Extends) 관계

 

 

(4) 확장 관계의 의미

 

확장 관계는 유스케이스가 어떠한 조건을 만족할 경우 확장할 수 있는 확장 시점(Extends Point)을 가지고 그때의 연관된 유스케이스를 포함하는 관계이다. 위 그림과 같이 추가 요구시라는 확장 시점에서 카탈로그 요구의 유스케이스가 주문접수의 유스케이스에 포함된다.

 

 

(5) 사용 (Uses) 관계

 

 

(6) 사용 관계의 의미

사용관계는 특정한 유스케이스가 다른 유스케이스를 포함하고 있는 경우를 나타낸다. 위 그림에서 고객 확인의 유스케이스가 주문 접수와 주문 조사의 유스케이스를 모두 포함하게 되는 경우이다. (UML 1.3 RTF에서는 Uses의 관계가 include의 관계로 이름이 바뀌었다)

 

 

(7) 일반화 (Generalization) 관계

 

 

(8) 일반화 관계의 의미

 

액터 사이의 일반화 관계와 동일하게 객체 지향의 상속의 개념과 유사하다.

 

 

 

4. 액터와 유스케이스의 추출법

 

정확한 액터와 유스케이스를 추출하기 위해서는 여러번의 반복이 필요하지만 처음으로 추출하려는 사람은 다음 지표를 통해 추출해보는 것도 좋다.

 

 

(1) 액터의 추출법

    - 시스템의 주기능을 사용하는 사람은 누구인가?

    - 누가 시스템으로부터 업무 지원을 받는가?

    - 누가 시스템을 운영, 유지 보수하는가?   

    - 시스템과 정보를 교환하는 외부 시스템은 무엇인가?

    - 시스템이 내어놓은 결과물에 누가 관심을 가지는가?

 

 

(2) 유스케이스 추출법

    - Actor가 요구하는 시스템의 주요 기능이 무엇인가?

    - Actor가 시스템의 어떤 정보를 수정, 조회, 삭제, 저장하는가?

    - 시스템이 Actor에게 주는 어떠한 Event가 있는가? Actor가 시스템에 어떠한 Event가 있는가?

    - 시스템의 입력과 출력으로 무엇이 필요한가? 그리고 입력과 출력이 어디에서 오고 어디로 가는가?

    - 시스템의 구현에서 가장 문제가 되는 점은 무엇인가?

 

 

 

5. 시나리오

 

유스케이스 다이어그램을 그리면서 빠뜨려서는 안될 내용이 시나리오이다.

유스케이스 다이어그램을 완성했다면 유스케이스 다이어그램의 명세가 필요하게 된다. 즉 무엇을 해야하고 어떻게 해야하는가에 대한 부연 설명이 필요한 것이다. 유스케이스의 순서에 의해 배열이 가능하고 이러한 순서를 일반적인 자연어 문장으로 표현하되 외부인이 보아도 알기쉬운 정도로 쉽게 기술해야한다.

 

 

 

마무리

 

유스케이스 다이어그램을 잘 그리기위해 다음 단계로 넘어가는 걸 주저하지 말라. 프로젝트의 성공적인 수행을 위해 반복적 개발을 통한 오류 수정 과정이 필요하고 이는 유스케이스 다이어그램의 수정또한 포함한다.

 

어느정도 유스케이스 다이어그램이 완성되면 다음 다이어그램을 진행하라.


- Reference

  http://jedikim72.blog.me/10025703879