Composite Structure, Package, Interaction Overview, Timing |
I. 수준 높은 자동화를 지원하는 UML의 진화, UML 2.0의 개요
가. UML 2.0의 정의
- 웹 기반 어플리케이션과 SOA등 신기술의 등장으로 수준 높은 자동화를 지원하는 UML 기반의 도구의 필요성이 증가함에 따라 원래 표준보다 더 명확한 방식으로 UML 정의
나. UML 2.0의 등장배경
한계 |
내용 |
복잡성 |
크고 복잡하여 배우기 어려움, 적용이나 구현을 위한 접근이 어려움 |
이해하기 어려움 |
UML 규격의 Sematics나 Notation의 상세 내용에 대해 이를 정확하게 이해하기 어려움 |
간결성 부족 |
언어의 간결성 부족 서로 다른 도메인과 서로 다른 플랫폼에 효과적 대처 어려움 |
모델 공유 어려움 |
서로 다른 모델링 도구들 사이의 모델을 효과적으로 공유하기 어려움 |
아키텍처 설계 지원 부족 |
아키텍처 설계를 위한 다이어그램 지원 없음 |
모델-코드간 불일치 |
실질적으로 모델의 Behavior 부분을 기술할 수 없음 모델과 코드간 불일치 발생 |
II. UML 2.0의 구성도 및 다이어그램
가. UML 2.0의 구성도
나. UML 2.0의 다이어그램
다이어그램 |
설명 |
계통 |
Activity |
절차적이고 병렬적이 행위 기술 |
UML 1 |
Class |
클래스와 클래스 간의 관계 기술 |
UML 1 |
Communication |
객체들 간의 상호작용 연결에 초점을 맞춰 기술 |
Collaboration |
Component |
컴포넌트의 구조와 연관관계 기술 |
UML 1 |
Composite structure |
하나의 클래스 실행 시 내부구조 기술 |
New to UML 2 |
Deployment |
시스템의 물리적 배치 기술 |
UML 1 |
Interaction overview |
Sequence와 Activity diagram의 결합 |
New to UML 2 |
Object |
특정 시점 객체의 snapshot 기술 |
UML 1에서 비공식 |
Package |
시스템의 컴파일시의 계층적 구조 기술 |
New to UML 2 |
Sequence |
객체들 간의 상호작용을 순서에 맞춰 기술 |
UML 1 |
State machine |
객체 상태에 따른 작업과 event에 따른 상태 변화 기술 |
UML 1 (State) |
Timing |
객체들간의 상호작용을 시간 제약에 초점을 맞춰 기술 |
New to UML 2 |
Use Case |
사용자가 상호작용하는 시스템의 모습을 기술 |
UML 1 |
III. UML 2.0의 4가지 영역 및 계층구조
가. UML 2.0의 4가지 영역
영역 |
설명 |
다이어그램 호환 영역 |
- CASE 도구 벤더들 간의 모델 호환을 위한 정의 |
OCL 영역 |
- 모델 요소에서 제어와 제약을 위한 간략한 규약을 정의 - 특정 도메인에 대한 제한을 명시화하기 위해 사용 |
하부구조 |
- MOF, UML, CWM (Common Warehouse Metamodel)과 같은 메타 모델을 정의하는데 활용 될 수 있는 메타 언어 규약 - 프로파일을 사용하는 UML을 커스터마이징 할 수 있게 함 - 메타 모델간 상호 호환을 지원 |
상부구조 |
- 메타 모델을 사용하여 사용자 정의 모델의 구조와 행위를 정의함 - 구조형 다이어그램, 행위형 다이어그램을 정의 |
나. UML2.0의 계층구조
계층 |
설명 |
M3 (Meta-Meta Model) |
- MOF (Meta Object Facility)는 M2 수준에 속한 메타 모델을 정의하는 메타 메타 모델 |
M2 (Meta Model) |
- UML 기반의 설계를 가능하게 하는 속성, 클래스, 인스턴스 등과 같은 모델 요소를 정의하는 메타모델 - UML 2.0 하부구조는 4계층 메타 모델 관점에서 M2 수준의 UML 메타모델 |
M1 (User Model) |
- 시스템 분석가나 설계자들이 일반적인 모델링 케이스 도구를 통해 특정 도메인 시스템을 설계한다고 했을때의 메타모델 수준 - 사용자 모델을 도식하게 되는 수준 |
M0 (Real-Time Instance) |
- 모델이 만들어낸 코드를 실행하는 수준의 단계 |
'IT기술노트 > 소프트웨어공학' 카테고리의 다른 글
유즈케이스 다이어그램 (Use-Case Diagram) (0) | 2021.01.31 |
---|---|
시퀀스 다이어그램 (Sequence Diagram) (0) | 2021.01.31 |
액티비티 다이어그램 (Activity Diagram) (0) | 2021.01.31 |
클래스 다이어그램 (Class Diagram) (0) | 2021.01.31 |
UML(Unified Modeling Language) (0) | 2021.01.31 |
다형성 (Polymorphism) (0) | 2021.01.31 |
객체지향 (Object-Oriented) (0) | 2021.01.31 |
객체지향 설계원칙 (0) | 2021.01.31 |
댓글