소프트웨어개발방법
-
[UML강의노트] 제1강 유즈케이스다이어그램2009.09.21
[UML강의노트] 제2강 유즈케이스 정의서의 작성
유즈케이스 정의서
유즈케이스 정의서는 유즈케이스 다이어그램에 그려진 유즈케이즈의 내용을 구체적으로 기술하는 것입니다. 유즈케이스 정의서는 클라이언트와 개발자 간의 의사 소통 도구이면서 개발자와 개발자간에도 훌륭한 의사소통 도구가 됩니다. 게다가 결재란을 추가하면 간단하게 시행 합의서와 같은 개념으로 사용할 수 있어서 추후 문제 발생시 근거 자료로 이용할 수도 있습니다.
|
|
항목 | 설명 | |
---|---|---|
유즈케이스명 | 유즈케이스 다이어그램상의 유즈케이스 이름을 기술합니다. | |
액터 | 대상 유즈케이스와 관련된 액터를 기술합니다. | |
시나리오 개요 | 대상 유즈케이스의 시나리오 개요를 기술합니다. | |
사전 조건 | 메인 시나리오를 개시하기 위해 필요한 조건을 기술합니다. (예, 로그인이 되어 있어야 함.) | |
정보의 상태 | 메인 시나리오 진행 중 사용되는 정보의 상세 항목과 구체적인 값을 기술합니다. (예, 대출상태 = 도서확인 -> 대출완료) | |
사후 조건 | 사전 조건이 만족된 상태에서 메인 시나리오의 진행 후 만족되는 조건을 기술합니다. | |
단계 | 단계 번호를 부여합니다. 일련번호 등을 부여하되 전체 단계 수는 10 ~ 15 단계가 적당하며 이를 초과할 경우 유즈케이스의 분할을 고려하여야 합니다. | |
이 | 메인 시나리오 | 주로 진행되는 작업을 단계별로 작성합니다. |
벤 | 대체 시나리오 | 메인 시나리오 진행 중 예외 발생 등의 이유로 별개의 작업 단계가 필요한 경우 작성합니다. 대체 시나리오가 진행되도 사후 조건을 만족합니다. |
트 | 예외 시나리오 | 예외로 인한 실해의 멈춤이 일어나는 경우의 작업 단계를 작성합니다. 예외 시나리오가 실행될 경우 사후 조건은 만족되지 않습니다. |
비고 | 바로 해결할 수 없는 문제점 등을 기술하여 참조할 자료를 기재합니다. |
그림을 누르면 원래 크기로 보입니다.
그림을 누르면 원래크기로 보입니다.
[UML강의노트] 제1강 유즈케이스다이어그램
유즈케이스 다이어그램(USECASE diagram)
유즈게이스 다이어그램은 UML의 여러 다이어그램 중 한가지입니다. 유즈케이스 다이어그램은 주로 응용프로그램을 모델링하기 위해 사용하는 것으로 요구분석을 위한 도구로 사용이 됩니다.
작성하려고 하는 응용프로그램의 기능이나 구조 등을 구체적인 모델로 그려서 보다 정확한 요구분석을 하기 위해 보통 응용프로그램 제작시 가장 먼저 그리게 됩니다.
다음은 유즈케이스를 구성하는 기본 요소를 알아보도록 하겠습니다.
참고서적 :
|
다이어그램으로 쉽게 배우는 UML (한빛미디어 2008)
유즈케이스의 구성 요소
액터(Actor)
유즈케이스의 행위자를 의미하는 것이 아니라 유즈케이스와 관련한 이용자나 시스템을 의미합니다.
유즈케이스(Usecase)
모델화 대상이 외부에 제공하는 서비스로 이 서비스를 액터가 이용합니다.
관계 정의
관련된 액터와 유즈케이스를 연결한 선입니다. 관계의 정의는 액터와 유즈케이스간의 관련성을 나타낼 뿐, 유즈케이스의 행위자를 표시하는 것이 아닙니다.
시스템 경계
시스템화 대상 범위를 지정합니다. 시스템화할 대상과 시스템 대상 범위외의 요소를 구분짓기 위해 사용하며 생략하기도 합니다.
유즈케이스 다이어그램 작성시 주의 사항
목적을 확인한다.
유즈케이스를 작성하는 목적과 액터와의 관계를 명확하게 합니다. 비디오 대여점과 관련한 유즈케이스의 경우 액터가 '사람'이라고 하는 것보다는 '종업원'이나 '고객'과 같이 구체적이 되어야 명확한 유즈케이스를 선택할 수 있습니다. 액터가 '종업원'인 경우 '비디오를 대여해준다.', '비디오 반납을 접수받아 처리한다' 등의 유즈케이스가 선택될 수 있으며, 액터가 '고객'이 되면 '비디오를 대여한다', '비디오를 반납한다' 등의 유즈케이스가 선택될 수 있습니다. 결국 '종업원'이 이용할 시스템의 유즈케이스인지 '고객'이 이용할 시스템의 유즈케이스인지가 액터를 구체적으로 지정하므로써 명확해 집니다.
유즈케이스의 이름은 구체적으로, 작업을 정확히 서술하여, 그리고 고유한 표현으로 작성한다.
'사람'이라는 추상적 표현보다는 '고객'과 같은 구체적 표현을 사용하되, '홍길동'과 같이 너무 지나치게 구체적인 표현은 피합니다. 유즈케이스의 목적을 나타내기에 적합한 정도를 표현합니다.
'대여'와 같은 표현은 목적이 되는 액터의 유즈케이스를 올바르게 표현하는데 모호하므로 '대여하다', '빌리다'와 같이 목적인 액터가 어떤 작업을 하는지 정확히 서술합니다.
유즈케이스내에서 '빌리다', '대여하다', '렌탈하다'와 같이 같은 의미로 사용되는 다른 유즈케이스 명을 사용하는 것은 혼란을 주므로 한가지로 통일하여 사용합니다.
규모를 동일하게 한다.
각각의 유즈케이스는 작업의 크기가 동일하도록 작성합니다. 그래야만 유즈케이스를 보고 전체 작업규모와 진척도를 명확하게 알아볼 수 있습니다.
'기능분할'은 피할 것.
'기능분할'이란 유즈케이스를 기능이 아닌 구체적인 서비스로 착각하여 너무 세밀한 표현을 하게 되는 경우를 말합니다. 너무 세밀하게 작성된 유즈케이스는 전체 기능을 설명하는데 오히려 방해가 됩니다.
<<include>>
베이스가 되는 유즈케이스에 부가적으로 추가되는 서비스를 표현합니다. 예를 들어 '비디오를 빌린다'라는 유즈케이스를 사용하기 위해 로그인 기능을 '로그인을 한다'라는 유즈케이스로 추가할 수 있는데 베이스로 부터 추가되는 유즈케이스쪽으로 화살표를 그립니다. include 관계의 경우 베이스는 include된 유즈케이스가 반드시 필요하며, include 관계의 유즈케이스는 여러 유즈케이스가 공유하여 사용할 수 있습니다.
<<extend>>
베이스가 되는 유즈케이스에 필수적으로 추가되는 서비스를 표현합니다. extend 관계의 유즈케이스는 베이스가 되는 유즈케이스가 반드시 있어야 하지만 베이스가 되는 유즈케이스는 extend 관계의 유즈케이스가 필수적이지 않으며 공유할 수 없습니다.
일반화 관계
베이스 타입으로부터 파생되는 타입을 선언하는 개념입니다. 자바의 상속과 비슷한 개념이며, '비디오를 빌린다'라는 베이스 유즈케이스를 '비디오를 택배로 빌린다'라는 하위 개념으로 파생시켜 사용할 수 있습니다.
그림을 누르면 원래크기로 표시됩니다.