주제

설명 페이지 맨 위

확장 관계는 확장 유스 케이스를 기본 유스 케이스에 연결합니다. 기본 유스 케이스에서 확장 지점을 참조하여 기본 유스 케이스에 확장을 삽입할 위치를 정의합니다 (가이드라인: 유스 케이스, 확장 지점에 대한 토론). 확장 유스 케이스는 종종 추상적이나 추상적이어야 할 필요는 없습니다.

여러 목적으로 확장을 사용할 수 있습니다.

  • 유스 케이스의 파트가 선택사항 작동인지 또는 잠재적으로 선택적인 시스템 작동인지를 표시합니다. 이 방법으로 모델의 필수 작동에서 선택사항 작동을 분리합니다.
  • 특정 조건(종종 예외적) 하에서만 서브플로우를 실행하는지를 표시합니다(예: 알람 트리거).
  • 기본 유스 케이스의 확장 지점에 하나 또는 여러 개를 삽입할 수 있는 작동 세그먼트 세트가 있는지를 표시합니다. 삽입되는 작동 세그먼트(및 이를 삽입하는 순서)는 기본 유스 케이스 실행 중에 액터와의 상호 작용에 의존합니다.

확장은 조건부입니다. 이는 실행이 기본 유스 케이스 실행 중에 발생한 것에 의존함을 의미합니다. 기본 유스 케이스는 확장 실행 조건을 제어합니다. 조건은 확장 관계 내에 설명되어 있습니다. 확장 유스 케이스는 기본 유스 케이스의 속성에 액세스하여 이를 수정할 수 있습니다. 그러나 기본 유스 케이스는 확장을 볼 수 없으며 속성에도 액세스할 수 없습니다.

기본 유스 케이스는 내재적으로 확장에 의해 수정됩니다. 기본 유스 케이스는 확장을 추가할 수 있는 모듈 방식의 프레임워크를 정의하나 특정 확장을 볼 수 있는 기능은 없다고 말할 수 있습니다.

기본 유스 케이스는 본래 완벽해야 합니다. 이는 확장을 참조하지 않고도 이해할 수 있고 의미가 있어야 함을 나타냅니다. 그러나 기본 유스 케이스는 확장에 독립적이지 않기 때문에 다음과 같은 확장 가능성이 없으면 실행할 수 없습니다.

예:

첨부 텍스트에 설명된 다이어그램

회의 소집 전화걸기 및 통화자 ID 표시 유스 케이스는 둘다 전화걸기 기본 유스 케이스에 대한 확장입니다.

전화 시스템에서 사용자에게 제공된 기본 유스 케이스는 전화걸기 유스 케이스로 표현됩니다. 선택사항 서비스의 예로는 다음이 있습니다.

  • 통화(회의 소집 전화걸기)에 써드 파티를 추가할 수 있습니다.

  • 수신측이 통화자의 ID를 알 수 있게 합니다(통화자 ID 표시).

이 선택사항 서비스에 필요한 작동을 기본 유스 케이스인 전화걸기에 대한 확장 유스 케이스로서 표현할 수 있습니다. 이는 확장 관계의 올바른 사용법입니다. 전화걸기는 원래 의미가 있기 때문에 기본 유스 케이스의 기본 목적을 이해하기 위해 확장 유스 케이스에 대한 설명을 읽지 않아도 되며 확장 유스 케이스는 선택사항 특성을 갖고 있습니다.

기본 유스 케이스 및 "기본 및 확장" 유스 케이스 모두를 명시적으로 인스턴스화해야 할 경우 또는 기본 유스 케이스의 작동을 수정하기 위해 추가를 하려 할 경우에는 대신 유스 케이스 일반화(가이드라인: 유스 케이스 일반화)를 사용해야 합니다.

확장 유스 케이스는 대안 경로가 빌드되어 있을 수 있는 하나 이상의 삽입 세그먼트로 구성될 수 있습니다. 이러한 삽입 세그먼트는 점차적으로 기본 유스 케이스의 작동을 수정합니다. 확장 유스 케이스의 각 삽입 세그먼트를 기본 유스 케이스의 별도의 위치에 삽입할 수 있습니다. 이는 확장 관계가 확장 유스 케이스의 삽입 세그먼트 수와 동일한 수의 확장 지점 참조 목록을 갖고 있음을 의미합니다. 각 확장 지점은 기본 유스 케이스에 정의되어 있어야 합니다.

