728x90
💡 UML 이란
Unified Modeling Language
UML은 객체 지향 소프트웨어 개발 과정에서 산출물을 명세화, 시각화, 문서화할 때 사용되는
모델링 기술과 방법론을 통합해서 만든 표준화된 범용 모델링 언어입니다.
💡 UML 의 특징
UML 방법론을 통합한 것으로, 표준화된 모델링 기법을 제공합니다.
1. 가시화 언어
개념 모델 작성 시 오류가 적고 의사소통이 용이
2. 구축 언어
다양한 프로그래밍 언어로 실행 시스템 예측 가능
UML을 소스 코드로 변환하여 구축 가능, 역 공학 가능
3. 명세화 언어
정확한 모델 제시, 완전한 모델 작성 가능
4. 문서화 언어
시스템에 대한 평가 및 의사소통 문서
💡 UML 구성 요소
✅ 사물 (Things)
1. 추상적인 개념으로 주제를 나타내는 요소
2. 단어 관점에서 '명사' 또는 '동사'를 의미
사물 | 내용 |
구조 사물 | 시스템 개념적, 물리적 요소를 표현 ex) 클래스, 유스케이스, 컴포넌트, 노드 등 |
행동 사물 | 시공간에 따른 요소들의 행위를 표현 ex) 상호 작용, 상태 머신 등 |
그룹 사물 | 요소들을 그룹으로 묶어서 표현 ex) 패키지 |
주해 사물 | 부가적인 설명이나 제약조건 등을 표현 ex) 노드 |
✅ 관계 (Relationship)
1. 사물의 의미를 확장하고 명확히 하는 요소
2. 사물과 사물을 연결하여 표현하는 요소
3. 단어 관점에서 '형용사' 또는 '부사'를 의미
1️⃣ 연관 (Association) 관계
2개 이상의 사물이 서로 관련되어 있는 관계
2️⃣ 집합 (Aggregation) 관계
컴퓨터에 메모리 하나 없어도 잘 돌아감
하나의 객체에 여러 개의 독립적인 객체들이 구성되는 관계
하나의 사물이 다른 사물에 포함되어 있는 관계
3️⃣ 포함 (Composition) 관계
사람에게 머리가 없으면 안됨
포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계
4️⃣ 일반화 (Generalization) 관계
하나의 사물이 다른 사물에 비해 더 일반적이거나 구체적인 관계
5️⃣ 의존 (Dependency) 관계
서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계
6️⃣ 실체화 (Realization) 관계
사물이 할 수 있거나 해야하는 기능으로 서로를 그룹화 할 수 있는 관계
✅ 다이어그램 (Diagrams)
1. 사물과 관계 도현으로 표현
2. 여러 관점에서 시스템을 가시화 한 뷰를 제공함으로써 의사소통에 도움을 줌
3. 정적 모델링에서는 구조적 다이어그램을 동적 모델링에서는 주로 행위 다이어그램을 사용
1️⃣ Structure Diagram
구조적 다이어그램, 정적 모델링
종류 | 내용 | 구성 요소 |
클래스 다이어그램 (Class Diagram) |
사용자가 요구한 기능을 구현하는데 필요한 자료들의 논리적인 구조를 표현한 것 |
클래스, 속성, 연산(메서드) 접근 제어자(-, +, #, ~) |
객체 다이어그램 (Object Diagram) |
클래스 속한 사물(객체)들, 즉 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현 ✔️ 럼바우 객체지향 분석 기법에서 객체 모델링에 활용 |
- |
컴포넌트 다이어그램 (Component Diagram) |
실제 구현 모듈인 컴포넌트 간의 관계, 인터페이스를 표현함 ✔️ 구현 단계에서 사용됨 |
컴포넌트, 인터페이스 의존 관계 |
배치 다이어그램 (Deployment Diagram) |
결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현함 ✔️구현 단계에서 사용됨 |
- |
복합체 구조 다이어그램 (Composite Structure Diagram) |
클래스나 컴포넌트가 복합구조를 갖는 경우 그 내부 구조를 표현함 | - |
패키지 다이어그램 (Package Diagram) |
요소들을 그룹화한 의존 관계를 표현한 것 | 패키지, 객체, 의존 관계 |
❗️패키지 다이어그램에서 의존 관계의 표현 형태
<< import >> : 패키지에 포함된 객체들을 직접 가져와서 이용하는 관계
<< access >> : 인터페이스를 통해 패키지 내 객체에 접근하여 이용하는 관계
2️⃣ Behavioral Diagram
행위적 다이어그램, 동적 모델링
시스템 내부 구성 요소들의 상태 변화 과정과 과정에서 발생하는 상호 작용을 표현
종류 | 내용 |
유스케이스 다이어그램 (UseCase Diagram) | 개발될 시스템을 이용해 수행할 수 있는 기능을 사용자의 관점에서 표현한 것 |
시퀀스 다이어그램 (Sequence Diagram) | 시스템이나 객체들이 메세지를 주고 받으며 상호작용하는 과정을 그림으로 표현한 것 |
커뮤니케이션 다이어그램 (Communication Diagram) | 시스템이나 객체들이 메세지를 주고 받으며 상호작용하는 과정과 객체들 간의 연관을 그림으로 표현한 것 |
상태 다이어그램 (State Diagram) | 객체들 사이에 발생하는 이벤트에 의한 객체들의 변화를 그림으로 표현한 것 |
활동 다이어그램 (Active Diagram) | 사용자 관점에서 시스템이 어떤 기능을 수행하는지 처리의 흐름을 순서로 표현한 다이어그램 |
상호작용 개요 다이어그램 | 상호작용 다이어그램 간의 제어 흐름을 표현함 |
타이밍 다이어그램 | 객체 상태 변화와 시간 제약을 명시적으로 표현함 |
❗️유스케이스 다이어그램에서 나타낼 수 있는 관계 : 포함 관계, 확장 관계, 일반화 관계
3️⃣ 스테레오 타입
UML에서 표현하는 기본 기능 외 추가적인 기능으로 표현
표현 형태 | 의미 |
<< include >> | 연결된 다른 UML 요소에 대해 포함 관계에 있는 경우 |
<< extend >> | 연결된 다른 UML 요소에 대해 확장 관계에 있는 경우 |
<< interface >> | 인터페이스를 정의하는 경우 |
<< exception >> | 예외를 정의하는 경우 |
<< constructor >> | 생성자 역할을 수행하는 경우 |
💡 E-R Model
Entity-Relationship, 개체-관계 모델
개념적 데이터 모델의 대표적인 모델로 개체와 개체 간 관계를 개념적인 논리 데이터로 표현하기 위한 방법
💡 E-R Diagram 기호
구성 | 기호 | |
개체 (Entity) 집합 | 사각형 | □ |
관계 (Relationship) 집합 | 마름모 | ◇ |
속성 (Attribute) | 타원 | ○ |
다중값 속성 (복합 속성) | 이중 타원 | ◎ |
개체 - 관계 집합 연결 | 실선 | ─ |
개체 - 속성 집합 연결 | 실선 | ─ |
관계 - 속성 집합 연결 | 점선 | ─ |