도도한 개발자

[정보처리기사] UML 다이어그램 본문

자격증/정보처리기사

[정보처리기사] UML 다이어그램

Kiara Kim 2022. 5. 3. 21:40

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

 

@ UML 구성요소

- 사물(Things) : 추상적인 개념으로, 주제를 나타내는 요소. '명사' 또는 '동사'

- 관계(Relationships) : 사물의 의미를 확장하고 명확히 하는 요소. '형용사' 또는 '부사'

- 다이어그램(Diagrams) : 사물과 관계를 모아 그림으로 표현한 형태. 9가지로 정의

 

@ UML 다이어그램

구분 다이어그램 설명
구조적(정적) 다이어그램
Structural(Static)
클래스(Class) 객체 지향 모델링 시 클래스의 속성 및 연산과 클래스 간 정적인 관계 표현
객체(Object) 클래스에 속한 사물(객체), 즉 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현
컴포넌트(Component) 시스템을 구성하는 물리적인 컴포넌트와 그들 사이의 의존 관계를 나타냄
배치(Deployment) 컴포넌트 사이의 종속성을 표현하고, 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현
복합체 구조(Composite Structure) 클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현
패키지(Package) 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계 표현, 패키지 사이의 의존관계 표현
행위적(동적) 다이어그램
Behavioral(Dynamic)
유스케이스(Usecase) 시스템이 제공하는 기능 및 관련된 외부 요소를 사용자의 관점에서 표현
시퀀스(Sequence) 객체 간 동적 상호 작용을 시간적 개념을 중심으로 메시지 흐름으로 표현
커뮤니케이션(Communication) 동작에 참여하는 객체들이 주고 받는 메시지를 표현하고, 메시지뿐만 아니라 객체 간의 연관까지 표현
상태(State) 하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 객체 간의 연관까지 표현
활동(Activity) 시스템이 어떤 기능을 수행하는지를 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서대로 표현
타이밍(Timing) 객체 상태 변화와 시간 제약을 명시적으로 표현

 

@ 클래스 다이어그램 구성요소

- 클래스 : 공통의 속성, 연산(메서드), 관계, 의미를 공유하는 객체들의 집합

- 속성 : 인스턴스가 보유할 수 있는 값의 범위 기술

- 연산 : 이름, 타임, 매개변수와 연관된 행위를 호출하는 클래스의 행위적 특징

- 접근 제어자 : 클래스에 접근할 수 있는 정도 private(-), public(+), protected(#), default(~)

 

@ 클래스 간의 관계

- 연관(Association) : 클래스가 서로 개념적으로 연결된 선

- 의존(Dependency) : 하나의 클래스가 또 다른 클래스를 사용하는 관계

- 일반화(Generalization) : 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지 표현

- 실체화(Realization) :추상 클래스나 인터페이스를 상속받아 자식 클래스가 추상 메서드 구현

- 포함(Composition) :  영구적이고, 집합 관계보다 더 강한 관계로 구성

- 집합(Aggreegation) : 하나의 사물이 다른 사물에 포함되어 있는 관계

 

@ 유스케이스 다이어그램 구성요소

- 유스케이스 : 액터가 시스템을 통해 수행하는 일련의 행위

- 액터 : 사용자가 시스템에 대해 수행하는 역할

- 시스템 : 전체 시스템의 영역

- 시나리오 : 발생되는 이벤트의 흐름

- 이벤트의 흐름 : 사람, 시스템, 하드웨어, 시간의 흐름에 의해 시작

 

@ 유스케이스 다이어그램의 관계

- 포함 관계 : 유스케이스를 수행할 때 다른 유스케이스가 반드시 수행되는 관계. <<include>>

- 확장 관계 : 특정 조건이 만족되는 상황에서만 확장 유스케이스의 이벤트 흐름이 발생. <<extend>>

- 일반화 관계 : 추상적인 액터와 좀 더 구체적인 액터 사이를 맺어주는 관계

 

@ 시퀀스 다이어그램 구성요소

- 객체(Object) : 객체는 위, 아래로 생명선. 객체 사각형 안에 밑줄 친 이름으로 명시

- 생명선(Lifeline) : 객체로부터 뻗어 나가는 점선. 객체 생명주기 동안 발생하는 이벤트 명시

- 실행(Activation) : 직사각현은 함수가 실행되는 시간. 길어질수록 함수 수행 시간이 길어짐

- 메시지(Message) : 객체 간의 상호 작용은 메시지 교환으로 이뤄짐

 

@ 활동 다이어그램 구성요소

- 시작점 : 활동의 시작을 의미

- 전이 : 실행의 흐름. 화살표로 표현

- 액션/액티비티 : 어떠한 일들의 처리와 실행

- 종료점 : 처리의 종료

- 조건(판단) 노드 : 조건에 따른 제어 흐름의 분리

- 병합 노드 : 여러 경로의 흐름이 하나로 합쳐진 것

- 포크 노드 : 평행적으로 수행되는 흐름을 나누는 노드

- 조인 노드 : 포크 노드로 나눠진 흐름을 다시 하나로 합치는 노드

- 구획면 : 액티비티 수행을 담당하는 주체를 구분하는 면

 

@ 커뮤니케이션 다이어그램 구성요소

- 액터 : 시스템으로부터 서비스를 요청하는 외부 요소(사람, 외부 시스템)

- 객체 : 메시지를 주고 받은 주체. 콜론 기준 앞쪽에는 객체명, 뒤쪽에는 클래스 명

- 링크 : 객체들 간의 관계. 실제 객체와의 관계를 직접적으로 보여주는 객체들 사이의 링크

- 메시지 : 객체가 상호 작용을 위해 주고 받는 메시지