학습 기록/정보처리기사

[1. 소프트웨어 설계] UML(Unified Modeling Language)

희희웃는청바지 2023. 8. 13. 16:08

UML(Unified Modeling Language)란?

: 객체 지향 소프트웨어 개발 과정에서 산출물을 명세화, 시각화, 문서화 할 때 사용되는 모델링 기술과 방법론을 통합해서 만든 표준화된 범용 모델링 언어

: 소프트웨어 설계 시 가장 많이 사용되는 기법

 

UML 특징

1) 가시화 언어 : 개념 모델 작성 시 오류가 적고 의사소통 용이

2) 구축 언어 : 다양한 프로그래밍 언어로 실행 시스템의 예측 가능, UML을 소스코드로 변환해 구축 가능

3) 명세화 언어 : 정확한 모델 제시, 완전한 모델 작성 가능

4) 문서화 언어 : 시스템에 대한 평가 및 의사소통 문서

 

UML 구성요소

1) 사물 (Things)

 : 추상적인 개념으로 주제를 나타내는 요소

: 명사 또는 동사 의미

 

2) 관계 (Relationships)

: 사물과 사물을 연결하여 관계를 표현하는 요소

: 사물의 의미를 확장하고 명확히 하는 요소

: 형용사 또는 부사 의미

* 아래 UML 관계에서 세부사항 확인

 

3) 다이어그램 (Diagrams)

: 사물과 관계를 모아 그림으로 표현한 형태

: 형식과 목적에 따라 9가지로 정의

 

UML 다이어그램

[구조적(Structural) / 정적(Static) 다이어그램]

다이어그램 설명
클래스
(Class)
- 시스탬 내 클래스의 정적 구조 표현
- 속성(Attribute), 동작(Behavior)로 구성
- 구조를 파악하고 구조상 문제점 도출 가능
- 클래스와 클래스, 클래스의 속성 사이의 관계 표현
객체
(Object)
- 클래스에 속한 사물(객체)/인스턴스를 특정 시점의 객체와 객체 사이 관계로 표현
- 연관된 모든 인스턴스 표현
컴포넌트
(Component)
- 코드 컴포넌트 기반의 물리적 구조 표현
- 구현 단계에서 사용
배치
(Deployment)
- 컴포넌트 사이 종속성 표현
- 결과물, 프로세스, 컴포넌트 등 물리적 요소들 위치 표현
- 구현 단계에서 사용
복합체 구조
(Composite Structure)
- 클래스나 컴포넌트가 복합 구조를 갖을 경우 해당 내부 구조를 표현
패키지
(Package)
- 유스케이스나 클래스 등 모델 요소들을 그룹화한 패키지들 관계를 표현

 

[행위적(Behavioral) / 동적(Dynamic) 다이어그램]

다이어그램 설명
유스케이스
(Usecase)
- 사용자 관점에서 시스템 활동 표현
- 시스템 기능적 요구 정의에 활용
시퀀스
(Sequence)
- 객체 간 상호 작용을 메시지 흐름 및 메시지 발송 시간을 표현
- 교류 다이어그램의 한 종류
커뮤니케이션
(Communication)
- 시퀀스와 같이 동작에 참여하는 객체들의 상호작용 메시지와 객체간의 연간 관계까지 표현
상태
(State)
- 객체가 속한 클래스의 상태 변화나 객체와의 상호 작용에 따른 상태 변화 표현
- 모든 가능한 상태와 전이 표현
활동
(Activity)
- 시스템이 수행하는 기능, 객체의 처리 로직이나 조건에 따른 처리 흐름을 순서대로 표현
타이밍
(Timing)
- 객체 상태 변화와 시간 제약 표현

UML 상세 - 따로 정리 진행, 각 링크 참고

1) 클래스 다이어그램

2023.08.13 - [학습 기록/정보처리기사] - [1. 소프트웨어 설계] 클래스 다이어그램

 

[1. 소프트웨어 설계] 클래스 다이어그램

클래스 다이어그램이란? : 객체 지향 모델링 시 클래스의 속성 및 연산과 클래스 간 정적 관계를 표현한 다이어그램 : 클래스와 클래스, 클래스 속성 사이 관계 표현 클래스 다이어그램 구성요소