하나의 기본 유스 케이스는 여러 확장 관계로 구성되어 있습니다. 이는 유스 케이스 인스턴스가 일생 중에 둘 이상의 확장을 따를 수 있음을 의미합니다. 하나의 확장 유스 케이스가 여러 기본 유스 케이스로 확장할 수 있으나 이것이 기본 유스 케이스 간의 종속성을 의미하지는 않습니다. 기본 유스 케이스의 다른 위치에 확장을 삽입할 경우, 동일한 확장 유스 케이스 및 기본 유스 케이스 사이에 여러 확장 관계가 있을 수 있습니다. 이는 다른 확장 관계가 기본 유스 케이스 내의 다른 확장 위치를 참조해야 함을 의미합니다. 확장 유스 케이스 자체가 확장, 포함 또는 일반화 관계에서 기본 유스 케이스일 수 있습니다. 예를 들어, 이는 확장 유스 케이스가 중첩된 방법으로 다른 확장 유스 케이스를 확장할 수 있음을 의미합니다.

확장 실행 페이지 맨 위

기본 유스 케이스를 수행하는 유스 케이스 인스턴스가 확장 위치가 지정되어 있는 기본 유스 케이스의 위치에 도달하면, 해당 확장 관계에 대한 조건을 평가합니다. 조건이 true이거나 없으면, 유스 케이스 인스턴스는 확장 (또는 확장 위치에 해당하는 기본 유스 케이스 내의 삽입 세그먼트)을 따릅니다. 확장 관계의 조건이 false이면 확장은 실행되지 않습니다.

다른 유스 케이스처럼 확장 유스 케이스도 기본 이벤트 플로우 및 대체 이벤트 플로우를 가질 수 있습니다(가이드라인: 유스 케이스, 이벤트 플로우의 구조에 대한 토론 참조). 유스 케이스 인스턴스가 확장을 통해 거치는 정확한 경로는 실행 중에 무엇이 발생하는지와 확장이 실행되면서 액터와의 상호 작용 중에 무엇이 발생하는지에 따라 다릅니다. 일단 유스 케이스 인스턴스가 실행을 수행하면 유스 케이스 인스턴스는 멈추었던 위치에서 기본 유스 케이스의 실행을 재개합니다.

첨부 텍스트에 설명된 다이어그램

가본 유스 케이스 및 해당 확장을 따르는 유스 케이스 인스턴스.

확장 유스 케이스는 각각 기본 유스 케이스에 있는 해당 확장 위치에 관련된 둘 이상의 삽입 세그먼트를 가질 수 있습니다. 이런 경우, 유스 케이스 인스턴스는 기본 유스 케이스를 재개하고 확장 관계에 지정된 다음 확장 위치로 계속 진행합니다. 그 때 유스 케이스 인스턴스는 확장 유스 케이스의 다음 삽입 세그먼트를 실행합니다. 마지막 삽입 세그먼트가 실행될 때가지 이를 반복합니다. 첫 번째 확장 위치에서만 확장 관계의 조건을 점검함을 유념하십시오. 조건이 true일 경우, 유스 케이스 인스턴스는 모든 삽입 세그먼트를 수행해야 합니다.

첨부 텍스트에 설명된 다이어그램

기본 유스 케이스 및 확장 유스 케이스를 따르는 유스 케이스 인스턴스로서, 후자에는 두 개의 삽입 세그먼트가 있습니다.

확장 관계의 다양성은 발생할 수 있는 전체 확장의 반복 횟수를 제한합니다. 이것은 단지 하나의 삽입 세그먼트가 아니라 반복(및 다양성에 의해 제한)되는 전체 확장임을 유념하십시오.

확장 관계 문서화 페이지 맨 위

기본 유스 케이스의 속성과 관련하여 확장 조건을 기술하십시오. 확장을 항상 실행하는 조건을 생략하도록 선택할 수도 있습니다.

각 확장 관계는 기본 유스 케이스에 확장 위치(하나 이상)에 대한 참조 목록을 갖고 있습니다. 확장 위치는 이름으로 참조됩니다. 확장 유스 케이스가 복수의 삽입 세그먼트를 갖고 있을 경우, 어떤 세그먼트가 어떤 확장 지점에 해당하는지를 지정해야 합니다. 확장 유스 케이스의 어떤 단계 또는 서브플로우가 각 삽입 세그먼트를 구성하는지도 지정해야 합니다.

예:

전화 시스템에서 전화걸기 유스 케이스는 추상적 유스 케이스인 통화자 ID 표시에 의해 확장될 수 있습니다. 이것은 수신 상대방으로부터 요청되었거나 요청되지 않았을 수 있는 선택사항 서비스(종종 "통화자 ID"라고 지칭)입니다. 통화자 ID 표시에서 전화걸기로의 확장 관계에 대한 설명은 다음과 같습니다.

