공든탑앱 열기

UML 다이어그램

정보처리기사 · 요구사항 확인 · 약 14분

쉽게 말하면

UML은 소프트웨어 설계도를 그리는 공통 그림 문법이에요. 개발자끼리 같은 기호로 그리니 말이 잘 통해요. 그림은 크게 두 종류예요. 무엇으로 이루어졌는지 보여 주는 구조 다이어그램(클래스 다이어그램 등)과, 어떻게 움직이는지 보여 주는 행위 다이어그램(유스케이스, 시퀀스 등)이에요. 선 모양마다 관계의 뜻이 달라서, 상속은 속이 빈 삼각형 화살표, 포함은 마름모로 그려요.

시험용 정의

UML(Unified Modeling Language)은 객체지향 시스템을 시각적으로 표현하는 표준 모델링 언어로 OMG가 관리한다. 구성 요소는 사물(구조·행동·그룹·주해 사물), 관계, 다이어그램이다. 다이어그램은 정적인 구조 다이어그램(클래스, 객체, 컴포넌트, 배치, 복합체 구조, 패키지)과 동적인 행위 다이어그램(유스케이스, 시퀀스, 커뮤니케이션, 상태, 활동, 상호작용 개요, 타이밍)으로 나뉜다. 관계에는 연관, 집합, 포함(합성), 일반화, 의존, 실체화가 있다.

비유로 이해하기

건축 도면 세트와 같다. 평면도(클래스 다이어그램)는 방의 구조를, 동선도(시퀀스 다이어그램)는 사람이 움직이는 순서를 보여 준다. 기호를 약속해 두었으니 누가 봐도 같은 뜻으로 읽는다.

자세히

먼저 알아 둘 말

말뜻
클래스같은 속성과 기능을 가진 객체들의 틀
액터시스템 밖에서 시스템과 상호작용하는 사람이나 다른 시스템
유스케이스액터가 시스템으로 얻는 하나의 기능 (로그인, 주문하기)
생명선시퀀스 다이어그램에서 객체 아래로 내려가는 점선. 객체가 살아 있는 시간
다중성관계 양 끝에 적는 개수 (1, 0..1, 1..*, *)

관계 6가지

관계뜻표기예
연관 (Association)서로 관련이 있다실선학생 ― 강의
집합 (Aggregation)전체-부분, 부분이 따로 존재 가능빈 마름모 ◇컴퓨터 ◇― 마우스
포함·합성 (Composition)전체-부분, 전체가 없어지면 부분도 없어진다채운 마름모 ◆집 ◆― 방
일반화 (Generalization)상속, is-a 관계속이 빈 삼각형 화살표 실선고양이 ―▷ 동물
의존 (Dependency)잠깐 사용하는 관계. 한쪽이 바뀌면 영향점선 화살표주문 ┄> 결제
실체화 (Realization)인터페이스를 구현속이 빈 삼각형 화살표 점선새 ┄▷ 날 수 있음

다이어그램 분류

구분다이어그램보여 주는 것
구조클래스클래스의 속성·연산과 관계
구조객체특정 시점의 객체(인스턴스)와 관계
구조컴포넌트구현 모듈(컴포넌트)과 인터페이스
구조배치하드웨어 노드에 소프트웨어가 어떻게 놓이는지
구조패키지요소들을 묶은 패키지와 의존
행위유스케이스사용자 관점의 기능 (액터, 유스케이스)
행위시퀀스메시지를 시간 순서로
행위커뮤니케이션메시지와 객체 간 연관을 함께
행위상태한 객체의 상태 변화 (이벤트 → 상태 전이)
행위활동처리 흐름을 순서도처럼

유스케이스의 include와 extend

  • 포함(include): 기능을 실행하면 반드시 함께 실행되는 기능. 예: 주문하기 ┄<<include>>┄> 로그인
  • 확장(extend): 특정 조건에서만 선택적으로 실행되는 기능. 예: 쿠폰 사용 ┄<<extend>>┄> 결제하기
  • 스테레오타입 << >>: 기본 요소 외에 추가 의미를 붙일 때 쓰는 겹화살괄호 표기

클래스 접근 제어 기호

기호뜻
+public
-private
#protected
~package (같은 패키지)

기출에서 더 나온 것

말뜻
액터시스템과 상호 작용하는 사람이나 외부 시스템. 외부 시스템도 액터가 될 수 있다
오퍼레이션 (Operation)클래스가 할 수 있는 동작. 클래스 상자 맨 아래 칸에 적는다
UML 구성 요소사물(Things), 관계(Relationships), 다이어그램(Diagrams)

시험에 이렇게 나와요

확인 문제

Q1. 객체들이 주고받는 메시지를 시간 순서대로 위에서 아래로 그리는 UML 다이어그램은?

  1. 클래스 다이어그램
  2. 배치 다이어그램
  3. 시퀀스 다이어그램
  4. 패키지 다이어그램
정답 보기

3번 시퀀스 다이어그램

시퀀스 다이어그램은 객체 사이의 상호작용을 시간 순서로 그린 행위 다이어그램이다. 생명선, 활성 박스, 메시지로 구성된다.

Q2. UML 다이어그램 중 구조 다이어그램이 아닌 것은?

  1. 클래스 다이어그램
  2. 컴포넌트 다이어그램
  3. 배치 다이어그램
  4. 상태 다이어그램
정답 보기

4번 상태 다이어그램

상태 다이어그램은 행위(동적) 다이어그램이다.

Q3. 전체가 사라지면 부분도 함께 사라지는 강한 전체-부분 관계는?

  1. 의존 관계
  2. 포함(합성) 관계
  3. 일반화 관계
  4. 집합 관계
정답 보기

2번 포함(합성) 관계

포함(합성, composition) 관계다. 채운 마름모(◆)로 그린다. 집합(aggregation) 관계는 부분이 따로 있을 수 있고 빈 마름모(◇)로 그린다.

Q4. UML 클래스 다이어그램에서 '#' 기호가 뜻하는 접근 제어는?

  1. protected
  2. private
  3. public
  4. package
정답 보기

1번 protected

+ public, - private, # protected, ~ package.

Q5. 시퀀스 다이어그램의 구성 요소가 아닌 것은?

  1. 실행 박스
  2. 메시지
  3. 릴레이션
  4. 생명선
정답 보기

3번 릴레이션

릴레이션은 데이터베이스 용어다. 시퀀스 다이어그램은 객체, 생명선, 메시지, 실행 박스(활성 상자)로 이루어진다.

헷갈리기 쉬운 O·X

유스케이스의 extend 관계는 기본 기능을 실행할 때 항상 함께 실행된다.

정답 보기

X 항상 실행되는 건 include, extend는 조건부 선택.

일반화 관계는 is-a 관계로, 속이 빈 삼각형 화살표로 표기한다.

정답 보기

O

UML은 특정 프로그래밍 언어에서만 쓸 수 있다.

정답 보기

X 언어에 독립적인 모델링 언어다.

함께 보면 좋은 개념