UI 설계를 위한 UML
1. UML (Unified Modeling Language)
- 객체지향 SW 개발 과정에서 산출물을 명세화, 시각화, 문서화할 때, 사용되는 모델링 기술과 방법론을 통합해 만든 표준화된 범용 모델링 언어
2. UML의 특징
특징 | 설명 |
가시화 언어 | - 개념 모델 작성 시, 오류가 적고 의사소통 용이 |
구축 언어 | - 다양한 프로그래밍 언어로 실행 시스템의 예측 가능 - UML을 소스 코드로 변환해 구축 가능, 역 변환해 역공학 가능 |
명세화 언어 | - 정확한 모델 제시, 완전한 모델 작성 가능 |
문서화 언어 | - 시스템에 대한 평가 및 의사소통의 문서 |
3. UML 구성요소
구성요소 | 내용 |
사물 (Thing) |
- 추상적인 개념. 주제를 나타내는 요소 |
관계 (Relationships) |
- 사물의 의미를 확장하고 명확히 하는 요소 - 사물과 사물을 연결하여 관계를 표현 |
다이어그램 (Diagrams) |
- 사물과 관계를 모아 그림으로 표현한 형태 |
4. UML 다이어그램
- 구조적(Structural) 다이어그램 / 정적(Static) 다이어그램
다이어그램 | 설명 |
클래스 (Class) |
클래스 간 정적인 관계를 표현 |
객체 (Object) |
클래스에 속한 사물, 인스턴스 |
컴포넌트 (Component) |
컴포넌트와 그들 사이의 의존 관계 |
배치 (Deployment) |
컴포넌트 사이의 종속성, 물리적 요소들의 위치 |
복합체 구조 (Composite Structure) |
클래스 or 컴포넌트가 복합 구조를 갖는 경우, 그 내부 구조를 표현 |
패키지 (Package) |
유스케이스 or 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현 |
- 행위적(Behavioral) 다이어그램 / 동적(Dynamic) 다이어그램
다이어그램 | 설명 |
유스케이스 (Usecase) |
시스템 외부 요소를 사용자 관점에서 표현 |
시퀀스 (Sequence) |
시간적 개념을 중심으로 메시지 흐름으로 표현 |
커뮤니케이션 (Communication) |
객체들이 주고받는 메시지를 표현하고, 객체 간의 연관까지 표현 |
상태 (State) |
상태가 어떻게 변화하는지 표현 |
활동 (Activity) |
어떤 기능을 수행하는지, 처리 로직 or 처리 흐름을 순서대로 표현 |
타이밍 (Timing) |
객체 상태 변화와 시간 제약을 명시적으로 표현 |
5. UML 확장 모델의 스테레오 타입
- ‘<< >>’ (길러멧; Guillemet) 기호를 사용해 표현
6. 클래스 다이어그램
- 객체 지향 모델링 시, 클래스의 속성 및 연산과 클래스 간 정적인 관계를 표현한 다이어그램
- 접근 제어자
기호 | 설명 |
- (private) | 클래스 내부 접근 허용 |
+ (public) | 클래스 외부 접근 허용 |
# (protected) | 동일 패키지/파생 클래스에서 접근 |
~ (default) | 동일 패키지 클래스에서 접근 |
7. 클래스 간의 관계 (Relationship) (영어도 확인)
관계 | 설명 |
연관 관계 (Association) |
- 실선, 2개 이상의 사물이 서로 관련되어 있는 상태 ex) (사장) - (직원) |
의존 관계 (Dependency) |
- 점선 화살표, 서로 연관은 있으나 필요에 따라 짧은 시간동안만 연관을 유지 ex) (교수) <--- (수업) |
일반화 관계 (Generalization) |
- 속이 빈 삼각형 화살표, 부모-자식, 상속관계 - 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지 표현 ex) (차) ◁- (버스), (택시) |
실체화 관계 (Realization) |
- 속이 빈 점선 삼각형 화살표 - 사물이 할 수 있거나 해야 하는 기능으로 서로를 그룹화 ex) (날 수 있는) ◁--- (새), (비행기) |
포함 관계 (Composition) |
- 속이 채워진 마름모, 집합보다 강한 관계, 전체/부분, 전체 객체가 삭제 시, 같이 제거 ex) (노트북) ◆- (키보드), (모니터) |
집합 관계 (Aggregation) |
- 속이 빈 마름모, 하나의 객체에 여러 개의 독립적인 객체들이 구성 - 하나의 사물이 다른 사물에 포함되어 있는 관계 ex) (컴퓨터) ◇- (키보드), (모니터) |