정처기

UML

효ㄷi 2025. 2. 11. 14:33

📌 UML (Unified Modeling Language) 정리

1️⃣ UML이란?

  • 개발자 간 의사소통을 원활하게 하기 위한 표준화된 모델링 언어
  • Rumbaugh, Booch, Jacobson 등이 만든 객체지향 방법론의 장점을 통합
  • UML은 사물(Things), 관계(Relationship), 다이어그램(Diagram) 으로 구성됨

2️⃣ UML 구성 요소

사물(Things)

  • 다이어그램에서 관계를 형성할 수 있는 대상

종류

  • 구조 사물: 클래스(Class), 인터페이스(Interface), 유스케이스(Usecase), 노드(Node) 등
  • 행동 사물: 요소들의 행위, 상호작용
  • 그룹 사물: UML 요소들을 그룹화
  • 주해 사물: UML에 대한 설명이나 주석

관계(Relationship)

  • 사물과 사물 간의 연관성
  • 종류: 연결, 집합, 포함, 일반화, 의존, 실제 관계

다이어그램(Diagram)

  • 사물과 관계를 그림으로 나타낸 도구
  • 시스템의 구조와 흐름을 시각적으로 표현
  • UML에는 정적(구조적) 다이어그램 6개동적(행위) 다이어그램 7개가 있음

✔ 스테레오 타입(Stereo type)

  • UML 요소를 확장해서 새로운 의미를 부여하는 기능
  • UML 기본 형식을 유지하면서 내부적으로 다른 의미를 표현
  • 특별한 규칙은 없지만, 일반적으로 《》 기호를 사용해서 표현

주요 스테레오 타입 예시

  • 《include》 : 필수적으로 실행해야 하는 포함 관계
  • 《extend》 : 선택적으로 실행할 수 있는 확장 관계
  • 《interface》 : 추상 메서드만 가지는 클래스 (인스턴스 생성 불가)
  • 《entity》 : 데이터 저장과 관련된 개체
  • 《boundary》 : 시스템 외부와의 상호작용 담당
  • 《control》 : 시스템의 기능 및 제어 담당

📌 관계의 종류 (Relationship Types)

1️⃣ 연관(Association) 관계

  • 두 개 이상의 사물이 서로 연결되어 있는 관계
  • 특정 사물이 다른 사물의 특성을 지속적으로 참조하는 관계
  • 방향성을 가지며 화살표(→) 로 표현
  • 양방향 관계는 선(—) 으로 표현
  • 다중도(Multiplicity): 관계의 개수 표현
  • * : 0개 이상 (다수)
  • n : 정확히 n개
  • n..m : 최소 n개, 최대 m개
  • n..* : 최소 n개 이상

2️⃣ 집합(Aggregation) 관계

  • 하나의 사물(Part)이 다른 사물(Whole)에 포함되어 있는 관계
  • 전체(Whole)와 부분(Part)이 서로 독립적
  • UML에서는 빈 마름모(◊) 를 사용하여 실선으로 표현

3️⃣ 포함(Composition) 관계

  • 하나의 사물(Part)이 다른 사물(Whole)에 포함되어 있는 관계
  • 전체(Whole)와 부분(Part)이 서로 종속적
  • UML에서는 채워진 마름모(◆) 를 사용하여 실선으로 표현

👉 집합(Aggregation)과 포함(Composition)의 가장 큰 차이는 "전체가 사라졌을 때 부분이 살아남을 수 있는가?

4️⃣ 일반화 (Generalization) 관계

  • 하나의 사물이 다른 사물에 대해 상위-하위 관계를 가지는 것을 의미함.
  • 상위 사물: 하위 사물들의 일반적인 속성을 포함.
  • 하위 사물: 상위 사물의 속성을 구체적으로 구현.
  • UML에서는 빈 삼각형 실선 화살표(△→) 로 표현됨.

5️⃣ 의존 (Dependency) 관계

  • 필요할 때만 유지되는 단기적인 관계.
  • 한 사물의 변화가 다른 사물에 영향을 미침.
  • UML에서는 점선 화살표(→) 로 표현됨.

6️⃣ 실체화 (Realization) 관계

  • 여러 사물의 공통적인 기능을 상위 개념으로 정의하고, 이를 하위 사물이 구현하는 관계.
  • UML에서는 빈 삼각형 점선 화살표(△→) 로 표현됨.

📌UML 다이어그램 종류 정리

1. 구조적(Structural) 다이어그램

1️⃣ 클래스(Class) 다이어그램

  • 클래스 간의 구조적(정적인) 관계를 표현.
  • 클래스, 속성, 연산, 접근 제어자로 구성됨.
  • 시스템의 구조와 문제점을 분석하는 데 도움.

🔹 접근 제어자 종류

  • - (private) : 클래스 내부에서만 접근 가능
  • + (public) : 클래스 외부에서도 접근 가능
  • # (protected) : 동일 패키지 & 자식 클래스에서 접근 가능
  • ~ (default) : 동일 패키지 내에서만 접근 가능

2️⃣ 객체(Object) 다이어그램

  • 클래스의 인스턴스를 대상으로 관계를 표현.
  • 특정 시점에서 시스템의 구조를 파악할 수 있음.

