728x90
(1) UML (Unified Modeling Language)란?
Unified Modeling Language의 약자로,
단어 그대로 해석하면 통합 모델링 언어라는 뜻이다.
객체 지향 소프트웨어를 개발할 때 시스템과 산출물을
명세화, 시각화, 문서화를 할 때 사용하는 표기 방식이다.
어떠한 통계 값을 원형 그래프, 막대 그래프, 도넛 그래프와 같이 여러 형태로 나타낼 수 있는 것처럼,
특정 소프트웨어의 산출물을 여러 방식으로 표기할 수 있다.
(2) UML을 사용하는 이유
어떠한 시스템을 개발할 때, 보통 여러 사람이 참여한다.
참여 인원 중에 설계자, 개발자 등 여러 인원이 있을 수도 있다.
이 때, 개발하려는 시스템의 기능, 구조 등을 모두가 이해할 수 있도록 설명하려면 어떻게 해야 할까?
대화로도 전달이 가능하겠지만, 기능과 구조를 문서화하여 이해시키는 것이 더 효율적이고 체계적일 것이다.
따라서 표준화된 양식을 사용하는 것이 바람직하며,
UML에 따라 작성한 문서는 표준 양식에 의해 작성된 문서이기에,
참여 인원들이 개발하고자 하는 시스템을 시각적으로 이해하기가 편하다.
(3) UML의 요소
- Thing
- Structual Thing
- Behavioral Thing
- Group Thing
- Annotaion Thing
- Relationships
- Dependency Relationship
- Generalization Relationship
- Association Relationship
- Aggression Relationship
- Composition Relationship
- Realization Relationship
- Diagrams
- Class Diagram
- Object Diagram
- Use Case Diagram
- Sequence Diagram
- Collaboration Diagram
- State Diagram
- Activity Diagram
- Component Diagram
- Deployment Diagram
(4) UML - Thing
추상적인 개념으로써 UML을 이용한 모델링의 기본 요소이다.
- Structual Thing (구조 사물)
- UML 모델의 명사형 (클래스, 노드, 서버, 사용자 등...)
- 모델의 정적인 부분
- 개념적이거나 물리적인 요소
- Behavioral Thing (행동 사물)
- UML 모델의 동사형
- 모델의 동적인 부분
- 시간과 공간에 따른 행위 요소를 표현
- Gruping Thing (그룹 사물)
- 모델을 그룹화하여 요소 표현 (패키지, 라이브러리, 네임스페이스 등...)
- Annotation Thing (주석 사물)
- UML 모델 요소를 설명, 메모하거나 명확히 하는 표현 방법 (주석, 메모 등...)
(5) UML - Relationships
구성 요소들 간의 연관성을 표현하며,
주로 클래스들 간의 관계 표현시 사용한다.
- Dependency Relationship (의존 관계)
- 한 클래스가 다른 클래스를 사용하는 사용 관계
- - - - - - ->
- Generalization Relationship (일반화 관계)
- 객체 지향에서의 상속 관계
- 여러 클래스가 가진 공통적인 특징을 추출하여 공통적인 클래스를 일반화
- ----------▷
- Association Relationships (연관 관계)
- 클래스로부터 생성된 객체간의 일반적 협력 관계
- ----------> or ----------
- Aggregation Relationship (집합 관계)
- 두 클래스 간의 전체-부분 관계 (Whole-Part)
- 각 클래스가 독립적인 생명 주기를 가짐
- 예) 자동차의 바퀴, 엔진의 생명 주기는 다르다. 바퀴나 엔진 중에서 어느 한 쪽이 사라져도 자동차가 사라지는 것은 아니며, 자동차가 사라져도 바퀴나 엔진이 사라지는 것은 아니다.
- 하나의 클래스가 여러 개의 컴포넌트 클래스로 구성됨
- ----------◇
- Composition Relationship (구성 관계)
- 두 클래스 간의 부분-전체 관계 (Part-Whole)
- 부분의 생명 주기가 전체의 영향을 받음
- 하나의 클래스가 여러 개의 컴포넌트 클래스로 구성됨
- 다른 말로는 강한 집합 관계
- ----------◆
- Realization Relationship (실체화, 실현 관계)
- 인터페이스와 실제 구현된 클래스 간의 관계
- Generalization Relationship과 비슷하지만 다르다.
- Generalization은 존재하는 객체(속성, 행동)에 대한 추가 구현(Overriding)이고, Realization은 존재하는 행동에 대한 구현이다.
- - - - - - -▷
(6) UML - Diagram
구성 요소를 표현하기 위한 구조적 다이어그램과,
행위를 표현하기 위한 행위 다이어그램으로 나눌 수 있다.
- 구조적 다이어그램 (Structure UML Diagrams)
- 클래스 다이어그램 (Class Diagram)
- 클래스 명세와 클래스 간의 관계를 표현
- 객체 다이어그램 (Object Diagram)
- 인스턴스 간의 연관 관계를 표현
- 패키지 다이어그램 (Package Diagram)
- 패키지 간의 연관 관계를 표현
- 컴포넌트 다이어그램 (Component Diagram)
- 파일과 DB, 프로세스와 스레드 등의 소프트웨어 구조를 표현
- 복합 구조 다이어그램 (Composite Structure Diagram)
- 전체-부분 구조를 가진 클래스를 실행할 때의 구조를 표현
- 배치 다이어그램 (Deployment Diagram)
- 하드웨어와 네트워크 등 시스템의 물리 구조를 표현
- 프로필 다이어그램 (Profile Diagram)
- 프로필만 간단하게 구성된 다이어그램
- 프로필은 모델링 요소를 사용자 정의하기 위해 사용되는 매커니즘
- 클래스 다이어그램 (Class Diagram)
- 행위 다이어그램 (Behavioral UML Diagrams)
- 유스케이스 다이어그램 (UseCase Diagram)
- 시스템이 제공하는 기능과 이용자의 관계를 표현
- 액티비티 다이어그램 (Activity Diagram)
- 일련의 처리에 있어 제어의 흐름을 표현
- 시퀀스 다이어그램 (Sequence Diagram)
- 인스턴스 간의 상호 작용을 시계열로 표현
- 커뮤니케이션 다이어그램 (Communication Diagram)
- 인스턴스 간의 상호 작용을 구조 중심으로 표현
- 상호 작용 개요 다이어그램 (Interaction Overview Diagram)
- 조건에 따라 다르게 동작하는 시퀀스 다이어그램을 액티비티 다이어그램 안에 포함하여 표현
- 타이밍 다이어그램 (Timing Diagram)
- 인스턴스 간의 상태 전이와 상호 작용을 시간 제약으로 표현
- 상태 머신 다이어그램 (State Machine Diagram)
- 인스턴스의 상태 변화를 표현
- 유스케이스 다이어그램 (UseCase Diagram)
🍉 참고
반응형
'CS > UML' 카테고리의 다른 글
[UML] 유스케이스 다이어그램 (Use Case Diagram) (2) | 2024.11.14 |
---|