목차 ( p.48 )
[1] 객체지향 모델링 언어 , UML
가. UML의 개념
나. UML의 특징
[2] UML의 4+1 View 개념 및 구성요소
가. UML의 4+1 View 개념
나. UML의 구성요소
[3] UML의 주요 Diagram
[4] UML의 적용현황 및 전망
1. 객체지향 모델링 언어 , UML
가. UML의 개념 (Unified Modeling Language)
객체지향 분석과 설계를 위한 표준 모델링 언어로 Booch의 OOD,럼바우(Rumbaugh)의 OMT,야콥슨(Jacobson)의 OOSE를 통합한 가시화/명세화/문서화/구축 언어
( 객체지향 , 분석 , 설계 ) / ( 표준 , 언어 , 모델링 ) / (가시화 , 문서화 , 명세화 , 구축 )
나. UML의 특징
- 방법(method)가 아닌 표기법(notation)으로 특정 프로세스와는 무관하다.
- 개발 규모, 개발 방법론, 프로세스 및 언어와는 관계없이 적용이 가능하다.
- 사용자와 개발자간 , 개발자 상호간 Communication 극대화 도구
- UML은 개발 프로세스에서 사용하는 다양한 다이어그램과 모델링 도구를 제공할 뿐 개발 프로세스 전체를 관리하지는 않는다.
즉, 라이프사이클(Life Cycle)이 없다.
- 반복적이고 점진적으로 소프트웨어를 개발하는 과정(Software Development Life Cycle)에서 매우 유용한 모델링 도구이다.
(방법 , 표기법 , 특정적 , 프로세스 , 무관) / (개발, 규모, 방법론, 프로세스) / (사용자, 개발자, 상호, 소통, 도구, 극대화) / (개발 프로세스 , 다이어그램, 모델링 , 전체적 관리, 라이프 사이클) / (반복,점진적,소프트웨어,SDLC, 모델링 도구)
2. UML의 4+1 View 개념 및 구성요소
가. UML의 4+1 View 개념
1. Logical View (논리적 관점)
- 시스템의 기능적 요구사항
- 주로 사용자가 시스템을 어떻게 사용하는지를 설명
- 주요 다이어그램: 클래스 다이어그램, 객체 다이어그램
2. Process View (프로세스 관점)
- 시스템의 동적 행위, 즉 실행 시간 동안의 행위
- 주요 다이어그램: 활동 다이어그램, 시퀀스 다이어그램.
3. Implementation View (개발/구현 관점)
- 시스템의 정적 조직
- 시스템이 어떻게 개발되고 구성되는지를 설명
- 시스템 모듈화 방법, 컴포넌트
- 주요 다이어그램: 컴포넌트 다이어그램, 패키지 다이어그램
4. Deployment View (배치 관점)
- 시스템의 물리적 배포
- 시스템이 실제로 어떤 하드웨어에서 실행되는지를 설명
- 주요 다이어그램: 배포 다이어그램
5. Use Case View (유스케이스/시나리오 관점)
- 시스템의 다양한 시나리오를 정의
- 앞서 언급한 4개의 View가 함께 협력하여 요구사항을 어떻게 충족시키는지 보여줌
(논리적, 시스템, 기능적 요구사항) / (프로세스, 시스템, 동적, 행위) / (개발, 구현, 정적 , 조직, 구성, 모듈화, 컴포넌트) / ( 배치, 배포, 물리적, 하드웨어) / (유스케이스, 시나리오, 협력, 요구사항, 충족)
나. UML의 구성요소
1. View
- 모델화된 시스템의 서로 다른 관점 (4+1 View)
2. Diagram
- View를 표현하기 위한 방법 ( 9개의 Diagram )
3. Model Element
- 다이어그램에 사용된 개념적 모델요소
- 클래스, 객체, 메시지, 관계성으로 구성
4. General Mechanism
- 모델요소에 대한 주석/정보/의미 등
(view, 모델화, 시스템, 관점) / (다이어그램, 뷰, 표현 방법) / (모델 요소, 다이어그램, 개념적, 클래스, 객체, 메시지, 관계성) / (제네럴 매커니즘, 모델요소, 주석/정보/의미)
3. UML의 주요 Diagram
Diagram | 설명 | ||
Use Case Diagram | 사용자와 시스템 간 상호작용, 기능요구 정의 | ||
Class Diagram | 클래스들의 정적구조 표현, 연관관계 표현 | ||
Behavior |
State Chart Diagram | 특정한 시간 동안 객체의 상태 변화 | |
Activity Diagram | 활동의 순서적 흐름(Operation 관점) | ||
Interaction | Sequence Diagram | 시간의 흐름에 따른 객체간 메시지 전달 | |
Collaboration Diagram | 객체들 간의 협력관계(Object 관점) | ||
Implement | Component Diagram | 코드의 물리적 구조, SW 모듈의 배치 | |
Deployment Diagram | H/W와 S/w의 물리적 구조, 배치 | ||
Object Diagram | 클래스들의 인스턴스(객체) 간의 관계 표현(Snapshot) | ||
Package Diagram | 업무에 대한 큰 그림 제공(S/W 관점) |
1.(유스케이스, 사용자, 시스템, 상호작용, 기능요구) / 2.(클래스,표현, 클래스들, 정적구조, 연관관계 ) / 3.(상태, 특정한, 시간, 객체, 상태 변화) / 4.(활동, 순서적, 흐름, Operation, 관점 ) / 5.(시퀀스,시간, 흐름, 객체간, 전달, 메시지 ) / 6.(콜라보레이션, 객체들 간, 관계, 협력, Object, 관점) / 7.(컴포넌트, 코드, 물리적 구조, SW 모듈, 배치) / 8.(배치, H/W, S/w, 물리적 구조) / 8.(객체,클래스들, 인스턴스(객체) 간, 관계, 표현, Snapshot ) / 10.(패키지, 업무, 큰 그림, 제공, S/W 관점)
4. UML의 적용현황 및 전망
가. UML은 객체지향에서 출발하여 CBD, MD의 근간으로 발전, MDA에서는 UML 2.0(excutable UML) 사용
나. UML은 사용자와 개발자 간의 효과적인 의사소통 수단이며, 사용자 요구사항의 도식화된 표현으로 계속 발전될 것