트리구조에 대한 클래스 다이어그램, 유즈케이스 작성 기회가 있어 공부했던 내용을 정리해 보았다.
클래스다이어그램
-
목적
- 의사소통 또는 설계 논의를 위해
- 전체 시스템의 구조 및 클래스의 의존성 파악을 위해
- 유지보수를 위한 설계의 back-end 문서 제작을 위해
-
UML(Unified Modeling Language) 이란?
- 시스템을 모델로 표현해주는 대표적인 모델링 언어
-
UML 클래스의 표현
UML클래스다이어그램
- 3-1) 가장 윗부분: 클래스 이름
- 3-2) 중간 부분: 속성(클래스의 특징)
- 3-3) 마지막 부분: 연산(클래스가 수행하는 책임)
-
클래스 다이어그램 표현
-
접근제어자
- (+) == public :: 어떤 클래스의 객체에서도 접근 가능
- (-) == private :: 이 클래스에서 생성된 객체들만 접근 가능
- (#) == protected :: 이 클래스와 동일 패키지에 있거나 상속 관계에 있는 하위 클래스의 객체들만 접근 가능
- (~) == package :: 동일 패키지에 있는 클래스의 객체들만 접근 가능
-
관계 표현
- 의존관계 - 점선화살표 :: 한 객체가 다른 객체에 있는 기능을 사용할 때 나타냄, 두 클래스의 관계가 메서드를 실행 하는 동안과 같은 짧은 시간만 유지된다는 점
- 연관관계 - 실선이나 화살표 :: 클래스들이 개념상 서로 연결 되어있음을 나타낸다. 보통은 한 클래스가 다른 클래스에서 제공하는 기능을 사용하는 상황일 때 표시한다.
단방향은 화살표로 양방향은 실선으로 표시된다.
- 일반화관계 - 속이 빈 화살표 :: 객체지향 개념에서 상속관계라고 말합니다. 한 클래스가 다른 클래스를 포함하는 상위 개념일 때 이를 IS-A 관계라고 하며 UML에서는 일반화 관계로 모델링합니다.
- 부모클래스 :: 추상적인 개념이며, 삼각형 표시가 향하는 방향을 의미합니다.
- 자식클래스 :: 추상적인 개념을 물려받은 구체적인 개념입니다. 삼각형표시가 없는쪽이며 부모클래스는 자식클래스의 공통적인 속성과 연산을 제공하는 틀입니다.
관계표현 이미지
유즈케이스
- 시스템이 제공해주는 서비스와 기능을 나타내며 사용자의 요구사항을 구조화 한 것
-
유즈케이스 작성시 주의사항
- 어떻게가 아니라 무엇을 시스템이 하는가를 담는 것
-
유즈케이스 다이어그램
-
구성
- 유스케이스: 시스템 내에서 일련의 작업을 수행하기 위한 행위들을 나타냄
- 액터
- 프라이머리 액터 (Primary Actor) : 시스템을 사용하고, 직접 이득을 보는 액터이며 졸라맨으로 표기합니다. 보통 시스템의 왼쪽에 표시합니다.
- 세컨더리 액터 (Secondary Actor) : 프라이머리 액터가 목적을 달성하기 위해 도움을 주는 액터이며 사각형 박스에 << actor >>를 입력하여 표기합니다. 보통 시스템의 오른쪽에 표시합니다.
-
관계
-
연관관계: 유스케이스와 액터 사이에 상호작용이 있다는 뜻으로, 실선으로 표시합니다.
연관관계 예시
-
포함관계: 두 개의 유스케이스 간의 의존성을 나타내며 하나의 유스케이스가 실행될 때 포함 관계에 있는 유스케이스가 반드시 실행되어야 함, 점선화살표를 사용하며 << include >> 를 중앙에 표시해야한다.
포함관계 예시
-
확장관계: 두 개의 유스케이스 간의 확장성을 나타내며 하나의 유스케이스가 실행될 때 확장관계에 있는 유스케이스가 특정 상황에서만 실행되어야 함, 점선화살표를 사용하며 << extend >>를 화살표 중앙에 표시해야한다.
확장관계 예시
-
일반화관계: 부모와 자식 유스케이스들 간의 상속관계를 나타내며 특정 유스케이스들이 하나의 특수화된 유스케이스라 한다, 자식 에서 부모 유스케이스 방향으로 실선 화살표를 사용한다.
포함관계 예시
마무리
- 개발에 앞서 전체적인 흐름에 대해 먼저 생각해보게 되었다.
- 틀을 짜놓은 상태에서 코드를 작성한다는 점이 좋았다.