액티비티 다이어그램 & 클래스 다이어그램

원설아·2024년 4월 3일
2
post-thumbnail

소프트웨어 개발 과정에서 다양한 설계 도구들이 사용되는데, 그 중 액티비티 다이어그램과 클래스 다이어그램은 UML(Unified Modeling Language)(= 도메인을 모델로 표현해주는 대표적 모델링 언어)을 이용하여 시스템의 동작과 구조를 표현하는 데에 매우 중요하다.

이 두 다이어그램은 각각 프로세스의 흐름과 시스템의 구조적 측면을 나타내며, 개발자들에게 시스템의 이해를 돕고, 효율적인 설계를 가능하게 한다.


1. 액티비티 다이어그램이란?


액다 예시

액티비티 다이어그램은 프로세스 또는 작업의 흐름을 시각화하는 데 사용되는 다이어그램으로, 플로우차트와 유사한 형태를 가지고 있다.

이 다이어그램은 시스템이 어떻게 동작하는지, 즉 동작의 순서와 조건을 기반으로 한 처리 로직의 흐름을 정의한다.


1) 액티비티 다이어그램의 특징

  1. 프로세스 흐름 도식화 - 액티비티 다이어그램은 프로세스의 흐름을 도식화하여 프로그램 로직을 정의할 수 있다.

  2. 비즈니스 프로세스 정의 - 비즈니스 프로세스의 정의에 활용되어, 조건에 따른 처리 흐름을 명확하게 표현한다.

  3. 유스케이스 실현 - 유스케이스의 실현을 위한 흐름을 시각적으로 표현할 수 있다.

  4. 다양한 구성 요소 - 액션, 액티비티, 시작 노드, 종료 노드, 조건 노드, 병합 노드, 객체 노드 등 다양한 구성 요소를 포함한다.

  5. 스윔레인 활용 - 액티비티 수행을 담당하는 주체를 구분하는 스윔레인을 통해 더 명확한 역할 분담과 프로세스 흐름을 표현한다.


2) 액티비티 다이어그램의 구성 요소

이미지이름설명
액션 이미지액션더 이상 분해할 수 없는 단일 작업
액티비티 이미지액티비티여러 개의 액션으로 분리될 수 있는 작업
객체 노드 이미지객체 노드데이터의 흐름을 나타내고 액션 간에 데이터를 전달하는 역할
컨트롤 플로우 이미지컨트롤 플로우액션 간의 실행 순서를 나타내는 화살표, 작업의 흐름 제어
객체 플로우 이미지객체 플로우객체 노드 간의 데이터 흐름
초기 노드 이미지초기 노드액티비티의 시작점
최종 노드 이미지최종 노드액티비티의 종료점
결정 노드 이미지결정 노드조건에 따라 다른 흐름으로 분기할 수 있는 지점
병합 노드 이미지병합 노드분기된 흐름을 다시 하나로 합치는 지점
분기 노드 이미지분기 노드하나의 흐름을 여러 개로 분기시키는 지점
조인 노드 이미지조인 노드병렬로 실행된 여러 흐름을 다시 하나로 합치는 지점

3) 액티비티 다이어그램 예시


Youtube의 액티비티 다이어그램을 예시로 그려 보았다.



2. 클래스 다이어그램


클래스 다이어그램은 시스템의 구조적인 측면을 나타내며, 클래스 간의 관계와 각 클래스가 가지는 속성 및 메서드를 표현한다.

이 다이어그램은 시스템을 구성하는 요소들의 정적인 관계를 보여주며, UML을 사용하여 표현된다.


1) 클래스 다이어그램의 특징

  1. 정적 구조 표현 - 클래스 다이어그램은 시스템의 정적 구조를 모델링하며, 객체, 클래스, 그리고 이들 간의 관계를 시각적으로 표현한다.

  2. 클래스 속성 및 연산 정의 - 클래스의 속성(변수)과 연산(메서드)을 정의하며, 이를 통해 클래스의 책임과 기능을 명확히 한다.

  3. 객체 지향 설계 지원 - 객체 지향 소프트웨어 설계에 필수적이며, 클래스 간의 상속, 연관, 집합, 의존 등 다양한 관계를 표현한다.

  4. 시스템 구조의 문서화 - 시스템의 구조를 문서화하여 설계자와 개발자 간의 의사소통을 용이하게 하며, 시스템의 유지보수와 확장성을 향상시킨다.

  5. 코드 생성의 기반 - 클래스 다이어그램은 종종 실제 소프트웨어 클래스와 객체로 변환되어, 코드 생성의 기반으로 사용된다.


2) 클래스 다이어그램의 구성 요소

이름설명
클래스공통의 속성, 메서드(오퍼레이션), 관계, 의미를 공유하는 객체들의 집합
속성클래스의 구조적 특성에 이름을 붙인 것으로 특성에 해당하는 인스턴스가 보유할 수 있는 값의 범위
메소드이름, 타입, 매개변수들과 연관된 행위를 호출하는데 요구되는 제약사항들을 명세하는 클래스의 행위적 특징
접근 제어자클래스에 접근할 수 있는 정도

접근 제어자는 아래와 같은 것들이 있다.

- private : 클래스 내부 접근만 허용
+ public : 클래스 외부 접근 허용
# protected : 동일 패키지/파생 클래스에서 접근 가능
~ default : 동일 패키지 클래스에서 접근 가능


3) 클래스 다이어그램의 관계 표현

이미지이름설명
의존 관계한 클래스가 다른 클래스에서 제공하는 기능을 사용할 때 형성되는 관계(클래스가 다른 클래스에 의존하고 있음을 나타냄)
연관 관계두 클래스가 서로 연결되어 있음을 나타내며, 클래스들이 개념적으로 서로 어떻게 연결되어 있는지를 표현하는 관계
일반화 관계일반적으로 상속을 나타내며, 하나의 클래스(자식 클래스)가 다른 클래스(부모 클래스)의 모든 특성을 상속받는 관계
실체화 관계인터페이스와 이를 구현하는 클래스 사이의 관계, 클래스가 인터페이스의 모든 메서드를 구현해야 함을 의미
집합 관계전체와 부분의 관계를 나타내며, 객체들 간의 생명주기와 소유권을 표현함, 집합 관계는 부분이 전체에 속하지만 독립적인 생명주기를 가짐
합성 관계집합 관계의 특수한 형태로, 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계를 표현

0개의 댓글