UML이란?
UML;Unified Modeling Language 1997년 OMG(Object Management Group)에서 표준으로 채택한 통합모델링 언어로 모델을 만드는 표준 언어이다.
모델은 어떤 것을 만들 때 어떻게 만들면 잘 작동할지 미리 검증해보는 것이며 실제 물건을 만드는 것보다 비용이 훨씬 적게들 경우 모델을 만들어 설계를 검사한다.
하지만 소프트웨어 개발에서 UML다이어그램을 그리며 모델을 만드는 것과 설계를 만드는 것의 비용 차이는 크지 않다. 경우에 따라서는 UML을 만드는 것이 개발보다 비용이 더 많이 들 수도 있다. 따라서 UML은 시험해 볼 구체적인 사항이 있고 그것을 코드로 시험하는 것보다 UML로 시험해보는 쪽이 비용이 덜 들 때 주로 사용한다.
- 팀원들 간의 소통을 위해
- 전체적인 시스템의 구조 및 클래스의 의존석 파악을 위해
- 유지보수를 위한 설계의 back-end 문서를 위해
UML 구성요소
- 사물 : 구조, 행위, 그룹, 주석 등
- 관계 : 의존 관계, 연관 관계, 일반화 관계 등
- 다이어그램 : 객체 다이어그램, 클래스다이어그램, 시퀀스 다이어그램 등
UML 다이어그램 종류
1) 구조 다이어그램
(1)클래스 다이어그램
- 시스템에서 사용되는 객체 타입을 정의
- 그들간의 존재하는 정적인 관계를 표현
- 객체지향 설계 시 가장 대중적
- 구성 : 클래서(속성, 연산), 관계
(2)배치 다이어그램
- 시스템의 물리적인 구조를 보여주며, 어떤 소프트웨어가 어떤 하드웨어에서 동작하고 있는지 나타냄
- 구성
- 노드 : 소프트웨어를 실행할 수 있는 어떤 것
- 실행환경 : 스스로 실행하거나 다른 소프트웨어를 포함하는 소프트웨어 (운영체제, 컨테이너 프로세스 등)
- 아티팩트 : 노드에 포함되며, 소프트웨어의 물리적인 모습, 보통은 파일을 의미
- 통신경로 : 여러 노드가 어떻게 통신하는지 나타냄(해당 경로에 프로토콜에 대한 정보를 표시할 수 있음)
(3)컴포넌트 다이어그램
- 각각의 컴포넌트 들이 어떻게 서로 연결되어 더 큰 컴포넌트나 소프트웨어 시스템을 구성하는지 나타냄
- 구성
- 컴포넌트 : 행동의 제공과 필요한 인터페이스에 의해 정의되는 시스템 모듈의 부분
- 인터페이스 : 컴포넌트가 구현해야하는 오퍼레이션의 모임
- 의존관계 : 컴포넌트와 컴포넌트 간의 관계 의미
(5)패키지 다이어그램
어떤 구성요소라도 더 높은 수준의 단위로 묶을 수 있도록 해주는 구조
2) 행위 다이어그램
(1)활동 다이어그램
(2)상태 머신 다이어그램
(3)유스케이스 다이어그램
(4)상호작용 다이어그램
(5)커뮤니케이션 다이어그램
(6)시퀀스 다이어그램
3) 다이어그램 관계 표현