UML
UML 개념
- UML은 객체 지향 소프트웨어 개발 과정에서 산출물을 명세화 시각화 문서화할 때 사용되는 모델링 기술과 방법론을 통합해서 만든 표준화된 범용 모델링 언어
UML 특징
방법론을 통합한 것, 표준화된 모델링 기법 제공
개발자와 고객 또는 개발자 간 등 다양한 이해관계자와의 의사소통을 위한 도구
특징 | 설명 |
가시화 언어 | 개념 모델 작성시 오류가 적고 의사소통이 용이 |
구축 언어 | 다양한 프로그래밍 언어로 실행 시스템의 예측 가능 |
명세화 언어 | 정확한 모델 제시, 안전한 모델 작성 기능 |
문서화 언어 | 시스템에 대한 평가 및 의사소통의 문서 |
UML 구성요소
- UML은 사물, 관계, 다이어그램으로 구성됨
구성요소 | 내용 |
사물 | 추상적 개념, 주제를 나타내는 요소/ 단어 관점에서 '명사' 또는 '동사'를 의미 |
관계 | 사물의 의미 확장 명확히 하는 용도/ 사물과 사물을 연결하여 관계표현/ 단어 관점에서 '형용사' 또는 '부사'를 의미 |
다이어그램 | 사물과 관계를 모아 그림으로 표현한 상태 / 형식과 목적에 따라 9가지로 정의 |
UML 다이어그램
UML 다이어그램은 구분에 따라 구조적(정적 다이어그램, 행위적(동적) 다이어그램으로 구분된다.
컴포넌트, 배치 다이어그램은 구현 단계에서 사용되는 다이어그램이다.
구조적(Structural Diagram)/ 정적 다이어그램(Static Diagram)
클객 컴배 복패
클래스:
클래스와 클래스, 클래스의 속성 사이의 관계를 표현
속성(Attribute)과 동작(Behavior)으로 구성
시스템의 구조 파악, 구조상의 문제점 도출 가능
클래스와 클래스, 클래스의 속성 사이의 관계를 표현
객체:
클래스에 속한 객체들, 즉 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현
객체 인스턴스 대신 실제 클래스 사용
연관된 모든 인스턴스 표현
컴포넌트:
코드 컴포넌트 기반의 물리적 구조 표현
실질적 프로그래밍 작업에 사용
배치:
컴포너트 사이의 종속성 표현
결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현
복합체 구조:
- 클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 고조를 표현
패키지
- 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현
행위적 다이어그램(Behavioral Diagram) / 동적 다이어그램(Dynamic Diagram)
유시커 상활타
유스케이스
사용자 관점에서 시스템의 활동을 표현
유스케이스는 시스템의 기능적 요구 정의에 활용
시퀀스
객체 간 상호 작용을 메시지 흐름으로 표현
객체 사이 메시지를 보내는 시간을 표현
교류 다이어그램의 한 종류로 볼 수 있음
커뮤니케이션
- 시퀀스 다이어그램과 같이 동작에 참여하는 객체들이 주고받는 메시지를 표현하는데, 메시지뿐만 아니라 객체 간의 연관까지 표현
상태
하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는지 표현
모든 가능한 상태와 전이를 표현
상태의 변화를 일으키는 조건과 그 조건이 상태를 변화시킬 때 시슽ㅁ에 취하는 행동을 제시해야함
진입 조건, 탈출 조건, 상태전이 등 기술
상태도는 유한 상태 기계에서 상태와 상태천이를 표현하기 위해 도식화해서 표현하는 그림
활동
시스템이 어떤 기능을 수행하는지를 객체의 처리 로직이나 조건에 따른 처리의 흐름으로 순서대로 표현
활동의 순서대로 흐름을 표현
타이밍
- 객체 상태 변화와 시간 제약을 명시적으로 표현