|
 |
액터의 예 |
 |
|
 |
결재 시스템에서 : 상신자, 합의자, 결재자, 통보자 |
 |
 |
전자 상거래 시스템에서 : 회원, 구매자, 배달자, 관리자, 배송시스템, 결재시스템 |
 |
 |
병원관리시스템에서 : 의사, 간호사, 환자, 수납책임자, 약사 |
 |
 |
소방경보시스템에서 : 관리자, 연기센서, 온도센서, 경보기 | |
 |
 |
액터의 식별방법 |
 |
|
SW가 담당할 문제영역에 따라 액터는 항상 다르게 정의됩니다.
액터를 식별하는 것은 생각보다는 어려운 작업이고, 액터를 정의하는 사람에 따라,
경험수준에 따라 차이가 있습니다. 따라서 액터를 정의하는 과정에서 관련
당사자들이 지속적으로 의견을 나누고, 결과는 반드시 리뷰하는 과정이 필요합니다.
UML을 적용하여 SW를 잘 만들려면 액터부터 정확히 식별해야 합니다.
다음은 액터를 식별하는데 도움을 얻을 수 있는 질문들입니다. |
 |
|
| |
3. 구성요소 : 관계
|
이번에는 액터-유즈케이스, 혹은 액터-액터, 유즈케이스-유즈케이스 사이에 정의되는
관계에 대해 학습하겠습니다. 유즈케이스 다이어그램에서 관계를 정의하는 것은 액터나
유즈케이스를 식별하는 것 만큼 중요합니다.
유즈케이스 다이어그램에서 사용되는 관계의 종류는 다음과 같습니다. |
 |
|
|
|
 |
정의 및 특징 |
 |
|
 |
communicates는 액터와 유즈케이스 사이에 정의되는 관계입니다. |
 |
 |
communicates관계는 두 개체가 일반 상호작용 관계에 있다는 것을 의미합니다. |
 |
 |
즉, 액터가 특정 사용목적을 가지고, 유즈케이스와 상호작용할 때 정의합니다. |
 |
 |
액터는 서비스를 요구 하는 입장, 유즈케이스는 서비스를 제공하는 입장에 |
|
있습니다. |
 |
 |
혹은 액터는 정보를 통보받거나 요구하는 입장, 유즈케이스는 정보를 제공하는 |
|
입장에 있습니다. | |
 |
 |
표기법 |
 |
|
 |
화살표 없는 실선으로 표현합니다. |
 |
|
모델 |
설명 |
 |
학생(액터)는 수강하다(유즈케이스)와 교류하고
있습니다. 즉 학생 액터는 수강하다라는
유즈케이스의 서비스를 받습니다.
(또는 사용합니다.) | |
 |
 |
한쪽 화살표를 가진 실선으로 표현합니다. |
 |
|
모델 |
설명 |
 |
알람을 울리다(유즈케이스)가 잠꾸러기 (액터)에게
알람을 울리고 있습니다. 이 경우 화살표의 방향은
communication을 누가 개시하느냐에 따라
달라집니다. 위의 예는 "알람을 울리다"라는
유즈케이스가 교류를 시작하고 있음을 알 수
있습니다. (이렇게 유즈케이스가 액터에 먼저
communication하는 예는 흔하지 않습니다) | | | |
|
 |
정의 및 특징 |
 |
|
|
 |
 |
표기법 |
 |
|
 |
삼각형 화살표가 붙은 실선으로 표현합니다. |
 |
|
모델 |
설명 |
 |
인터넷 고객(액터)와 고객(액터)는 일반화 관계가
있습니다. 즉, 인터넷 고객은 고객이 가진 특성을
모두 가지고 있고, 자신만의 특성을 추가적으로
가집니다.(상속) |
 |
사용자 인증(유즈케이스)와 패스워드 확인
(유즈케이스)는 일반화 관계가 있습니다.
즉, 사용자 인증은 보다 보편적인 것, 패스워드
확인은 보다 더 구체적인 방법으로서 상호간
관계를 가집니다. | | | |
|
 |
정의 및 특징 |
 |
|
|
 |
 |
표기법 |
 |
|
 |
화살표 붙은 점선에 <<include>> 스테레오타입을 정의합니다. |
 |
 |
화살표의 방향은 수행을 의뢰하는 쪽에서 수행될 유즈케이스쪽으로 향합니다. |
 |
|
모델 |
설명 |
 |
로그인(유즈케이스)과 계좌이체
(유즈케이스)는 Shared Service인
사용자인증(유즈케이스)의 서비스
수행을 의뢰합니다.
즉, 로그인과 계좌이체 유즈케이스는
자신의 서비스 수행단계 중 특정한
시점에서 사용자 인증 서비스의
수행을 요청하는 것입니다. | | | |
|
 |
