Just Do IT!
개발을 위한 UML 다이어그램 - 유스케이스 다이어그램 본문
UML (Unified Modeling Lanuage)
소프트웨어 시스템을 개발하는 과정에서 산출물의 명세화, 시각화, 문서화할 때 사용하는 모델링 언어로써 하나의 시스템을 표현하기 위한 표준적인 방법을 제공하기 위해 만들어졌다.
UML 다이어그램의 종류
- 구조
- 클래스 다이어그램 (Class Diagram) : 클래스의 속성, 함수, 변수 타입들로 구성된 다이어그램
- 객체 다이어그램 (Object Diagram) : 클래스의 인스턴스, 값이 매겨진 행동을 가지고 있는 독립된 객체 정보를 표현하는 다이어그램
- 패키지 다이어그램 (Package Diagram) : UML의 다양한 모델 요소를 그룹화한 다이어그램
- 컴포넌트 다이어그램 (Component Diagram) : 컴포넌트끼리의 구조 관계를 표현한 다이어그램
- 배치 다이어그램 (Deployment Diagram) : 소프트웨어, 하드웨어 등을 포함한 시스템의 물리적 구조를 나타내는 다이어그램
- 행위
- Use Case Diagram : 사용자 관점에서 바라본 시스템을 표현한 다이어그램
- 활동 다이어그램 (Activity Diagram) : 여러 활동들이 순차, 병행 방식 등을 수행하는 상황을 표현한 다이어그램
- 상태 다이어그램 (State Diagram) : 하나의 객체가 다른 객체와의 상호 작용에 따라 어떻게 변화하는지 표현하는 다이어그램
- 순서 다이어그램 (Sequence Diagram) : 여러 대상간의 상호작용을 시간 순서에 따라 표현한 다이어그램
이 중에서 이번 프로젝트에서, 유즈케이스 다이어그램을 만들었고 이에 대해 정리해보고자 한다.
유즈케이스
시스템, 액터, 유스케이스, 관계 요소로 이루어져 있다.
시스템
- 명세화 하려는 프로그램을 뜻하며, 외부에서 액터가 바라보는 프로그램과 그 내부의 동작들을 하나의 영역으로 표시한다.
- 유스케이스들을 둘러싼 사각형 틀로 시스템 명칭을 안쪽 상단에 작성한다
- 사각형 범위 안에 있는 흐름은 시스템 안에서만 일어나고, 범위 밖에 있는 흐름은 시스템 안에서 일어나지 않는다.
액터
- 시스템과 상호작용(Interaction)을 하는 시스템 외부의 존재를 의미하며, 대게 시스템을 사용하는 사용자와, 시스템을 사용함으로서 상호작용되는 다른 시스템이 액터가 될 수 있다.
- 원과 선을 조합하여 사람 모양으로 표현
- 액터명은 위나 아래에 표시하며 액터의 역할을 작성한다.
actor는 두 가지 종류가 있다.
- Primary Actor
- 시스템을 사용하는 주체가 되는 액터
- 주로 사람 모형과 그 아래 사용자의 추상적인 내용을 표기
- 보통 시스템의 왼쪽에 표시
- (예) 회원, 비회원 등
- Secondary Actor
- Primary Actor가 이득을 얻기 위해 도움을 주는 액터
- 주로 외부 시스템을 의미하며 박스에 <<actor>> 를 적어 표현한다.
- 보통 시스템의 오른쪽에 표시
- ex) ATM 시스템에 대한 외부 인증 시스템, 은행 시스템 등
유즈케이스
- 시스템 내에서 일련의 작업을 수행하기 위한 행위들
- 하나의 유스케이스는 사용자가 인지할수 있는 하나의 단위 상호작용
- 타원형으로 표기, 이름은 수행하는 상호작용을 단순명료하게 기술
관계 요소
액터가 각 유스케이스와 상호작용하는 관계이다.
- 포함(Include)
- 하나의 유스케이스가 연관된 다른 유스케이스가 반드시 실행 되어야 동작하는 관계
- (예) 반드시 로그인을 해야 글 작성을 할 수 있다.
- 확장(Extend)
- 어떤 유스케이스가 부가적인 유스케이스를 실행 할 수 있는 관계
- (예) 글 리스트를 볼 수 있으면 글 디테일도 볼 수 있다.
- 일반화(Generalization)
- 추상적인 유스케이스 또는 액터를 그룹화 하는 표현
- 체적인 유스케이스에서 추상적인 유스케이스로 화살표를 그리고 실선으로 표기
- (예) 카테고리별로 관리
이러한 것들을 참고하여 유즈 케이스를 (팀원 분이) 만들었다.
유즈케이스에 대해 알고는 있었지만 이렇게 구성 요소에 대해 알고, 예제를 찾아본 적이 처음이라서 신기한 경험이었다.
지금 진행하고 있는 프로젝트의 유즈 케이스는 아래 링크를 통해 볼 수 있다.
유스케이스 다이어그램
DoDreamTeam 백엔드 리포지토리. Contribute to DoDreamTeam/Backend development by creating an account on GitHub.
github.com
이번에 kosta 최종 프로젝트를 진행하면서 새롭게 배우는 부분들이 꽤나 많다.
내일배움캠프에서 진행했던 프로젝트나, 동아리, 개인적으로 진행했던 사이드 프로젝트 모두 기획에 참여는 했지만
이렇게 꼼꼼히 기획을 하는 것이 처음이라 많이 배우고 재밌기도 하다.
기획안을 쓰고, 피그마로 와이어 프레임을 그리는 건 이전에도 했던 과정이다.
그런데 이번에는 새롭게 API 명세서를 작성하고, 요구사항 명세서를 작성했다. (내가 한건 아니지만)
그리고 유즈케이스다이어그램을 처음 쓰게 되었다.
사실은 정처기 필기와 실기 공부할 때 배운 이론이었는데 실제로 적용하니 좀 신기했다.
이후에 시퀀스 다이어그램도 만들어보기로 했는데 이것도 직접 작성하게 된다면 블로그에 정리할 예정이다.
'프로젝트' 카테고리의 다른 글
인텔리제이 코딩 컨벤션 설정 (1) | 2024.10.11 |
---|---|
인텔리제이 플러그인 추천 (ultimate 버전) (0) | 2024.10.11 |
[spring+react] OAuth2 로그인 구현 (구글, 카카오) (7) | 2024.09.20 |
Java+MySQL 이용한 자바 콘솔 미니 프로젝트 회고 (0) | 2024.08.05 |
사이드 프로젝트를 미완성으로 마치는 회고 (0) | 2024.06.25 |