UML 2.0
태그 :
- 개념
- UML 1.0 개선
I. UML 2.0의 배경 (UML 1.0을 개정 이유)
-2005년 7월 발표 ( 현재 2.1.2 )
-객체지향, 컴포넌트 뿐만 아니라 SOA, MDA, 리얼타입, 워크플로우 시스템에 대한 지원 강화
-요구사항 획득으로부터 마지막 테스트까지 모두 지원하는 표기법으로 진화
-분석/설계와 실제 구현 간의 차이를 극복
II. UML 2.0의 향상된 특징
특징 |
내용 |
정확한 언어구조 |
- MDD에 필요한 고급 자동화를 지원 - 모델의 모호함과 부정확성을 없애고 프로그램이 모델을 변형 및 조작을 가능케 함 |
향상된 언어구조 |
- 사용자가 언어에 보다 쉽게 접근할 수 있고 툴들 간 내부 작동을 활성화 할 수 있는 모듈식 구조 |
규모가 큰 시스템의 모델링 향상 |
- 현대 시스템은 더욱더 복잡해지고 있는 추세로 이를 지원하기 위해 유연한 새로운 계층 기능이 언어에 추가되어 소프트웨어 모델링을 지원 |
도메인 스펙의 특성화 지원 향상 |
- "확장" 메커니즘 이용 - 기본적인 언어가 보다 정확하고 단순해지도록 정리 되었음 |
다양한 모델링 개념들의 정리, 개념화, 정의 |
- 보다 단순하고 일관성 있는 언어 - 중복된 개념을 제거하고, 많은 정의들을 정리하고, 텍스트 정의와 예제 추가 |
III. 다이아그램 변경 사항
Composite Structure Diagram : 단계화된 구조를 통해 classifier내 요소간 관계 표현
Interaction Overview Diagram : 시퀀스들의 workflow를 보여주기 위해 서로다른 시퀀스들간의 activity 흐름 표현
Communication Diagram : collaboration을 지칭하는 용어 변경
Timing Diagram : 시간 흐름 관점에서 객체 상태 변이, 상호작용을 가시화
Diagram |
내용 |
비고 |
Class |
클래스와 클래스 간의 관계를 기술 |
UML 1 |
Component |
컴포넌트의 구조와 연관관계를 기술 |
UML 1 |
Object |
특정 시점의 객체의 Snapshot을 기술 |
unofficially in UML 1 |
Composite Structure (Architecture) |
- 하나의 클래스의 실행 시의 내부 구조를 기술 - CBD 지원 |
New to UML2 |
Deployment |
시스템의 물리적인 배치를 기술 |
UML 1 |
Package |
시스템의 컴파일시의 계층적인 구조를 기술 |
unofficially in UML 1 |
Activity |
절차적이고 병렬적인 행위를 기술 |
UML 1 |
Use Case |
사용자가 상호작용하는 시스템의 모습을 기술 |
UML 1 |
State machine |
객체의 상태에 따른 작업과 Event에 따른 상태의 변화를 기술 |
UML 1 |
Sequence |
객체들간의 상호작용을 순서에 초점을 맞춰 기술 |
UML 1 |
Interaction Overview |
Sequence와 Activity Diagram의 결합 |
New to UML2 |
Communication (Collaboration) |
객체들간의 상호작용을 연결에 초점을 맞춰 기술 |
UML 1 |
Timing |
객체들간의 상호작용을 시간 제약에 초점을 맞춰 기술 |
New to UML2 |
라. UML1.0 vs UML 2.0
구분 |
UML 1.X |
UML 2.0 |
복잡성 |
- 복잡하고 습득 어려움 - 적용이나 구현이 어려움 |
- Structure와 Behavior의 계층적 분해 - 단순한 언어로 접근성 향상 |
UML |
- Semantics나 Notation의 상세 내용 정확하게 이해하기 어려움 |
- 기존 MSC(Message Sequence Chart)의 개념 도입 - Sequence Diagram에 매우 향상된 Semantics를 제공 |
간결성 |
- 언어의 간결성 부족 - 이 기종 도메인 및 플랫폼에 효과적으로 대처하기 어려움 |
- MDA(Model Driven Architecture) 개념을 적용하여 플랫폼 독립적 기술 |
컴포넌트 개념 |
- 컴포넌트 기반 개발 지원 안 함 |
- Composite Structures를 통한 CBD(Component-Based Development) 지원 |
모델-코드간 불일치성 |
- 실질적으로 모델의 Behavior부분을 기술 불가 - 모델과 코드가 일치하지 않는 경우 발생 |
- Behavioral Constructs를 갖는 Action Semantics의 통합으로 상세 기술 가능 |
IV. UML 2.0 표준의 구성 및 4-계층 구조
가. UML 2.0 표준의 구성(4개 영역)
영 역 |
내 용 |
다이어그램 호환 (Diagram Interchange) 영역 |
- CASE 도구 벤더들 간의 모델 호환을 위한 정의 |
OCL (Object Constraint Language) 영역 |
- 모델요소에서 제어와 제약을 위한 간략한 규약을 정의 - 특정 도메인에 대한 제한을 명시화하기 위해 사용됨 |
하부구조(Infrastructure) |
- MOF, UML, CWM(Common Warehouse Metamodel)과 같은 메타모델을 정의하는데 활용될 수 있는 메타언어 규약 - 프로파일을 사용하여 UML을 커스터마이징할 수 있게 함 - 메타모델간 상호 호환을 지원함 |
상부구조(Superstructure) |
- 메타모델을 사용하여 사용자 정의 모델의 구조와 행위를 정의함 - 구조형 다이어그램: Class, Component, Composite, Structure, Deployment, Package, Object - 행위형 다이어그램: Activity, Use Case, Sequence, Communication, Timing, Interaction Overview, Stat-Machine |
나. 4-계층 구조(OMG 4계층 메타모델)
계 층 |
설 명 |
M3 (Meta-Meta Model) |
- MOF (Meta Object Facility)는 M2 수준에 속한 메타모델을 정의하는 메타 메타모델 |
M2 |
- UML 기반의 설계를 가능케 하는 어트리뷰트, 클래스, 인스턴스 등과 같은 모델 요소를 정의하는 메타 모델 - UML 2.0의 하부구조는 4계층 메타 모델 관점에서 M2 수준의 UML 메타 모델임 |
M1 (User Model) |
- 시스템 분석가나 설계자들이 일반적인 모델링 케이스 도구를 통해 특정 도메인 시스템을 설계한다고 했을 때의 메타 모델 수준(level) - 사용자 모델을 도식하게 되는 수준 |
M0 (Run-Time Instance) |
모델이 만들어낸 코드 실행 수준의 단계 |