본문 바로가기
기타

Use Case Diagram...(UML)

by oncerun 2021. 5. 14.
반응형

 

유스 케이스 다이어그램은 사용자, 그리고 사용자가 수반한 다른 유스 케이스 간의 관계를 보여주는 사용자-시스템 간 상호작용의 표현이다. 

유스 케이스 다이어그램은 각기 다른 종류의 시스템 사용자와 각기 다른 유스 케이스를 식별할 수 있으며, 다른 유형의 다이어그램이 수반되기도 한다. -위키백과-

 

 

개발자는 절대 코드로 기능구현만 하지 않는다. 사용자 혹은 고객의 문제를 해결하기 위하여 불편함을 찾고 해당 불편함을 개선하기 위해 관련 지식을 공부하고, 정해진 사양 안 해서 개발환경을 세팅하는 일련의 준비작업이 필요하다.

준비작업 중에 비지니스의 이해를 위해 또는 각 사용자마다 행위를 정리하기 위해 모델링을 한다.

 

모든 개발은 바로 코드를 치는 것이 아니고 어떤 개발방법론이든  다음과 같은 과정을 거친다.

 

분석, 설계, 구현, 테스트, 배포

 

이 과정에서 프로그램 언어를 이용하여 개발하는 단계는 구현 뿐이다. 이러한 구현 전 단계에서는 모델링 즉 비즈니스의 이해를 돕는 일련의 과정이 필요하다.

 

모델링을 하기위해 우리는 통합 모델링 언어를 사용하는데 그것이 바로 UML이다.

 

UML(Unified Modeling Language)

 

통합 모델링 언어 소프트웨어 공학에서 사용되는 표준화된 범용 모델링 언어이다. 이 표준은 UML을 고안한 객체 관리 그룹에서 관리하고 있다.

UML은 소프트웨어 집약 시스템의 시각적 모델을 만들기 위한 도안 표기법을 포함한다.

 

즉 우리가 만들고자 하는 것을 그래픽 하게 표현할 수 있는 시각적 언어를 의미하며 UML은 시스템의 구조와 동작을 표현하는 여러 개의 요소로 이루어져 있다.

https://www.omg.org/spec/

 

The OMG® Specifications Catalog

Quick Search for Specifications, Categories and Keywords Specifications Updated Recently New or revised specifications adopted during the past 6 months. The "acronym" link navigates to the latest version of the specification, this link changes whenever a n

www.omg.org

 

 

UML의 특징

가시화 언어

소프트웨어의 개념 모델을 시각적인 그래픽 형태로 작성한다. 표기법에 있어서는 Symbol에 명확한 정의가 존재하므로 개발자들 사이에서 원활한 의사소통이 가능하다. 예를 들어 유스 케이스는 행위자(액터)가 요구하여 시스템이 수행하는 일의 목표로 기호들이 정해져 있기 때문에 개발자가 시각적으로 수행 기능과 요구를 확인하고 공유할 수 있다.

명세화 언어

명세화란 정확하고 명백하며, 완전한 모델을 만드는 것을 의미한다. UML은 소프트웨어 개발과정인 분석, 설계, 구현 단계의 각과정에서 필요한 모델을 명세화할 수 있는 언어이다. 개발 단계 초기부터 어떤 input값이 들어갈 것인지, 어떤 Process를 통해서 output이 나올 것인지를 모두 확실하게 모델링하여 개발 단계에 들어갔을 때 이 명세서를 따라 그대로 개발할 수 있도록 한다.

구축 언어

UML로 명세화된 설계모델은 Java, C++, VB 등 다양한 언어의 소스코드로 변환하여 구축할 수 있다. 반대로 구축되어 있는 소스코드를 UML로 변환하여 분석하는 Reverse도 가능하다. 가시화, 명세화된 모델을 실제로 동작하는 소스코드로 변환하여 구축하는 것이다.

문서화 언어

시스템 아키텍처와 이에 대한 모든 상세 내역에 대한 문서화를 다루며, 요구사항을 표현하고 시스템을 테스트하는 언어도 제공한다. 일련의 과정을 문서로 남겨 계속 유지 보수한다.

UML의 요소

  • Thing
    • Structual Thing
    • Behavioral Thing
    • Grouping Thing
    • Annotation Thing
  • Relationships
    • Dependency Relationship
    • Generalization Relationship
    • Association Relationship
    • Aggregation Relationship
    • Composition Relationship
    • Realization Relationship
  • Diagrams
    • Class Diagram
    • Object Diagram
    • Use Case Diagram
    • Sequence Diagram
    • Collaboration Diagram
    • State Diagram
    • Activity Diagram
    • Component Diagram
    • Deployment Diagram

 

상위 개념인 UML에 알아봤다면 Use Case를 알아보자

 

 

 

우선 나는 StarUML을 사용하는데 여러 가지 다이어그램을 작성하기 쉽고 상세한 설명이 존재하여 이 UML툴을 사용한다. 또한 무료라는 점이 좋다. 하지만 델파이 기반이기 때문에 여러 호환성은 부족하기에 공부를 위해 사용하는 것이 좋다.

https://staruml.io/

 

StarUML

