Unified Modeling Language : 객체 지향 소프트웨어 개발과정에서 산출물을 명세화, 시각화, 문서화할 때 사용되는 모델링 기술과 방법론을 통합해서 만든 표준화된 범용 모델링 언어 : 요구사항 모델링에 주로 사용됨
가시화 언어 | - 개념 모델 작성 시 오류가 적고 의사소통 용이 |
---|---|
구축 언어 | - 다양한 프로그래밍 언어로 실행 시스템의 예측 가능 |
| 사물 Things | - 추상적인 개념으로, 주제를 나타내는 요소 ( 구조 / 행동 / 그룹 / 주해 사물)
구조적(정적) 다이어그램
| 클래스 Class | ✓ 시스템 내 클래스의 정적 구조를 표현 ✓ 속성과 동작으로 구성 (클래스 이름 / 속성 / 연산 / 접근 제한자 -, +, #, ~ ) ✓ 시스템의 구조를 파악하고 구조상의 문제점 도출 가능 ✓ 클래스와 클래스 ⇒ 클래스의 속성 사이의 관계를 표현 | | --- | --- | | 객체 Object | ✓ 클래스에 속한 사물(객체)들, 즉 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현 ✓ 객체 인스턴스를 나타내는 대신 실제 클래스를 사용 ✓ 연관된 모든 인스턴스를 표현 | | 컴포넌트 Component | ✓ 코드 컴포넌트 기반의 물리적 구조 표현 ✓ 실질적 프로그래밍 작업에 사용 | | 배치 Deployment | ✓ 컴포넌트 사이의 종속성을 표현 ✓ 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현 | | 복합체 구조 Composite Structure | ✓ 클래스나 컴포넌트가 복합 구조를 갖는 경우, 그 내부 구조를 표현 | | 패키지 Package | ✓ 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현 |
행위적(동적) 다이어그램
| 유스케이스 Usecase | ✓ 사용자 관점에서 시스템의 활동을 표현 : 유스케이스 / 액터(필수) / 시스템으로 구성 ✓ 유스케이스는 시스템의 기능적 요구 정의에 활용 ✓ 구성요소 간의 관계 : 연관관계 / 포함관계 / 확장관계 / 일반화관계 | | --- | --- | | 시퀀스 (순차) Sequence | ✓ 객체 간 상호작용을 메시지 흐름으로 표현 : 객체 / 생명선 / 실행 / 메시지 / 회귀메시지 ✓ 객체 사이 메시지를 보내는 시간을 표현 ✓ 일반적으로 다이어그램의 수직방향이 시간의 흐름을 나타냄 ✓ 교류 다이어그램의 한 종류로 볼 수 있음 | | 커뮤니케이션 Communication | ✓ 시퀀스 다이어그램과 같이 동작에 참여하는 객체들이 주고 받는 메시지를 표현하는데, 메시지 뿐만 아니라 객체 간의 연관까지 표현 … 객체가 가진 상태와 변화에 대한 순서 | | 상태 State | ✓ 하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호작용에 따라 상태가 어떻게 변화하는지 표현 ✓ 모든 가능한 상태와 전이를 표현 ✓ 진입 조건, 탈출 조건, 상태 전이 등 기술 ✓ 구성요소 : 상태 / 시작상태 / 종료상태 / 전이 / 이벤트 / 전이조건 | | 활동 Activity | ✓ 시스템이 어떤 기능을 수행하는지를 객체의 처리 로직이나 조건에 따른 처리의 흐름으로 순서대로 표현 ✓ 활동의 순서대로 흐름을 표현 | | 타이밍 Timing | ✓ 객체 상태 변화와 시간 제약을 명시적으로 표현 |