kcode-recording.tistory.com

 

2) 유스케이스 다이어그램

2023.08.13 - [학습 기록/정보처리기사] - [1. 소프트웨어 설계] 유스케이스 다이어그램

 

[1. 소프트웨어 설계] 유스케이스 다이어그램

유스케이스 다이어그램이란? : 시스템이 제공하고 있는 기능 및 그와 관련된 외부 요소를 사용자의 관점에서 표현하는 다이어그램 유스케이스 다이어그램 구성요소 1) 유스케이스 (Usecase) : 시스

kcode-recording.tistory.com

 

3) 시퀀스 다이어그램

2023.08.13 - [학습 기록/정보처리기사] - [1. 소프트웨어 설계] 시퀀스 다이어그램

 

[1. 소프트웨어 설계] 시퀀스 다이어그램

시퀀스 다이어그램이란? : 객체 간 상호 작용을 메시지 흐름으로 표현한 다이어그램 시퀀스 다이어그램 구성요소 1) 객체 (Object) : 위쪽에 표시되며 아래로 생명선을 가짐 : 사각형 안에 밑줄 친

kcode-recording.tistory.com


UML 관계

- 사물과 사물 사이의 연관성을 표현

- 연관 관계, 의존 관계, 일반화 관계, 실체화 관계, 포함 관계, 집합 관계 등 존재

 

1) 연관 (Association) 관계

: 2개 이상의 사물이 서로 연관된 상태를 표현

: 실선으로 연결하여 표현하며, 방향성은 화살표로 표현 (양방향일 경우 화살표 생략)

 

2) 의존 (Dependency) 관계

: 사물 사이에 연관은 있지만, 필요에 따라 영향을 주는 짧은 시간 동안만 연관 관계를 유지하는 관계

: 사물의 변화가 다른 사물에도 영향

: 영향을 주는 사물이 영향을 받는 사물 쪽으로 점선 화살표를 연결하여 표현

 

3) 일반화 (Generalization) 관계

: 하나의 사물이 다른 사물에 비해 일반적(부모, 상위)인지, 구체적(자식, 하위)인지 표현

: 구체적인 사물에서 일반적인 사물 쪽으로 속이 빈 실선 화살표를 연결

 

4) 실체화 (Realization) 관계

: 한 객체가 다른 객체에 오퍼레이션을 수행하도록 지정하는 관계 표현

: 사물에서 기능 쪽으로 속이 빈 점선 화살표를 연결

 

5) 포함 (Composition) 관계

: 집합 관계의 특수 형태, 포함하는 사물의 변화가 포함되는 사물에 영향을 미치는 관계

: 포함되는 쪽에서 포함하는 쪽으로 속이 채워진 마름모를 연결

 

6) 집합 (Aggregation) 관계

: 하나의 사물이 다른 사물에 포함된 관계

: 포함되는 쪽에서 포함하는 쪽으로 속이 빈 마름모를 연결


UML 확장 모델의 스테레오 타입

: UML의 기본적 요소 이외의 새로운 요소를 만들어 내기 위한 확장 메커니즘

: 형태는 기존 UML을 그대로 사용하나 의미는 다른 목적으로 사용하도록 확장

 

[스테레오 타입 유형]

1) <<include>> 포함 : 하나의 유스케이스가 어떤 시점에 반드시 다른 유스케이스를 실행하는 포함 관계

2) <<extend>> 확장 : 유스케이스를 실행할 수도 있고, 그렇지 않을수도 있는 확장 관계, 특별 조건을 만족시 수행

3) <<interface>> 인터페이스 : 모든 메서드가 추상 메서드로, 바로 인스턴스를 만들수 없는 클래스로 추상 메서드와 상수만으로 구성된 클래스

4) <<entity>> 개체 : 정보 또는 오래 지속되는 연관 행위 형상화 클래스, 처리 흐름 수행 과정에서 기억 장치에 저장될 정보 표현 클래스

5) <<boundary>> 영역 : 시스템과 외부 액터와 상호작용을 담당

6) <<controller>> 제어 : 시스템이 제공하는 기능의 로직 및 제어를 담당하는 클래스