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
(State)

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
(Meta Model)

- UML 기반의 설계를 가능케 하는 어트리뷰트, 클래스, 인스턴스 등과 같은 모델 요소를 정의하는 메타 모델

- UML 2.0의 하부구조는 4계층 메타 모델 관점에서 M2 수준의 UML 메타 모델임

M1

(User Model)

- 시스템 분석가나 설계자들이 일반적인 모델링 케이스 도구를 통해 특정 도메인 시스템을 설계한다고 했을 때의 메타 모델 수준(level)

- 사용자 모델을 도식하게 되는 수준

M0 (Run-Time Instance)

모델이 만들어낸 코드 실행 수준의 단계

 

 

 

 

댓글