UML 특징 | 의미 |
---|---|
가시화 언어 | 개념 모델 작성 시 오류가 적고 의사 소통이 용이하다 |
구축 언어 | 다양한 언어로 실행 시스템의 예측 가능 UML을 소스 코드로 변환하여 구축 가능, 역 변환하여 역공학 가능 |
명세화 언어 | 정확한 모델 제시, 완전한 모델 작성 가능 |
문서화 언어 | 시스템에 대한 평가 및 의사 소통의 문서 |
사물 Things
, 관계 Relationship
, 다이어그램 Diagram
구성됐다.UML 구성 | 설명 |
---|---|
사물 Things |
추상적인 개념, 주제를 나타내는 요소 ‘명사’, ‘동사’에 가까운 개념 |
관계 Relationship |
사물의 의미를 확장, 명확히 하는 요소 사물과 사물을 연결하여 관계를 표현하는 요소 ‘형용사’, ‘부사’에 가까운 개념 |
다이어그램 Diagram |
사물과 관계를 모아 그림으로 표현한 형태 형식, 목적에 따라 9가지로 정의된다. |
다이어그램 | 설명 |
---|---|
class |
시스템 내 class 의 정적 구조 표현 Attribute 속성 , Behavior 동작 으로 구성됐다. |
Object |
class 에 속한 객체, Instance를 특정 시점의 객체와 객체 사이의 관계로 표현 객체 Instance 나타내는 대신, 실제 class 사용 연관된 모든 Instance 표현한다. |
Component |
Code Component 기반의 물리적 구조 표현 실질적 프로그래밍 작업에 사용된다. |
Deployment 배치 |
Component 사이의 종속성 표현 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치 표현 |
Composite Structure 복합체 구조 |
클래스, 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현함. |
Package |
Usecase 나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계 표현 |
동적 다이어그램 Dynamic Diagram / 행위적 다이어그램 Behavioral Diagram
다이어그램 | 설명 |
---|---|
Usecase |
사용자 관점에서 시스템의 활동을 표현 |
Sequence |
객체 간 상호 작용을 메시지 흐름으로 표현 객체 사이 메시지를 보내는 시간을 표현 Interaction Digram (r교류 D)의 한 종류로 볼 수도 있음. |
Communication |
시퀀스 다이어그램과 같이 동작에 참여하는 객체들의 주고 받는 메시지 표현 메시지 뿐만 아니라 객체 간의 연관까지 표현 |
state |
하나의 객체가 자신이 속한 Class의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는 지 표현 모든 가능한 상태와 전이 표현 상태의 변화를 일으키는 조건, 그 조건이 State 변화시킬 때 시스템이 취하는 행동을 제시해야 한다. 상태도는 유한 상태 기계에서 상태, 상태 천이를 표현하기 위해 도식화해서 표현하는 그림 |
Activity |
시스템이 어떤 기능을 수행하는 지를 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서대로 표현 활동의 순서대로 흐름을 표현 |
Timing |
객체 상태 변화와 시간 제약을 명시적으로 표현 |
구성 요소 | 설명 |
---|---|
Class Name | 클래스의 이름 |
Attribute | 클래스의 특징에 이름을 부여 |
Operation | 클래스에 속하는 객체에 적용될 메서드 클래스의 동작, UML에서는 동작에 대한 인터페이스 지칭함. |
Access Modifier | 클래스에 접근할 수 있는 정도를 표현 접근 제어자 목록 - : 클래스 내부 접근만 허용 (private ) + : 클래스 외부 접근 허용 (public ) # : 동일 패키지 및 파생 클래스에서 접근 가능 (protected ) ~ : 동일 패키지 클래스에서 접근 가능 (default ) |
Usecase
, Actor
, System
세 가지로 구성됐다.구성 | 설명 |
---|---|
Usecase |
코드로 구현할 수 있는 최소 단위 시스템이 제공해야 하는 서비스 Actor가 시스템을 통해 수행하는 일련의 행위 |
Actor |
사용자가 시스템에 대해 수행하는 역할 시스템과 상호 작용하는 사람 또는 사물 |
System |
전체 시스템의 영역을 표현 |
객체
, 생명선
, 실행
, 메시지
로 구성됐다.구성 | 설명 |
---|---|
Object 객체 |
위쪽에 표시, 아래로 Lifeline 가진다. 사각형 내부에 밑줄 친 이름으로 표시 |
Lifeline 생명선 |
객체로부터 뻗어나가는 점선 실제 시간이 흐름에 따라 객체의 LifeCycle 동안 발생하는 Event 표시 |
Activation 실행 |
Operation(함수)이 실행되는 시간 의미 직사각형 길이에 비례해서, 함수 실행 시간 길어짐 |
Message 메시지 |
객체 간 상호 작용은 메시지로 이뤄진다. 한 객체에서 다른 객체로의 메시지를 전달 전달 받은 객체의 Operation 수행 |
연관 관계
, 의존 관계
, 일반화 관계
, 실체화 관계
, 포함 관계
, 집합 관계
구분 | 설명 |
---|---|
연관 관계 Association |
2개 이상의 사물이 서로 관련된 상태를 표현하는 관계 사물 사이를 실선으로 연결, 방향성은 화살표로 표현 서로에게 영향을 주는 양방향 관계라면 화살표 생략, 실선 표기 |
의존 관계 Dependency |
사물 사이에 서로 연관 있으나, 필요에 따라 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 상태를 표현하는 관계 사물의 변화가 다른 사물에게도 영향 미치는 관계 한 클래스가 다른 클래스를 오퍼레이션의 매개변수로 사용하는 경우에 나타나는 관계 |
일반화 관계 Generalization |
하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지를 표현하는 관계 일반적인 개념 == 부모 (상위), 구체적인 개념 == 자식 (하위) 하위 사물에서 상위 사물 쪽으로 속이 빈 화살표 연결하여 표현 |
실체화 관계 Realization |
한 객체가 다른 객체에 오퍼레이션을 수행하도록 지정하는 관계 사물에서 기능 쪽으로 속이 빈 점선 화살표 연결하여 표현 |
포함 관계 Composition |
집합 관계의 특수한 형태, 포함하는 사물의 변화가 포함되는 사물에 영향을 미치는 관계 포함되는 쪽에서 포함하는 쪽으로 속이 채워진 마름모 연결하여 표현 |
집합 관계 Aggregation |
하나의 사물이 다른 사물에 포함된 관계 포함되는 쪽에서 포함하는 쪽으로 속이 빈 마름모 연결하여 표현함 |