정의 및 특징 |
 |
|
 |
extend는 유즈케이스와 유즈케이스 사이에 정의되는 관계입니다. |
 |
 |
extend 관계는 include 관계와 마찬가지로 한 유즈케이스가 다른 유즈케이스의 |
|
서비스 수행을 요청하는 관계입니다. |
 |
 |
다만, include관계와는 달리 수행요청을 의뢰받은 서비스는 수행되지 않을 수도 |
|
있습니다. |
 |
 |
즉 수행을 의뢰하는 유즈케이스는 조건에 따라 수행을 의뢰할 수도 있고 의뢰하지 |
|
않을 수도 있습니다. 이것이 include관계와의 차이점입니다. |
 |
 |
수행을 의뢰할 조건을 extension point 라고 합니다. |
 |
 |
include와는 달리 하나의 유즈케이스에 의해 서비스 수행을 요청받을 수도 |
|
있습니다. | |
 |
 |
표기법 |
 |
|
 |
화살표 붙은 점선에 <<extend>> 스테레오타입을 정의합니다. |
 |
 |
화살표는 include와 반대로 수행될 유즈케이스에서 수행을 의뢰하는 쪽으로 |
|
향함합니다. |
 |
|
모델 |
설명 |
 |
고객목록조회(유즈케이스)는 고객상세 정보
조회(유즈케이스)의 서비스 수행을 의뢰합니다.
그런데 무조건 의뢰하는 것이 아니고, 고객의
요청이 있을 경우에 한해 상세정보조회 서비스의
수행을 요청합니다. | | | |
4. 사례연구
|
다음은 어느 회사의 간단한 인사시스템의 유즈케이스 다이어그램입니다.
유즈케이스 다이어그램의 실 사례를 편안한 마음으로 보시면서 이 다이어그램이
의미하는 시스템 영역과 기능을 정리할 수 있는지 판단해 보시기 바랍니다. |
 |
| |
|
|
어느 회사의 간단한 인사관리시스템입니다.
이 시스템의 사용자는 액터인 인사담당자와 시스템관리자입니다.
인사담당자에게 시스템은 인사정보를 신규등록하고 수정하고 인사현황 조회를
서비스합니다. 그리고 이를 위해 사원 검색 서비스를 공통 서비스로 분리하여
정의하였습니다. 시스템 관리자는 기준정보를 관리합니다. |
|
실제 현실에서 경험할 수 있는 사례를 가지고 모델링을 수행한 결과를 살펴보도록
하겠습니다. 아래에 기술된 문제영역은 모델링의 대상이 되는 주제와 이것과 관련된 |
주변정보를 제공합니다. 이 문제영역에 대한 분석을 통해 실제 유즈케이스
다이어그램을 작성하고 이를 소개하도록 하겠습니다.
여러분은 "문제영역" 설명을 보시고 현재까지의 지식을 총 동원하여 나름대로
유즈케이스 다이어그램을 작성해 보십시오. 그런 다음 "문제영역에 대한 유즈케이스
다이어그램" 항목의 기준모델과 비교해 보시기 바랍니다. 모델링은 눈으로 익히는 것이
아니라 손과 머리로 익히는 것입니다. |
 |
 |
A병원은 이번 기회에 SW시스템을 구축하여 업무의 일부를 자동화 하기를
원합니다. A병원에는 기존시스템으로 병원의 수입과 지출을 관리하는
"회계시스템"이 운영되고 있습니다.
이 시스템과 연계하면서 병원정보, 환자의 병력및 진료정보, 의료진 정보의 각종
정보관리와 진료예약 처리 및 수납지원을 수행하는 신규 시스템을 구축하기를
원하고 있습니다.
병원의 각 관계자는 시스템을 통해 아래와 같은 기능을 수행하기를 원합니다. |
 |
 |
진료비는 진료정보를 입력하면 자동 산정됩니다. |
 |
 |
환자는 진료 예약을 하고, 환자의 과거병력과 진료정보는 관리됩니다. |
 |
 |
일반사용자는 병원 정보와 의료진 정보를 조회하고 상담 및 문의를 할 수 |
|
있습니다. |
 |
 |
의료진은 자신의 진료스케쥴을 자동 생성하고, 진료 내역을 관리하고, |
|
환자 정보를 조회하기를 원합니다. |
 |
 |
원무과 직원은 이 시스템을 통해 진료비 청구서를 조회, 발행하고, |
|
진료예약을 확정하기를 원합니다. | | | | |
| |
|