Programming/Software Design2007. 10. 13. 20:37
유스케이스란?

 유스케이스는 강력한 요구사항 모델링 기법이다. 유스케이스는 시스템이 할 일(시스템 요구사항)을 파악하고, 탐구하고, 그리고 문서화화는 표준 방법론을 제공한다. 유스케이스는 근본적으로 합성하는 기술이다. 기능 요구사항들을 이해하고, 이것들을 적당히 그룹으로 묶고, 다시 이들을 작은 기능별 패키지로 나누는 전통적인 분석적 사고방식은 시스템 개발에서는 문제 자체를 이해하기 힘들게 만드는 경향이 있다. 유스케이스를 작성하는 목적은 시스템과 그 행동에 대해서 모든 사람이 같은 개념 모델을 갖도록 보장하는 것이다.


유스케이스 모델 기본 구성 요소

1) 액터
 - 시스템과 교류하는 사람이나 사물을 말한다.
2) 유스케이스
 - 시스템이 액터를 위해서 수행하는 가치 있는 일을 말한다.
3) 유스케이스 설명
 - 기본흐름: 사건 흐름에서 가장 중요한 부분으로서 유스케이스 목적을 달성하는 정상적인 방법을설명한다.
 - 대안흐름: 기본 흐름에 더하여 다양하고 변칙적인, 그리고 예외적인 경로들을 설명한다.
 - 서브흐름: 원래 흐름 중에서 따로 떼어낸 것으로서 복잡한 사건 흐름을 읽기 쉽게 만든다. 이는 이름을 붙인 독자적인 미니 흐름으로서, 원래 흐름 자리에는 서브 흐름의 이름을 참조할 수 있도록 삽입하는 것으로 대신한다.
 - 선조건: 유스케이스를 시작할 당시 시스템과 액터의 상태를 표현
 - 후조건: 유스케이스를 종료할때 시스템 상태를 표현


지원 산출물

1) 용어 사전과 도메인 모델
2) 부속 명세서: 유스케이스 모델에 담기에는 적당하지 않은 요구사항들을 파악하는 산출물이다. 주로 기능적이면서 이야기체로 작성하는 유스케이스 사건 흐름으로 파악하는 요구사항과, 비기능적이면서 선언문 형태로 작성하는 부속 명세서와 특수 요구사항으로 파악하는 요구사항 양자간에 균형을 잃지 말아야 한다.


비전 세우기

 비전 문서를 통하여 개발하려는 시스템에 대한 전체적인 개요를 독자에게 제공하고 시스템을 만들게 된 동기를 설명한다. 비전 문서의 목적은 이해 당사자 요구, 목표와 목적, 목표 시장, 사용자 환경, 목표 플랫폼, 그리고 제품의 특징을 파악하자는 것이다. 비전은 프로젝트와 관련하여 '왜'와 '무엇'에 대하여 대화할 수 있게 해 준다.
 
 비전 문서는 다음 사항을 제공한다.

- 더 상세한 기술 요구사항에 대한 고수준(때로는 계약 수준) 근거
- 프로젝트 승인 공정의 입력(따라서 비즈니스 타당성 분석과 밀접한 관계)
- 초기 고객 피드백을 얻는 도구
- 시스템 특징 우선 순위와 제품 범위를 결정하는 수단

비전 문서에 포함되는 섹션
- 포지셔닝: 비즈니스 기회, 문제 기술서, 시장 구성, 사용자 환경
- 이해 당사자와 사용자
- 이해 당사자 요구와 사용자 요구
- 제품 개요
- 시스템 특징
- 제품 요구사항


액터 찾기

 액터를 찾을때 다음과 같은 사항을 고려한다.
