정보처리기사 1과목 - 소프트웨어 설계 : UML(Unified Modeling Language)
[1] UML(Unified Modeling Language)
- 요구분석, 설계, 구현 등의 과정에서 사용되는 표준화된 모델링 언어로 대부분 다이어그램으로 표현
- 개발자 사이의 의사소통이 원활하게 이루어지도록 표준화한 통합 모델링 언어
[2] UML의 구성요소 ⭐⭐⭐
사물(Things), 관계(Relationship), 다이어그램(Diagram)
1. 사물(Things) : 모델을 구성하는 가장 중요한 기본 요소, 다이어그램 안에서 관계가 형성될 수 있는 대상들
구조 사물 (Structual Things) | - 시스템의 개념적, 물리적 요소 표현 - Class, Use Case, Node |
행동 사물 (Behavior Things) | - 시간과 공간에 따른 요소들의 행위 표현 - Interaction(상호작용), State Machine(상태 머신) |
그룹 사물 (Grouping Things) | - 요소들을 그룹으로 묶어서 표현 - Package |
주해 사물 (Annotation Things) | - 부가적 설명이나 제약조건 표현 - Note |
2. 관계(Relationship) : 사물과 사물 사이의 연관성 표현 ⭐⭐
연관관계 (Association) ( ㅡ ) |
- 2개 이상의 사물이 서로 관련됨 - 사물 사이를 실선으로, 방향성은 화살표로 표현 - 양방향의 경우 화살표 생략, 실선으로만 연결 - 연관에 참여하는 객체 수(다중도)를 선 위에 표현 1 : 1개의 객체가 연관 N : N개의 객체가 연관 0..1 : 연관된 객체가 없거나 1개만 존재 0...* or * : 연관된 객체가 없거나 다수 1..* : 연관된 객체가 적어도 1개 이상 n..* : 연관된 객체가 적어도 n개 이상 n..m : 연관된 객체가 최소 n개에서 최대 m개 |
집합관계 (Aggregation) ( ◇ ) |
- 하나의 사물이 다른 사물에 포함되어 있는 관계 - 포함하는 쪽(전체, Whole)과 포함되는 쪽(부분, part)은 서로 독립적 - 포함되는 쪽에서 포함하는 쪽으로 빈 마름모 연결 |
포함관계 (Composition) ( ◆ ) |
- 집합관계의 특수한 형태, 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계를 표현 - 포함하는 쪽(전체)과 포함되는 쪽(부분)은 서로 독립적일 수 없음, 생명주기를 함께 함 - 포함되는 쪽에서 포함하는 쪽으로 속이 채워진 마름모 연결 |
일반화 관계 (Generalization) ( ㅡ▷) |
- 하나의 사물이 다른 사물에 비해 더 일반적인지, 구체적인지 표현 - 일반적인 개념(상위, 부모) / 구체적인 개념(하위, 자식) - 구체적인 사물에서 일반적인 사물쪽으로 속이 빈 화살표 연결 |
의존관계 (Dependency) ( --> ) |
- 사물 사이에 서로 연관은 있으나, 필요에 의해 서로에게 영향을 주는, 짧은 시간 동안만 연관을 유지하는 관계 - 하나의 사물과 다른 사물은 소유 관계는 아니지만, 사물의 변화가 다른 사물에도 영향을 미침 - 영향을 주는 사물(이용자)이 영향을 받는 사물(제공자) 쪽으로 점선 화살표 연결 |
실체화 관계 (Realization) ( -- ▷) |
- 사물이 할 수 있거나, 해야하는 기능(행위, 인터페이스)으로 서로를 그룹화 할 수 있는 관계 표현 - 사물에서 기능쪽으로 속이 빈 점선 화살표 연결 |
3. 다이어그램(Diagram) : 사물과 관계를 도형으로 표현
- 여러 관점에서 시스템을 가시화한 뷰를 제공함으로써 의사소통에 도움을 줌
- 정적 모델링에서는 구조 다이어그램을 사용, 동적 모델링에서는 행위 다이어그램 사용
- 구조 다이어그램(Structure Diagram) : 시스템의 정적 구조와 다양한 추상화 및 구현 수준에서 시스템의 구성 요소, 구성 요소들간의 관계를 보여줌
구조 다이어그램의 종류 : 정적 모델링 ⭐⭐ | |
클래스 다이어그램 (Class Diagram) |
- 클래스와 클래스가 가지는 속성, 클래스 사이의 관계 표현 - 시스템의 구조 파악, 구조상의 문제점 도출 - 객체 모델링 작업에 사용됨 |
객체 다이어그램 (Object Diagram) |
- 클래스에 속한 사물(객체)들 = 인스턴스(instance)를 특정 시점의 객체와 객체 사이의 관계로 표현 |
컴포넌트 다이어그램 (Component Diagram) |
- 실제 구현 모듈인 컴포넌트 간의 관계나 컴포넌트 간의 인터페이스를 표현 - 구현 단계에서 사용 |
배치 다이어그램 (Deployment Diagram) |
- 물리적 요소(결과물, 프로세스, 컴포넌트)들의 위치를 표현 - 노드와 의사소통(통신) 경로로 표현 - 구현 단계에서 사용 |
복합체 구조 다이어그램 (Composite Structure Diagram) |
- 클래스나 컴포넌트가 복합 구조를 갖는 경우, 그 내부 구조를 표현 |
패키지 다이어그램 (Package Diagram) |
- 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현 |
- 행위 다이어그램(Behavior Diagram) : 시스템 내의 객체들의 동적인 행위를 보여주며, 시간의 변화에 따른 시스템의 연속된 변경을 설명해 줌
행위 다이어그램의 종류 : 동적 모델링 ⭐⭐ | |
유스케이스 다이어그램 (UseCase Diagram, 사용 사례) |
- 사용자의 요구를 분석하는 것으로, 기능 모델링 작업에 사용 - 사용자(Actor, 액터)와 사용 사례(Use Case)로 구성 - 사용 사례 간에는 여러 형태의 관계로 이뤄짐 |
순서(순차) 다이어그램 (Sequence Diagram) |
- 순서에 대한 도식적 표현, 사용되는 기호는 처리 과정 중에서 발생하는 동작, 데이터 기록, 장치 등을 표시함 - 상호 작용하는 시스템이나 객체들이 주고받는 메시지 표현 - 동적 모델링 작업에 사용 |
커뮤니케이션(협업) 다이어그램 (Communication Diagram) |
- 동작에 참여하는 객체들이 주고받는 메시지를 표현, 뿐만 아니라 객체들 간의 연관까지 표현 |
상태 다이어그램 (State Diagram) |
- 하나의 객체가 자신이 속한 클래스의 상태 변화 혹는 다른 객체와의 상호작용에 따라 어떻게 변화하는지 표현 - 객체지향모델에서 클래스의 인스턴스 사건(이벤트)에 의거한 작동(변화)을 보여주는 다이어그램 - 동적 모델링 작업에 사용 |
활동 다이어그램 (Activity Diagram) |
- 단계별 흐름 작업을 그림으로 표현한 다이어그램 - 시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현 - 동적 모델링 작업에 사용 |
상호작용 개요 다이어그램 (Interaction Overview Diagram) |
- 상호작용 다이어그램 간의 제어 흐름 표현 |
타이밍 다이어그램 (Timing Diagram) |
- 객체 상태 변화와 시간 제약을 명시적으로 표현 |
'자격증 > 정보처리기사 필기' 카테고리의 다른 글
[정보처리기사 필기] SW 설계 : 품질 요구사항 (0) | 2023.01.12 |
---|---|
[정보처리기사 필기] SW 설계 : 사용자 인터페이스(UI) (0) | 2023.01.12 |
[정보처리기사 필기] SW 설계 : 요구사항 확인 (0) | 2023.01.10 |
[정보처리기사 필기] SW 설계 : 개발 기술 환경 파악 (0) | 2023.01.10 |
[정보처리기사 필기] SW 설계 : 소프트웨어 생명주기(SDLC) (0) | 2023.01.10 |