본문 바로가기
정보관리기술사_개념/SW공학

[정보관리기술사] UML

by 두유_ 2024. 8. 12.

목차 ( 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은  사용자와 개발자 간의 효과적인 의사소통 수단이며, 사용자 요구사항의 도식화된 표현으로 계속 발전될 것