3️⃣ 컴포넌트(Component) 다이어그램

  • 구현 단계에서 사용되는 컴포넌트 간의 구성과 연결 상태를 표현.

4️⃣ 배치(Deployment) 다이어그램

  • 구현 단계에서 사용.
  • 노드(Node)와 컴포넌트의 물리적인 관계를 나타냄.

5️⃣ 복합 구조(Composite Structure) 다이어그램

  • 클래스나 컴포넌트 내부의 복합적인 구조를 표현.

6️⃣ 패키지(Package) 다이어그램

  • 같은 그룹의 하위 모듈들 그룹화 & 패키지 간의 관계를 표현.


2. 행위(Behavioral) 다이어그램 🎭

1️⃣ 유스케이스(Use Case) 다이어그램

  • 사용자의 요구사항을 분석하여 기능을 중심으로 표현.

2️⃣ 절차(Sequence) 다이어그램

  • 객체 간 메시지를 주고받는 순서를 표현.
  • 시스템 동작 개념을 쉽게 파악하는 대표적인 다이어그램.

⚙️ 구성 요소

✔ 생명선(Lifeline) : 객체에서 뻗어나가는 점선, 시간 흐름에 따라 길어짐.

✔ 실행(Activation) : 점선 위 직사각형, 활성화 (상호작용) 상태.

메시지(Message) : 객체 간 요청 & 응답 (화살표).

3️⃣ 통신(Communication) 다이어그램

  • 객체 간의 연관 관계 & 메시지 주고받는 흐름을 표현.

4️⃣ 상태(State) 다이어그램

  • 객체의 이벤트 발생에 따른 상태 변화를 표현.
  • 특정 시점에서 객체의 상태가 어떻게 변하는지 보여줌.

5️⃣ 활동(Activity) 다이어그램

  • 업무 프로세스의 흐름을 논리적으로 표현.
  • 알고리즘 분석이나 워크플로우 모델링에 자주 사용됨.

6️⃣ 상호작용 개요(Interaction Overview) 다이어그램

  • 여러 다이어그램을 조합하여 흐름을 나타냄.

7️⃣ 타이밍(Timing) 다이어그램

  • 객체의 상태 변화와 시간 제약을 명확하게 표현.

총정리

📌 UML 총정리

1️⃣ UML이란?

  • 개발자 간 의사소통을 원활하게 하기 위한 표준화된 모델링 언어
  • 객체지향 방법론을 통합한 개념
  • 사물(Things), 관계(Relationship), 다이어그램(Diagram)으로 구성됨

2️⃣ UML 구성 요소

✔ 사물(Things)

  • 다이어그램에서 관계를 형성할 수 있는 대상
  • 구조 사물 (클래스, 인터페이스), 행동 사물 (행위, 상호작용), 그룹 사물, 주해 사물

✔ 관계(Relationship)

  • 사물 간의 연관성 표현 (연관, 집합, 포함, 일반화, 의존, 실체화 관계 포함)

✔ 다이어그램(Diagram)

  • 정적(구조적) 다이어그램 6개, 동적(행위) 다이어그램 7개로 구성됨

✔ 스테레오 타입(Stereo type)

  • UML 요소를 확장하여 새로운 의미를 부여하는 기능
  • 《include》, 《extend》, 《interface》, 《entity》, 《boundary》, 《control》 등

3️⃣ UML 관계 종류

  • 연관(Association) : 객체 간 일반적인 연결 관계
  • 집합(Aggregation) : 전체와 부분이 독립적인 관계 (빈 마름모 ◊)
  • 포함(Composition) : 전체가 사라지면 부분도 사라짐 (채워진 마름모 ◆)
  • 일반화(Generalization) : 상위-하위 관계 (△ 실선 화살표)
  • 의존(Dependency) : 한 요소가 변화하면 다른 요소도 영향을 받음 (→ 점선 화살표)
  • 실체화(Realization) : 상위 요소의 기능을 하위 요소가 구현 (△ 점선 화살표)

4️⃣ UML 다이어그램 종류

🛠 구조적(Structural) 다이어그램 (시스템의 정적인 구조 표현)

클래스(Class) 다이어그램 : 클래스 간의 관계, 속성, 메서드 표현

객체(Object) 다이어그램 : 클래스의 인스턴스 관계 표현

컴포넌트(Component) 다이어그램 : 시스템 구성 요소 간의 관계 표현

배치(Deployment) 다이어그램 : 하드웨어 환경에서 시스템의 배포 구조 표현

복합 구조(Composite Structure) 다이어그램 : 클래스 내부 구조 표현

패키지(Package) 다이어그램 : 패키지 간의 관계 표현

🎭 행위(Behavioral) 다이어그램 (시스템의 동적인 동작 표현)

유스케이스(Use Case) 다이어그램 : 사용자의 요구사항 분석

절차(Sequence) 다이어그램 : 객체 간 메시지 주고받는 순서 표현

통신(Communication) 다이어그램 : 객체 간 메시지 흐름 및 연관 관계 표현

상태(State) 다이어그램 : 객체의 상태 변화 표현

활동(Activity) 다이어그램 : 업무 흐름과 논리적 순서 표현

상호작용 개요(Interaction Overview) 다이어그램 : 여러 다이어그램의 흐름 조합

타이밍(Timing) 다이어그램 : 시간에 따른 객체의 상태 변화 표현