티스토리 뷰

도메인 분석, 유스케이스 다이어그램 같은 새로운 도구들을 배워보자.

큰 문제는 어떻게 바라보는가에 해답이 있다.

큰 문제는 여러개의 기능별 조각들로 나누고 각 조각들을 개별적으로 풀어감으로써 해결할 수 있다.

여러분이 이미 알고 있는 것들...

  • 변하는 것을 캡슐화하여 프로그램을 더 유연하고 변경하기 쉽게 만든다.
  • 좋은 요구 사항을 얻는 가장 좋은 방법은 시스템이 해야 할일을 이해 하는 것이다.
  • 구현에 맞추서 코딩하는 것보다 인터페이스에 맞추어 코딩하면 소프트웨어의 확장이 더 쉬워진다.
  • 위대한 소프트웨어는 변경과 확장이 쉽고 고객이 원하는 일을 한다.
  • 분석은 시스템이 실세계에서 잘 동작하도록 만드는데 도움이 된다.

특징(feature)들 찾아내기

특징은 시스템이 해야 할 일에 대해 추상적으로 설명한 것이다. 고객과 대화를 통해서 시스템의 특징들을 얻어낸다. 대개의 경우, 하나의 특징을 얻고 그 특징을 만족시키기 위한 여러개의 요구사항들이 나온다. 그래서 시스템의 특징들을 알아낸 것은 요구사항을 얻는 좋은 방법이다. 커다란 프로젝트인 경우에는 시스템의 특징부터 시작하는 것이 도움이 된다.

특징에서 요구사항 찾기

고객으로부터 시스템의 특징들을 얻어내고 나서, 그 특징을 구현하기 위해 필요한 요구사항들을 알아내자. 예를 들어, 고객으로부터 '다양한 타입의 지형을 지원한다.'는 특징을 얻었다면, 개발자들은 특징에 맞춰서 '타일은 지형의 타입과 관련이 있다', '각 지형은 유닛들의 움직임에 영향을 주는 특성이 있다.'같은 요구사항들을 알아낼 수 있어야 한다.

특징과 요구사항의 차이점??

특징과 요구사항은 비슷한 점이 많아서 차이가 없을 때도 있다. 특징은 큰 개념의 요구 사항으로 생각하자. 그래서 특징은 여러개의 요구 사항을 구성될 수 있다는 차이가 있다. 중요한 것은 무엇부터 시작할지 막막할 때, 특히 규모가 큰 프로젝트에서 개발하는 시스템이 해결해야 할 고수준(high-level)의 일이 무엇인지 알기 위해 시스템의 특징(또는 요구 사항)들을 모을 수 있다는 것이다.

유스케이스는 개발 시스템 전체의 큰 그림을 보는데 도움이 되지 않는다.

유스케이스는 시스템이 해야 할 일에 대해 자세히 살펴 보는 것이다. 그러면 시스템 전체에 대한 큰 그림을 잊어버릴 수 있다는 것이다. 큰 시스템을 다룰 때에는, 세부 사항에 대한 내용은 늦추는 데까지 최대한 늦추는 것이 좋다. 커다란 내용을 다룰 때는 작은 내용에 너무 얽매이지 마세요.

유스케이스 다이어그램

유스케이스 다이어그램은 시스템이 할 모든 내용을 간단하고 읽기 쉬운 형태로 알려준다.

유스케이스 다이어그램은 여러분의 시스템에 대한 청사진이다.

유스케이스 다이어그램은 시스템 전체에 대한 큰 그림이다. 세부 내용에 신경쓰느라 시스템이 해야할 기본적인 기능을 잊지 않게 도와준다.

특징 리스트를 사용해서 유스케이스 다이어그램에 빠진 것이 없게 만들어라.

유스케이스 다이어그램을 가지고 고객으로부터 얻은 시스템의 모든 특징들을 다이어그램에 표시된 유스케이스들이 모두 표현하는지 확인하라. 유스케이스 다이어그램이 완전한지 알 수 있고 시스템을 만드는 일에 착수할 수 있다.

도메인 분석

게임 시스템에 대해 알아 낸 모든 내용을 우리의 고객이 이해하기 쉬운 방식으로 모아보자. 이것을 도메인이라고 한다. 특징리스트는 좋은 도메인이 될 수 있다. 고객과 함께 도메인을 분석하여서 고객이 정말로 원하는 시스템인지 확인할 수 있다. 도메인 분석을 통해서 고객이 정말로 원하는 시스템인지 확인할 수 있다.

크게 나누기

이제 큰 문제를 쪼개어 기능의 작은 조각들로 나눌 때이다. 특징 리스트와 유스케이스 다이어그램을 보고 어떤 모듈들을 사용하여 이러한 모든 기능을 해결할지, 그리고 어떻게 특징들과 요구사항들을 나눌지 알아내야 한다. 여러분의 모듈들이 시스템이 해야하는 모든 일들을 포함하는지 확인하자.

여러분의 고객이 정말 누군인지 잊지 말자.

시스템을 사용하는 고객이 누군지 제대로 알아야 필요 없는 부분을 만들지 않는데 도움이 된다.

디자인 패턴을 적용하기

우리의 프로그램을 이해하기 쉽고, 유지보수와 유연성이 높은 방식으로 구조화하는데 디자인 패턴은 큰 도움이 된다. 디자인 패턴은 디자인의 마지막 단계 중 하나이다. 디자인 패턴은 여기서 다루지 않는다.

큰 문제를 작은 문제로 바꾸는 방법

  1. 고객의 말에 귀를 기울이고 들어라. (특징 리스트 얻기)
  2. 우리가 시스템을 이해하는지 확인하라 (도메인 분석)
  3. 우리가 만드는 시스템에 대한 청사진을 그려라. (유스케이스 다이어그램)
  4. 큰 문제를 기능의 작은 조각들로 나누어라.
  5. 작은 문제들의 해결에 디자인 패턴을 적용하라.

핵심정리

  • 큰 문제를 바라보는 가장 좋은 방법은 작은 문제들의 집합으로 보는 것이다.
  • 작은 프로젝트들에서처럼 큰 프로젝트에서도 특징들과 요구 사항들을 모으는 것부터 시작하자.
  • 특징은 보통 시스템이 하는 큰일이지만 요구 사항과 같은 뜻으로도 사용될 수 있다.
  • 공통점과 차이점은 새로운 시스템을 여러분이 이미 알고 있는 것과 비교하여 바라보는 시각을 제공한다.
  • 유스케이스는 세부 사항에 중점을 두고 있다. 유스케이스 다이어그램은 큰 그림에 보다 중점을 두고 있다.
  • 유스케이스 다이어그램이 시스템의 모든 특징들을 설명해야 한다.
  • 도메인 분석은 시스템을 고객이 이해하는 용어를 사용하여 표현하는 것이다.
  • 액터는 시스템과 상호작용하지만 시스템의 일부가 아닌 외부에 있다.

'객체지향 설계 > Head First OOAD' 카테고리의 다른 글

7. 아키텍처  (0) 2018.09.05
5. 좋은 디자인 = 유연한 소프트웨어  (0) 2018.09.02
4. 분석  (0) 2018.09.02
3. 요구 사항 변경  (0) 2018.09.02
2. 요구 사항 수집  (0) 2018.09.02
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함