1) 일차 액터를 먼저 찾는다.
2) 특수에서 일반으로 작업한다.
3) 지원하는 액터를 찾는다.
4) 모든 기존 요구사항 정보를 고려한다.
5) 사람만 액터가 되는 것은 아니다.
6) 시스템 경계에 초점을 맞춘다.
7) 유스케이스 모델링은 설계가 아니다.
8) 액터가 사용하는 장치와 액터 자신을 혼동하지 않는다.
9) 액터를 찾기 어려우면 유스케이스부터 시작한다.
10) 우선 친숙한 것에 주목한다.
11) 액터와 유스케이스 집합을 동시에 발전 시켜 나간다.

아래는 액터를 찾을 때 할 수 있는 질문들을 요약한 것이다.
- 누가 시스템을 사용하는가?
- 누가, 혹은 무엇이 정보를 제공하고, 사용하고, 혹은 삭제하는가?
- 누가 특정 요구사항이나 기능 영역에 관심을 보이는가?
- 누가 유스케이스를 실행하는데 참여하는가?
- 어떤 다른 시스템이 시스템과 교류할 필요가 있는가?
- 어떤 외부 자원을 시스템이 요구하는가?
- 누가, 혹은 무엇이 시스템을 시작하는가?
- 누가 시스템을 지원하고 유지하는가?


유스케이스 찾기

유스케이스와 액터는 서로 긴밀하게 연결되어 있다고 생각해야 한다. 시스템은 액터에게 가치를 제공하기 위하여 존재하고, 유스케이스는 시스템이 그 가치를 어떻게 제공하는 지 설명한다.
1) 액터의 목적을 식별하는 것부터 시작한다.
2) 시스템과 사용자의 정보 요구를 고려한다.
3) 같은 내용이 반복되는 현상에 신경쓰지 않는다(적어도 처음에는)
4) 유스케이스를 '기능'과 혼동하지 않는다.
5) 가치에 초점을 맞춘다.
6) 시스템 비전에서 유스케이스를 찾아낸다.
7) 지원 유스케이스와 운영 유스케이스도 잊지 않는다.
8) 액터와 부속 명세서와 함께 유스케이스 집합을 진화 시킨다.

 아래는 유스케이스를 식별할 때 물어볼 수 있는 질문들을 요약한 것이다
- 시스템이 식별한 각 액터에게 제공해야 할 목적은 무엇인가?
- 액터가 시스템에게 알려야 할 갑작스러운 외부 변화가 있는가?
- 식별한 유스케이스들을 가지고 모든 시스템 특징을 수행할 수 있는가?
- 어떤 유스케이스가 시스템을 시작, 종료, 조정 지원, 유지할 수 있는가?
- 시스템에서 수정하거나 생성할 정보는 무엇인가?
- 시스템이 알아야 할 사건에는 어떤 것들이 있나?
- 시스템이 추적해서 액터에게 알려야 할 사건에는 어떤 것들이 있나?
- 유스케이스 모델이 모든 이해 당사자의 이해를 대변하는가?


흔히 발생하는 문제 다루기.

1) 기능 분해와 데이터 흐름 모델링은 피한다.
- 가치를 제공하기 위하여 유스케이스들을 연결해야 한다면, 아마도 유스케이스들이 기능으로 분해되었을 가능성이 많다.
2) 초점을 유지한다.
3) 분석이 아니라 합성한다.
4) 시스템 밖에서 일어나는 일은 설명하지 않는다.
5) 그림만 그리지 않는다.
- 유스케이스의 진정한 가치는 더 내용이 풍부한 유스케이스 설명에 있다.
6) 비즈니스 유스케이스와 시스템 유스케이스를 섞지 않는다.
- 설명하려고 하는것이 비즈니스인지, 아니면 시스템인지 분명하게 구분해야 하며 일관성 있게 추구해야 한다.


Posted by lotus

댓글을 달아 주세요

  1. 책에 있는 내용을 옮겨놨는데 지금 보니 무슨말인지 모르겠네

    2012.03.30 22:34 신고 [ ADDR : EDIT/ DEL : REPLY ]