Notice
Recent Posts
Recent Comments
Link
관리 메뉴

Douglas' Space

Use-Case Pattern 본문

Development Diary/System Requirements Analysis Model

Use-Case Pattern

똘키아빠 2022. 7. 2. 11:50

1. 들어가면서

 

방법론의 장점은 어떤 패턴을 제공하므로써 개발하고자 하는 시스템에 이 패턴들을 적용하므로써 쉽게 시스템을 개발할 수 있도록 도와주는 역할을 할 수 있습니다. 그리고 더 나아가 패턴을 통해 기존의 분석하거나 설계한 내용의 문제점을 발견하게 하여 품질 좋은 시스템을 개발하는 가이드라인을 제시해 주기도 합니다. 

 

이러한 패턴은 분석, 설계 단계에서 모두 활용이 가능하며 이러한 패턴들을 잘 발견하고 이를 적용하는 노력이 매우 중요합니다. 이 패턴을 찾고 이를 적용하는 것이 Know-how라고 이야기할 수 있습니다.  이번 글에서는 기능모델인 유스케이스의 패턴에 대해 설명하고자 합니다.

 

2. State Update Pattern

 

시스템의 기능 중 가장 기본적인 패턴은 시스템에서 유지해야할 데이타, 즉 상태를 유지하는 기능입니다. 상태를 유지한다는 것은 유스케이스에서 데이터저장소를 생성하고, 수정하고, 삭제하는 것을 의미합니다. 또한 명확한 데이터저장소를 통해 모델링할 수 없으나 시스템 내부에 영향을 줄 수 있는 어떤 임시적인 반응을 의미할 수도 있습니다. 이러한 유스케이스의 가장 일반적인 것은 external event를 처리하기 위한 유스케이스일 것입니다. 이를 actor enabling state update pattern이라고 할 수 있으며 이러한 형태는 다음의 그림과 같을 것입니다. 

 

actor enabling state update pattern

위 그림에서 system internal은 명확한 데이터저장소로 모델링할 수는 없으나 시스템 내부에 어떤 반응을 모델링하기 위해 사용하는 개념입니다. (그러나 가능한 system internal로 모델링하는 것은 지양하는 것이 좋습니다.)

 

또한 시스템의 내부에서 발생하는 internal event를 처리하기 위한 state update pattern도 존재할 수 있습니다. 아래 그림은 이러한 유스케이스 패턴을 나타내고 있습니다.

 

system enabling state update pattern

system enabling state update pattern은 시스템의 논리적 모델 차원에서 잘 나타나지 않는 패턴으로 가능한 이러한 유스케이스가 존재할 때는 시스템 분석 및 시스템의 오류가 존재하지 않나 검증하는 것이 중요하다고 할 수 있습니다.

 

3. Response Pattern

 

response pattern은 시스템 외부에 반응을 출력하는 유스케이스 패턴으로 아래와 같은 3가지의 형태로가 존재할 수 있습니다. external event를 처리하기 위한 유스케이스와 internal 및 temporal event를 처리하기 위한 유스케이스 입니다.

actor/system enabling pattern

4. Composite Pattern

 

그 다음은 가장 일반적인 패턴으로 상태를 유지하고 외부로 반응을 보이는 패턴입니다. 즉 state update pattern과 response pattern의 조합이라고 할 수 있습니다. 

composite pattern

5. Data Conservation Rule

 

물리학의 에너지 보존법칙과 같은 물리적인 개념은 아니지만, 모든 시스템의 결함을 발견하는 아주 중요한 개념이라고 할 수 있는 것이 바로 data conservation rule(자료보존법칙)입니다.  모든 시스템은 입력-처리-출력의 형태로 모델링이 됩니다. 다시말해 결과가 있으면 원인이 반드시 있어야 한다는 논리와도 같다고 할 수 있습니다. garbage-in garbage-out이라는 말과도 상통하는 개념이라고 할 수 있습니다.

 

data conservation rule을 functional model 관점에서 정의한다면  "유스케이스의 출력은 유스케이스의 입력과 그 처리과정과 일치해야 한다"고 정의할 수 있습니다. 출력의 결과가 입력과 그 변환과정으로 설명이 될 수 없다면 시스템의 분석에 문제가 있거나 시스템이 결함을 갖고 있다는 것을 반증한다고도 말할 수 있습니다.  

 

아래 그림을 예를 들어 살펴보도록 하겠습니다. 

data conservation rule

이 유스케이스의 출력은 A+B입니다. 그러나 B라는 데이터는 외부로 부터 입력되지 않습니다. 그러나 B라는 데이터가 그림상으로는 데이터저장소에 유지되고 있습니다. 이 그림만으로는 다양한 해석이 가능합니다.  바로 이러한 해석을 확인하는 것이 시스템을 분석하거나 결함을 발견하는 것이라 말할 수 있습니다.

 

예를 들어 이 유스케이스의 시나리오를 보니 B라는 데이타를 생성하지 않는다면, 데이터저장소에서 B라는 데이터를 참조해야 합니다. 이는 데이터저장소의 존재하는 B는 다른 유스케이스가 생성 및 갱신하고 있다는 가정을 할 수 있습니다. (물론 이 부분도 이 그림으로는 확인할 수 없으니 이 부분에 대해 다른 유스케이스 다이어그램을 확인해야 할 것입니다.)  또는 시나리오를 보니 A와 C라는 데이터를 이용하여 새로운 B를 생성한다면 이 그림에는 문제가 없을 것입니다. 문제라고 할 때 의미는 분석을 하는 분석가의 오류로 발생할 수도 있고, 시스템 자체가 갖고 있는 문제일 수도 있습니다.

 

5. Black Hole과 White Hole

 

Data conservation rule로 파생된 중요한 개념중에 black hole과 white hole이 있습니다. black hole은 데이터를 입력만 받고 출력을 하지 않는 유스케이스나 참조가 되지 않고 생성, 수정, 삭제만 되는 데이타저장소를 일컬어 black hole이라고 합니다. 이 역시 분석가의 오류 일 수 있고 시스템이 갖고 있는 문제점일 수도 있습니다. white hole 반대로 데이터를 출력만 하는 유스케이스, 그리고 데이터가 참조만 되는 데이터저장소를 의미합니다.

Black Hole과 White Hole의 예

위 그림에서 초록으로 표현된 부분이 black hole과 white hole의 예를 나타내고 있습니다. 왼쪽 그림은 black hole 데이터장소 및 white hole 유스케이스를, 오른쪽 그림은 black hole 유스케이스와 white hole 데이터저장소를 각각 나타내고 있습니다.

'Development Diary > System Requirements Analysis Model' 카테고리의 다른 글

Non-functional requirements  (0) 2023.01.29
Interface Model  (0) 2022.07.02
Functional Model  (0) 2022.06.04
State Model  (0) 2022.05.08
Context Model  (0) 2022.05.05
Comments