UML
태그 :
- 개념
- 방법론을 통합한 것으로 표준화된 모델링 기법 제공
1. UML의 특징
-방법론을 통합한 것으로 표준화된 모델링 기법 제공
-사용자들에게 사용하기 쉽고 표현이 풍부한 시각적 모형화 언어 제공<->메타포와 대비
-특정 프로그래밍 언어나 개발 공정에 종속되지 않음
-개발하려는 시스템 규모에 관계없이 제공 가능
2. 가구명문 으로 암기
특징 |
설명 |
가시화 언어 |
-개념 모델 작성시 오류가 적고 의사소통을 용이하게 함 |
구축 언어 |
-다양한 프로그래밍 언어와 연결 왕복 공학 가능(순공학/역공학) -실행 시스템 예측 가능 |
문서화 언어 |
-시스템에 대한 평가,통제, 의사소통의 문서 (요구사항, 아키텍처, 설계, 소스, 코드, 프로젝트, 계획) |
명세화 언어 |
-정확한 모델 제시,완전한 모델 작성,분석,설계의 표현 |
3. UML 구성요소와 분류
구성요소 |
내용 |
사물(Things) (구행그주) |
구조(Structural) 사물 : Use Case, Collaboration, Interface, Class, Object, 행위(Behavioral) 사물 : Interaction, Activity, State Machine 그룹(Grouping) 사물 : package 주해(Annotation) 사물 : Note |
관계 (RalationShips) (의연일실) |
의존(Dependency) 관계, 연관(Associatoin) 관계, 일반화(Generaliztion) 관계, 실제화(Realization) 관계 |
도해 (Diagrams) |
기능모델 : 유스케이스(Use Case) 다이어그램,
정적모델 : 객체(Object) 다이어그램 클래스(Class) 다이어그램, 컴포넌트(Component) 다이어그램, 배치(Deployment) 다이어그램, 패키지(Package) 다이아그램 합성구조(Composite structure) 다이아그램
동적 모델 : 시퀀스(Sequence)다이어그램 액티비티(Activity) 다이어그램, Interaction Overview 다이아그램 상태(State)다이어그램, State Machine 다이아그램 Communication 다이아그램 Timing 다이아그램
|
8. UML 메커니즘
- 명세(Specification): 모든 UML 구성요소의 그래픽 표기에는 표준화된 명세법이 있어서 정확한 구문과 의미를 전달 할 수 있다.
- 장식(Adornment): UML 의 각 요소들은 요소의 중요한 특징을 표현하기 위해 고유한 그래픽 표기를 가지고 있다
- 공통분할(Common division): UML 에서는 클래스/객체 형태의 공통 분할을 지원한다. 클래스에 대하여 클래스 인스턴스인 객체가 존재하고, 유스케이스에 대하여 유스케이스 인스턴스가, 컴포넌트에 대응하여 컴포넌트 인스턴스가 노드에 대한 노드 인스턴스가 인터페이스/구현과 같은 형태의 공통분할도 지원한다.
- 확장 메커니즘(Extensibility mechanism)
스테레오 타입(Stereotypes): |
UML 의 기본적인 요소 이외의 새로운 요소 만들어 내기 위한 확장 메 커니즘이다. 형태는 기존의 UML 의 요소를 그대로 사용하나 내부의미는 다른 목적으로 사용하도록 확 장한다. 스테레오 타입 객체는 << >> 기호를 사용하여 표현한다. |
꼬리표값(Tagged values): |
UML 구성 요소가 갖는 속성을 확장하여 구성요소의 명세서에 새로운 정 보를 추가하기 위한 메커니즘이다. {tag=value} 기호를 사용하여 표현한다.
|
제약(Constraints): |
UML 구성 요소에 있는 이전의 규칙을 수정하거나 새롭게 생성하기 위한 메커니 즘이다. {} 기호를 사용하여 표현한다. |
9. UML 4+1 View와 UML 4-계층구조
가. UML 4+1 View
-하나의 소프트웨어 개발 프로젝트에는 많은 이해당사자가 존재한다.각 당사자는 자신만의 관점에서 프로젝트를 바라보고 자신에게 해당하는 요구사항을 제시한다.따라서 이해당사자마다 소프트웨어를 바라보는 관점이 다르다.따라서 UML에서는 시스템을 바라보는 관점에 따라 5개의 View를 제공
구분 |
설명 |
내용 |
Use-Case View |
-이해당사자:End-User -요구사항:Functionality |
-요구 사항을 분석해 시스템의 기능(Functionality)을 명세화 -Use Case Diagram이 사용, Sequence Diagram, Collaboration Diagram, Activity Diagram을 사용하여 시스템의 동적인 부분도 명세화 |
Logical View |
-이해당사자:Analysts/ Designers -요구사항:Structure |
-Use Case View에 표현된 요구사항들을 시스템의 구조와 행동으로 명세화 -모델요소:Class,Interface,Object,Collaboration -Class Diagram,Object Diagram,Sequence Diagram, Collaboration Diagram,Activity Diagram,StateChart Diagram |
Process View |
-이해당사자:System Integrators -요구사항:Performance, Scalability,Throughput |
-Thread와 Process에 의한 동작을 중점적으로 표현 -동시성,분산처리,시스템 통합,오류 허용들을 표현
|
Implementaion View (Development) |
-이해당사자:Programmer -요구사항:Sofeware Management |
-Logical View와 Process View에서 설계한 UML 모델요소(Class와 Interface)들을 물리적인 소프트웨어 모듈로 표현하는데 사용 -모델요소:Component,Interface –Class Diagram을 사용 |
Deployment View (Physical) |
-이해당사자:System Engineer -요구사항:System- topology,Delivery, Installatoin - communication |
-Implementaion View에서 정의한 UML 모델요소(Component, Interface)를 배치할 하드웨어를 표현 -Deployment Diagram이 사용
|
나.UML 4-계층 구조
1)M3(Meta-Metamodel): M2 수준에 속한 메타 모델을 정의하는 메타 메타모델, MOF지원
2)M2(Metamodel): UML 기반 설계를 가능케 하는 모델 요소를 정의하는 메타 모델.즉, 모델을 설정하는
언어를 정의하는 역할
3)M1(User Model):사용자 모델을 도식화하는 모델 계층
4)M0(Run-Time Instances):모델이 코드를 만들고,그것을 실행하는 단계
다.UML에서 클래스 관계(Relation) 표현 방법
명칭 |
표현방식 |
설명 |
Associate (연관) |
-클래스가 개념적으로 서로 연관되어 있는 경우 사용 -두 클래스간 서로 어떠한 연관을 가지고 있는지 의미(has a) |
|
Dependency (의존) |
-클래스가 개념적으로 서로 연관되어 있으나 일시적인 관계 -클래스가 변경되면 그것을 사용하는 다른 곳도 같이 변경하는 관계 |
|
Aggregation (집합연관) |
-Associate 관계이면서 전체와 부분의 관계(part of) -생명 주기를 같이 하지 않는다. |
|
Composition (복합연관) |
-전체와 부분의 관계,전체가 소멸 시 부분도 소멸(contains a) -생명 주기를 같이 한다. |
|
Inheritance (상속) |
-일반화된 개념적 사물과 구체화된 특수 사물의 관계 -부모 자식 간의 상속 개념,자식은 부모의 속성과 행동을 공유 |