UML 2 Compatible with UML 2.x standard metamodel and diagrams: Class, Object, Use Case, Component, Deployment, Composite Structure, Sequence, Communication, Statechart, Activity, Timing, Interaction Overflow, Information Flow and Profile Diagram. SysML Sup

staruml.io

StarUML 한글판 사용법

http://staruml.sourceforge.net/docs/user-guide(ko)/ch05_1.html 

 

StarUML 5.0 사용자 가이드 - UseCase 다이어그램 모델링하기

UseCase 다이어그램 모델링하기 유스케이스 다이어그램에서 편집할 수 있는 요소들은 다음과 같습니다. Actor UseCase Association Derected Association Generalization Dependency Include Extend System Boundary Package Actor

staruml.sourceforge.net

 

 

유스 케이스 요소는 Actor(행위자), Use Case, Use Case Modeling이 있습니다.

 

Actor는 시스템과 상호작용하는 주체로, 시스템을 작동시키거나 시스템의 정보를 입력하고 출력하는 역할을 수행합니다. 물론 Actor가 반드시 사람을 필요는 없습니다. 사용자, 운영자, 외부 시스템, 컴퓨터 프로그램 등 유즈 케이스에 따라서 다양한 Actor가 가능합니다. 또한 역할에 따라 한 사람의 시스템 사용자가 다양한 Actor로 묘사될 수 있습니다.

 

Use Case사용자가 인식할 수 있는 기능 단위를 말한다.

 

Use Case Modeling은 유스 케이스 다이어그램으로 나타낼 수 있으며 UML 구성요소 중 일부이다.

 

유스 케이스를 먼저 작성하는데 이때 시스템을 개발하는 사람보다 사용자들 입장에서 이해하기 쉽게 작성되어야 합니다. 이러한 자료는 비개발자들을 대상으로 발표할 때도 참고자료로 들어가기도 하기 때문입니다.

 

우선 Actor는 다음과 같은 모습을 가지고 있습니다.

시스템 사용자로 구별할 수 있습니다. 이제 평가 시스템을 만든다고 생각하고 예시를 구성해 봅니다. 사실 유스 케이스 다이어그램은 기호는 통일되었지만 만드는 방법은 회사마다 다르기 때문에 각각 규정에 맞게 사용하시면 됩니다.

 

이 평가 시스템에서 액터인 User는 평가를 하기 위해 평가지를 작성할 것이고 제출하여 상급자에게 승인 요청을 한다고 하겠습니다. 또 관리자가 먼저 평가 차수를 만들고 이번 차수에 해당될 대상자를 선별한 사람만 평가를 볼 수 있다고 제약을 걸겠습니다.

 

 

다음과 같이 사용자와 유저 액터를 만들고 시스템이 가지고 있는 기능을 타원으로 나열했습니다.

이 타원은 Use Case라고 불리며 

Actor가 사용하는 기능 또는 시스템이 가지고 있는 기능이라고 생각하시면 됩니다. 유즈 케이스를 정의할 때는 주요한 사용 흐름(기능)에 초점을 맞추어 먼저 작성하고, 예외적인 케이스들을 나중에 정의하는 것이 좋습니다. 주로 발생하는 일(Case)을 중점으로 작성하고 그보다 빈도가 낮은, 자주 일어나지 않는 일(Case)은 나중으로 미루는 것이죠. 하나의 유즈 케이스는 하나의 기능을 표현하기 때문에 시나리오나 스토리와는 다르게 단편적으로 작성하는 것이 좋습니다.

 

점선은 의존관계를 나타 냅니다. 생성과 선정 평가지 작성 순으로 의존을 표현했습니다. 사실 정해진 규약은 없습니다. 빠르고 쉽게  사용자들이 이해할 수 있도록 작성할 수 있으면 될 것입니다.

 

평가과 같이 시스템을 구분하기 위한 사각형 구역을 시스템 경계라고 합니다. 시스템의 내부는 사각형 안쪽 영역이고 시스템의 외부는 사각형의 바깥쪽 영역으로 구분하여 작성할 수 있습니다.

 

이제 StarUML을 설치 후 간단한 한글판 사용방법을 보고 팀원들에게 해당 시스템을 이용하는 역할 별 기능을 쉽게 설명할 수 있는 지식을 얻었으면 실천하는 것이 좋습니다 ^^

 

 

 

참고 :

https://ko.wikipedia.org/wiki/%EC%9C%A0%EC%8A%A4_%EC%BC%80%EC%9D%B4%EC%8A%A4_%EB%8B%A4%EC%9D%B4%EC%96%B4%EA%B7%B8%EB%9E%A8

https://velog.io/@hanblueblue/UML-UML-%EA% B8% B0% EC% B4%88

https://www.omg.org/spec/

https://ko.wikipedia.org/wiki/%EC%9C%A0%EC%8A%A4_%EC%BC%80%EC%9D%B4%EC%8A%A4

 

반응형

'기타' 카테고리의 다른 글

정규표현식  (0) 2021.11.28
신용카드 결제구조  (0) 2021.07.21
지능형 엣지 컴퓨팅  (0) 2021.04.13
쓰레드  (0) 2021.03.16
Web의 발전과 상식  (0) 2021.02.10

댓글