조건: 수신측은 "통화자 ID" 서비스를 주문했어야 합니다.

확장 위치: ID 표시 - 전체 통화자 ID 표시 유스 케이스를 삽입하십시오.

확장 관계에 다양성을 부여할 수 있습니다. 다양성을 생략하면 다양성은 1이라고 가정합니다.

사용법 예 페이지 맨 위

다음과 같이 간단한 전화 시스템을 생각해 보십시오.

 

첨부 텍스트에 설명된 다이어그램

추상 유스 케이스인 회의 소집 전화걸기는 전화걸기 유스 케이스에 대한 확장입니다.

이 모델에서 익숙한 전화걸기 시스템을 간단한 표현한 기본 통화 시스템이 전화걸기 유스 케이스에 설명되어 있습니다. 단계별로 기본 이벤트 플로우의 개요를 살펴보면 다음과 같습니다.

  1. 통화자가 수화기를 듭니다.
  2. 시스템이 발신음을 제공합니다.
  3. 통화자가 숫자를 누릅니다.
  4. 시스템이 발신음을 중단합니다.
  5. 통화자가 나머지 숫자를 입력합니다.
  6. 시스템이 숫자를 분석하고 수신측의 네트워크 주소를 판별합니다.
  7. 시스템은 숫자를 분석하여 수신측이 있는 네트워크의 위치를 판별합니다.
  8. 그런 다음 시스템은 수신측에 대해 가상 회로를 설정할 수 있는지 여부를 판별합니다.
  9. 가상 회로를 설정할 수 있으면, 시스템은 수신측의 전화벨을 울리고 통화자의 전화에는 신호음을 제공합니다.
  10. 수신측이 전화를 받으면 시스템은 통화자의 전화에 신호음이 들리지 않게 하고 수신측에서 벨을 중단하며 가상 회로를 완료합니다.
  11. 시스템은 통화 시작 및 종료 시간, 통화자의 고객 정보를 기록하여 지불 청구 기록을 시작합니다.
  12. 통화는 일정 시간 계속됩니다. 통화자 또는 수신측이 통화를 중단하면 시스템은 통화 종료 시간을 기록하고 가상 회로를 지원하는 데 필요한 모든 자원을 해제합니다. 그러면 유스 케이스가 종료됩니다.

이 시스템에 통화자 또는 수신측이 써드 파티에 연결하여 통화를 할 수 있게 하는 기능을 추가하려면(종종 "회의 소집 전화걸기"라고 함) 이벤트 플로우에 작동을 추가해야 합니다. 한 가지 대안으로서 첫 번째로 고려해야 할 점은 직접 전화걸기에 차별을 두는 것입니다. 가이드라인: 유스 케이스에 설명된 대로 대안 플로우를 사용하여 이러한 차이점을 모델화할 수 있습니다. 이 솔루션은 추가된 기능이 원래 유스 케이스의 의미를 혼란스럽게 하거나 모호하게 하지 않는 대부분의 단순한 기능에 적용됩니다. 다른 대안은 기본 유스 케이스를 확장하는 회의 소집 전화걸기라고 하는 추상적 확장 유스 케이스로 차이점을 분리하는 것입니다.

전화걸기 유스 케이스에 다음과 같은 기능이 추가되었습니다.

확장 위치:
회의 소집 전화걸기
가 11단계 다음에 발생합니다.

확장 유스 케이스인 회의 소집 전화걸기는 다음과 같이 설명될 수 있습니다.

회의 소집 전화걸기 유스 케이스
이 유스 케이스는 전화걸기를 확장한 것입니다.   이는 확장 위치 회의 소집에 삽입됩니다.
기본 플로우:
1. 통화자가 끊기, 링크 또는 플래시 단추의 기능을 약화시킵니다.
2. 시스템은 수신확인을 위해 세 번의 짧은 발신음을 냅니다.
3..12.<이 단계는 기본 유스 케이스의 3..12단계와 동일합니다>
13. 통화자는 전화걸기 유스 케이스에서 수신측에 다시 연결됩니다.

기본 유스 케이스의 3..12단계와의 공통점은 바잠직하지 못합니다.   이를 해결할 한 가지 방법은 포함 유스 케이스에 따라 공통 부분을 추출하는 것입니다 (가이드라인: 포함 관계 참조).



Rational Unified Process   2003.06.15