본문 바로가기
major

유스케이스(use case)

by epro 2007. 7. 18.

어제(7/17) 공휴일이고 해서 일찍이 사두고 보지 못했던 Head First Object-Oriented Analysis & Design을 꺼내보았습니다.
막상 읽어보니 생각했던 것보다 내용이 더 좋았습니다.
가려운 곳을 긁어주는 느낌이랄까?
더욱이, 다음 달부터 본격적으로 시작할 프로젝트에서 XP방법론을 도입해서 진행해보자는 의견이 있어서 어떻게 진행해야 할까..고민하고 있었는데, 마침 이 책이 많은 도움이 될 것 같습니다.

책에서 소개한 내용 중, 이번에 진행할 프로젝트의 설계단계에서 '유스케이스'를 써보면 좋을 것 같아 팀원들에게 소개하기 위해 내용을 정리해봅니다.


유스케이스 소개

유스케이스에 대해서 알아보기 전에 먼저, "쉬운 3단계로 위대한 소프트웨어 만들기"라는 방법을 알아봅시다.
OOA&D에 근간을 둔 내용이라고 하는데요.
내용은 다음과 같습니다.

1.쉬운 3단계로 위대한 소프트웨어 만들기

1. 여러분의 소프트웨어가 고객이 원하는 기능을 하도록 하세요.
2. 객체지향의 기본 원리를 적용해서 소프트웨어를 유연하게 하세요.
3. 유지보수와 재사용이 쉬운 디자인을 위해 노력하세요.

이 순서대로하면 우리는 위대한 소프트웨어를 만들 수 있게됩니다!!

2.'위대한 소프트웨어'를 만드는 3단계

  • 1단계는, 고객에 초점을 맞춥니다.
    먼저 고객이 원하는 기능이 잘 수행되게 만듭니다.
    핵심은! 요구사항을 잘 수집하고 분석하는 것입니다. 여기에서 우린 "사용자 스토리"와 "유스케이스"를 적용해 볼 예정입니다.
    사용자 스토리는 고객의 요구사항을 수집합니다.
    유스케이스는 사용자 스토리를 기본으로 해서 프로세스가 어떻게 흘러갈 것인지를 이야기하는데 쓰입니다.
  • 2단계는, 중복코드를 없애고, 모든 객체들이 잘 설계되도록 확인하는 단계이구요.
  • 3단계는, 디자인 패턴과 원리를 적용해 재사용 가능하게 소프트웨어를 잘 다듬는 단계인데요..

우리가 알아볼 것은 유스케이스이니까.. 너무 깊게 들어가지 말고.. 이제 유스케이스가 어떻게 생겼는지 알아봅시다.
그림이 가장 이해하기 쉽겠죠?

3-1.요구사항 리스트

사용자 삽입 이미지

그림1. 요구 사항 리스트

이 그림은 요구사항 리스트입니다. 가장 먼저 고객으로 부터 어떤 프로세스를 원하는지 요구사항을 듣고 요구사항 리스트를 만들게 됩니다.
이 과정을 통해 시스템이 무엇을 해야 하는지 이해할 수 있게 됩니다. 우리는 "사용자 스토리"를 통해 요구사항 리스트를 얻기로 했습니다. (팀원들과 협의하여 이번 프로젝트에서 XP방법론 중의 하나인 '사용자 스토리'를 써보기로 합의했습니다.)




3-2.유스케이스(use case)

사용자 삽입 이미지





























그림2. 유스케이스

요구사항 리스트 작성이 끝나면 이제, 유스케이스를 작성하게 됩니다.
유스케이스는 시스템이 할 일에 관한 이야기를 하는 거라고 생각하면 될 것 같습니다.
유스케이스에는 요구사항이 모두 반영되도록 작성되어야 합니다.

그림에 보면 Main Path(주경로)와 Alternate Paths(대체 경로)가 등장하는데요.
주경로는 일명 Happy Path라고도 불립니다. 모든 일이 순조롭게 진행되는 case로 대부분은 main path로 프로세스가 진행될 것입니다.

그림의 왼쪽에는 대체경로가 정리되어 있는데요. 뭔가 잘못되면 이 경로를 이용하게 됩니다.
예로, 이용자가 A라는 회원제에 가입하려고 하는데, 이미 A회원제에 가입되어 있다면 이건 대체 경로에서 처리하게 되겠죠.

4.유스케이스의 장점

- 유스케이스를 만들면, 프로세스가 할 일을 쉽게 파악할 수 있게 됩니다.
- 뭔가 잘못됬을 경우, 잘못된 부분을 파악하기 쉽습니다.
- 프로세스에 변경이 필요할 경우에도 어느 부분을 고쳐야 할지 알아보기 쉽게 됩니다.
- 유스케이스를 그리면서 고객이 미처 얘기하지 못했던 부분까지 생각해 낼 수 있습니다.
- 유스케이스를 이용해서 설계를 하는 방법으로, 유스케이스에 등장하는 모든 명사와 동사를 파악해 보는 것입니다. 대부분의 명사들은 CLASS로 표현될 수 있습니다. 그리고 동사들은 METHOD로 표현될 수 있습니다.

5.고민할 것들

유스케이스를 만들면 분명 장점이 있을 것 같긴한데, 처음에 이걸 도입하려고 하면 문제점이나 고민거리들이 있을 것 같습니다.

  • 유스케이스 범위를 어떻게 나눌까요?
  • 복잡한 프로세스는 유스케이스도 복잡할텐데 부담스럽지 않을까요?
  • ... (etc)

6.conclusion

유스케이스 부분에 대해서만 간략하게 정리해보았습니다. 책에는 실제로 더 좋은 내용이 많이 담겨져 있습니다. 시간이 되신다면 책을 꼭 읽어보시길 강추합니다.

7.Reference

HeadFirst Object-Oriented Analysis & Design
Head First Labs


댓글