UML 모델링이 있으면 개발자간의 빠른 소통이 가능하고 빠른 코딩이 가능 ( UML 모델링이 없으면각자 마음대로 설계하여 개발자간의 소통이 어려워지고 빠른 코딩이 불가능 )
개발자가 자신의 설계 결과물을 다른 사람과 효과적으로 주고 받으며 공유할 수 있음
시스템을 가시화하고 설계 단계에서 일관된 해석(나의 생각이 들어가서는 안됨)을 유지하기 위해
UML의 구성요소
사물 : 다이어그램 안에서 관계를 가질 수 있는 대상 (ex. 객체, 기능)
관계 : 사물과 사물 사이의 연관성
다이어그램 : 사물과 관계를 도형으로 나타낸 것 (관점에 따라 선택함) - 정적 다이어그램 : 구조적 다이어그램 -> 전체 시스템의 관계 - 동적 다이어그램 : 행위 다이어그램 -> 객채와 관련 (시간의 흐름)
사물
구조 사물 - 모델의 정적인 부분을 정의, 시스템의 개념적 요소를 표현 (ex. 유스케이스, 노드, 클래스, 컴포넌트...)
행동 사물 - 모델의 동적인 부분을 정의, 공간과 시간에 따라 달라지는 행위를 표현 (ex. 상태 머신, 상호작용)
그룹 사물 - 요소들을 그룹으로 묶어서 표현
주해 사물 - 주석과 같은 부가적인 설명
관계 (Relationship)
의존 관계 - 한 사물이 변경되면 다른 사물에게 영향을 주는 관계 (반대는 성립하지 않음)
연관 관계 - 객체 사이의 연결 관계
일반화 관계(상속) - 일반화된 사물과 더 특수화된 사물 사이의 관계
실체화 관계 - 사물이 할 수 있거나 해야하는 기능으로 그룹화할 수 있는 관계
다이어그램 (Diagram)
구조적 다이어그램 - 정적 모델링 - 클래스 다이어그램 : 클래스와 클래스 사이의 관계 (전체 시스템의 구조를 알고 싶을 때, 시간적 관계 X) - 오브젝트 다이어그램 : 특정 시점의 객체와 객체의 관계를 표현 (동적 같지만 한 시점에 멈췄을 때를 보는 것이기 때문에 동적 아님) - 컴포넌트 다이어그램 : 소스코드 간의 관계 (코드 구현을 할 때 필요)
행위 다이어그램 - 동적 모델링 - 시퀀스 다이어그램 : 객체들이 주고받는 메시지를 표현 - 상태 다이어그램 : 하나의 객체가 어떻게 변화하는 지 - 활동 다이어그램 : 시스템이 어떤 기능을 수행하는지 (시스템 중심)
유스케이스 다이어그램 - 동적으로 구분하는 경우도 있고 기능적으로 구분하는 경우도 있음 - 동적 : 액터가 어떤 기능을 수행하고 그 기능이 어떤 기능을 수행함 (순서가 있는 느낌) - 기능적 : 전체 시스템에서 어떤 기능이 있고 그 기능간의 관계를 알고자 하는 것이 목적