본문 바로가기
UML

[펌] [안영회의 UML 강좌9] - Object Interaction(1)

by 사우람 2010. 7. 12.
##########0*0 유즈케이스 리얼리제이션(Use Case Realization)
2 .0 유즈케이스 리얼리제이션 다이어그램(Use Case Realization Diagr
3 .0 시나리오
##########1*
##########2*
유즈케이스는 시스템의 외부에서 바라본 관점을 반영합니다. 시스템의 가치는 결국 이를 사용하는 사람에 의해 결정되거나 혹은 관련된 시스템이 있는 경우, 얼마나 잘 연동 되는지에 따라서 시스템을 평가할 수 있을 것입니다. 아무리 잘 만들었다고 하더라도 사용자가 불편하면 결코 좋은 시스템이라고 말할 수 없겠죠. 수백억을 들여 만든 영화도 관객의 시선을 끌지 못한다면 실패한 영화로 보여지기 마련입니다.

강좌의 서두에서도 유즈케이스의 중요성을 재차 언급했던 것으로 기억합니다. 유즈케이스가 시스템 개발 과정에서 주도적인 역할을 하는 경우가 일반적이라 할 수 있습니다. 그런 맥락에서 시스템의 주요 기능, 시스템을 구성하는 객체와 클래스, 또 객체간의 상호작용을 뽑아내는 데에도 유즈케이스를 출발점으로 사용하는 것은 좋은 방안입니다.

그러나, 아무리 유즈케이스를 잘 뽑아내고, 완벽하게 사용자의 요구를 분석했다고 하더라도 실제로 구현되지 않으면 아무 소용이 없겠죠. 설계도가 좋다고 무조건 훌륭한 건물이 보장되는 것은 아니듯이 말입니다. 이렇게 유즈케이스를 시스템으로 만들어 나가는 첫 단계가 ‘Use Case Realization’입니다. 유즈케이스 실현 혹은 유즈케이스 실체화 등으로 번역할 수 있겠네요.(이하에서는 ‘유즈케이스 리얼리제이션’으로 표기 하도록 하겠습니다.)

유스케이스 리얼리제이션의 UML 표기법은 그림 9-1과 같이 점선으로 된 타원입니다.

##########3*
그림 9-1. 유즈케이스 리얼리제이션의 UML 표기법


Rose에서 유즈케이스 리얼리제이션을 만들어 볼까요. 유즈케이스를 만들 때와 방법은 동일합니다. 다른 것은 유즈케이스는 Use Case View에서 오른쪽 마우스 클릭을 하여 만들지만, 유즈케이스 리얼리제이션은 클래스와 같이 Logical View에서 오른쪽 마우스 클릭을 해서 만들 수 있습니다.

이렇게 만들어진 유즈케이스를 더블 클릭하여 스페시퍼케이션 윈도우를 띄운 다음 스테레오 타입에서 use-case realization을 선택합니다.

##########4*
그림 9-2. Use Case Realization 스테레오타입


이를 적용하면 브라우저의 유즈케이스도 점선형태의 타원으로 나타나게 됩니다. 그림 9-3은 유즈케이스 리얼리제이션의 스테레오타입을 적용한 후의 브라우저의 모습입니다.

##########5*
그림 9-3. 브라우저에 나타난 유즈케이스 리얼리제이션


 

1 .0 유즈케이스 리얼리제이션(Use Case Realization)
##########6*0 유즈케이스 리얼리제이션 다이어그램(Use Case Realization Diagr
3 .0 시나리오
##########7*
##########8*
유즈케이스 리얼리제이션과 마찬가지로 유즈케이스 리얼리제이션 다이어그램도 Logical View에서 오른쪽 마우스 클릭한 후 New – Use Case Diagram 메뉴를 이용하여 만들 수 있습니다. 그림 9-4는 유즈케이스 리얼리제이션 다이어그램의 예입니다.

##########9*
그림 9-4. 유즈케이스 리얼리제이션 다이어그램


 

1 .0 유즈케이스 리얼리제이션(Use Case Realization)
2 .0 유즈케이스 리얼리제이션 다이어그램(Use Case Realization Diagr
##########10*0 시나리오
##########11*
##########12*
유즈케이스 작성 후에 각 유즈케이스에 대한 시나리오를 도출합니다. 코리아인터넷닷컴의 UML 채널을 예로 들어 볼까요? 우선 액터가 회원 혹은 독자님들인 경우, “강좌 읽기”, “게시판에 글 쓰기”, “답변하기” 등의 유즈케이스를 생각할 수 있죠. 강좌 사이트를 관리하는 관리자 측면에서 보면 “강좌 올리기”, “강좌 수정하기” 등의 유즈케이스를 생각해 볼 수 있습니다.

이러한 각각의 유즈케이스는 하나 혹은 그 이상의 시나리오를 만들어냅니다. 시나리오는 영화 시나리오와 유사한 것입니다. 액터와 시스템 사이에서 어떤 일들이 어떠한 순서를 일어나는가를 기술하는 것입니다.

유즈케이스에 대한 명세서를 만들었다고, 이 명세서가 시나리오 작성에 도움이 될 것입니다. 시나리오의 예를 들어볼까요? 가령, “강좌 읽기”의 경우를 생각해 봅시다. 첫째로, UML 채널을 보기 위한 메뉴를 선택하겠죠. 그러면 강좌의 리스트를 액터(회원 혹은 독자)에게 보여줍니다. 다음으로 독자가 원하는 컬럼 제목을 선택합니다. 그렇게 하면 글이 화면에 보여지게 되는 것이죠.

이와 같은 시나리오를 위에 제가 서술한 것처럼 늘여 쓰면 보기에 무척 지루합니다. 그래서 다음과 같이 순번을 매기는 방법으로 명확하게 표현할 수 있습니다.

“강좌 읽기”의 시나리오

  1. 액터가 UML 채널 보기 메뉴를 선택한다.
  2. 화면에 강좌 목록이 나열된다.
  3. 액터가 원하는 강좌의 제목을 선택한다.
  4. 화면에 선택된 글이 보여진다.


위의 시나리오는 “강좌 읽기” 유즈케이스에 있어서 주가 되는 메인 시나리오입니다. 그러나, 수많은 예외 상황이 있을 수 있습니다. 또한, 액터의 선택에 따라 분기가 이뤄지는 지점도 있을 것입니다. 다음의 경우를 봅시다.

“강좌 읽기”의 시나리오

  1. 액터가 UML 채널 보기 메뉴를 선택한다.
  2. 화면에 강좌에 대한 소개와 메뉴가 보여진다.
  3. 액터가 원하는 메뉴를 선택한다.
    1. 액터가 강좌 메뉴를 선택한 경우
      1. 화면에 강좌 목록이 보여진다.
      2. 액터가 원하는 강좌를 선택한다.
      3. 선택된 강좌가 보여진다.

    2. 액터가 게시판 메뉴를 선택한 경우 …
    3. 액터가 다른 채널을 선택한 경우


위의 경우처럼 단계를 구분하여 표현할 수 있습니다. 단계가 너무 깊어져서 보기 어려우면 새로운 시나리오로 취급할 수도 있습니다. 또한, 오류에 대한 것도 고려해야 하겠습니다.

그러나, 시나리오가 복잡해질 경우 글보다는 그림을 이용하는 것이 이해하기에 수월합니다. 이러한 이유로 시나리오를 표기하기 위한 다이어그램이 존재합니다.

시퀀스 다이어그램(Sequence Diagram)과 코레보레이션 다이어그램(Collaboration Diagram)이 있습니다. 코레보레이션 다이어그램 보다는 협력 다이어그램이라는 표현이 더 자연스러운 듯도 하네요. 그러나, 일관성 유지를 위해서 용어는 가능한 원어를 그대로 쓰도록 하겠습니다.

Rose에서는 유즈케이스 리얼리제이션을 만든 후에 이들 다이어그램을 작성할 수 있습니다. 또한, 이들 두 다이어그램을 모두 작성해야 하는 것이 아니라, 하나만 작성하면 나머지는 Rose가 자동 생성해 줍니다.