UML 개요
UML(Unified Modeling Language)은 시스템 분석, 설계, 구현 등 시스템 개발 과정에서 개발자와 고객 또는 개발자 상호간의 의사소통이 원활하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어이다
- Rumbaugh(OMT), Booch, Jacobson 등의 객체지향 방법론을 통합. 국제표준화기구 OMG(Object Management Group)에서 표준으로 지정
- 시스템의 구조를 표현하는 6개의 구조 다이어그램과 시스템의 동작을 표현하는 7개의 행위 다이어그램 작성 가능
- 사물, 관계, 다이어그램 등의 구성
1. 사물(Things)
모델을 구성하는 가장 기본적인 요소. 다이어그램 안에서 관계가 형성될 수 있는 대상을 말함
사물 | 내용 |
구조 사물(Structural Things) | 시스템의 개념적, 물리적 요소를 표현 클래스(Class), 유즈 케이스(Use Case), 컴포넌트(Component), 노드(Node) 등 |
행동 사물(Behavioral Things) | 시간과 공간에 따른 요소들의 행위를 표현 상호작용, 상태 머신(State Machine) 등 |
그룹 사물(Grouping Things) | 요소들을 그룹으로 묶어서 표현 패키지(Package) |
주해 사물(Annotation things) | 부가적인 설명이나 제약조건 등을 표현 노트(Note) |
2. 관계(Relationships)
사람과 사물사이의 연관성 표현
연관(Association) 관계
2개이상의 사물이 서로 관련되어 있음을 뜻함
다중도 | 의미 |
1 | 1개의 객체와 연관 |
n | n개의 객체와 연관 |
0..1 | 없거나 1개 |
0..* or * | 없가나 다수 |
1..* | 적어도 1개 |
n..* | 적어도 n개 |
n..m | n개에서 m개 |
집합(Aggregation) 관계
하나의 사물이 다른 사물에 포함되어 있는 관계를 표현
- 포함하는쪽(전체, Whole)과 포함되는 쪽(부분, Part)은 서로 독립적
- 포함되는쪽에서 포함하는 쪽으로 속이 빈 마름모 꼴로 표현한다.
포함(Composition) 관계
포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계 표현
- 포함하는쪽(전체, Whole)과 포함되는 쪽(부분, Part)은 서로 독립적일 수 없고 생명주기를 함께한다.
- 포함되는 쪽에서 포함하는 쪽으로 속이 채워진 마름모 꼴로 표현한다
일반화(Generalization) 관계
하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지 표현
- 예시로 사람은 남자와 여자보다 더 일반적인 표현, 반대의 경우는 구체적인 표현
- 구체적(하위)인 사물에서 일반적(상위)인 사물 쪽으로 속이 빈 화살표
의존(Dependency) 관계
연관은 있으나 필요에 의해 서로에게 영향을 주는 짧은 시간동안만 연관을 유지하는 관계
- 소유관계는 아니지만 사물의 변화가 다른 사물에도 영향을 미친다.
- 일반적으로 한 클래스가 다른 클래스를 오퍼레이션의 매개변수로 사용하는 경우에 나타난다.
- 영향을 받는(제공자) 쪽으로 점선 화살표 연결
실체화(Realization) 관계
사물이 할 수 있거나 해야 하는 기능(오퍼레이션, 인터페이스)로 서로를 그룹화 할 수 있는 관계를 표현
- 한 사물이 다른 사물에게 오퍼레이션을 수행하도록 지정하는 의미적 관계
- 사물에서 기능 쪽으로 속이 빈 점선 화살표
3. 다이어 그램(Diagram)
사물과 관계를 도형으로 표현한 것
여러 관점에서 시스템을 가시화한 뷰 제공
정적 모델링에서는 구조적 다이어그램, 동적 모델링에서는 주로 행위 다이어그램
구조적 다이어그램의 종류
클래스 다이어그램 | 클래스와 클래스가 가지는 속성, 클래스 사이의 관계 표현 시스템 구조 파악, 구조상의 문제점 도출 가능 |
객체 다이어그램 | 클래스에 속한 사물들, 즉 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현한다. 럼바우(Rumbaugh) 객체지향 분석 기법에서 객체 모델링에 활용된다. |
컴포넌트 다이어그램 | 실제 구현 모듈인 컴포넌트 간의 관계나 인터페이스 표현 구현단계에서 활용 |
배치 다이어그램 | 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현한다. 노드와 의사소통(통신) 경로로 표현 구현단계에서 활용 |
복합체 구조 다이어그램 | 클래스나 컴포넌트가 복합 구조를 갖는 경우 내부 표현 |
패키지 다이어그램 | 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계 |
행위(Behavioral) 다이어그램의 종류
유스케이스 다이어그램 | 사용자의 요구 분석. 기능 모델링 작업에 사용 사용자(Actor) 와 사용사례(Use Case)로 구성. 사례간 여러 형태의 관계 이룸 |
시퀀스 다이어그램 | 상호 작용하는 시스템이나 객체들이 주고 받는 메시지 |
커뮤니케이션 다이어그램 | 시퀀스 다이어그램같이 동작에 참여하는 객체들이 주고받는 메시지 표현. 메시지뿐만 아니라 객체들간 연관까지 표현 |
상태 다이어그램 | 하나의 객체가 자신이 속한 클래스의 상태변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는지 표현 럼바우(Rumbaugh) 객체지향 분석기법에서 독적 모델링에 활요 |
활동 다이어그램 | 시스템이 어떤 기능 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에따라 표현 |
상호작용 개요 다이어그램 | 상호작용 다이어 그램 간 제어흐름 표현 |
타이밍 다이어그램 | 객체 상태 변화와 시간 제약 명시적으로 표현 |
*구조적 다이어그램은 정적, 행위 다이어그램은 동적 다이어그램인 것을 숙지
주요 UML 다이어그램
1. 유스케이스(Use Case) 다이어 그램
개발될 시스템과 관련된 외부 요소들, 즉 사용자와 다른 외부 시스템들이 개발될 시스템을 이용해 수행할 수 있는 기능을 사용자의 관점에서 표현한 것
- 외부요소와 시스템간 상호작용 확인가능
- 사용자의 요구사항을 분석하기 위한 도구로 사용
- 시스템의 범위파악
구성 요소
시스템/ 시스템 범위 | 시스템 내부에서 수행되는 기능들을 외부와 구분하기 위해 사각형으로 묶어 시스템 범위 표현 |
액터(Actor) | 시스템과 상호작용하는 모든 외부요소 주액터: 시스템을 사용하는 사람 부액터: 주액터의 목적달성을 위해 서비스 제공하는 외부 시스템 |
유스케이스(Use Case) | 사용자가 보는 관점에서 시스템이 액터에게 제공하는 서비스 또는 기능 |
관계(Relationship) | 포함 관계, 확장 관계, 일반화 관계의 3가지 종류 |
2. 클래스(Class) 다이어그램
시스템을 구성하는 클래스, 클래스의 특성인 속성과 오퍼레이션, 제약조건, 관계 표현
- 구조적 다이어그램
- 구성요소를 문서화 하는데 사용
- 객체의 속성, 함수 등의 정보를 잘표현하고 있어서 모델링등에 주로 활용
구성 요소
클래스 | 일반적으로 3개의 구획(Compartment)로 나눠 이름, 속성, 오퍼레이션 표기 속성(Attribute): 클래스의 상태나 정보 오퍼레이션(Operation): 수행할 수 있는 동작. 함수라고도함 |
제약조건 | 속성에 입력될 값에 대한 지정해야 할 조건있다면 적음 |
관계 | 클래스와 클래스사이 연관성 연관, 집합, 포함, 일반화, 의존 |
접근 제어자
접근제어자 | 표현법 |
public | + |
private | - |
protected | # |
package | ~ |
3.시퀀스 다이어그램
시스템이나객체들이 메시지를 주고받으며 시간의 흐름에 다라 상호작용 하는 과정
- 각 동작에 참여하는 시스템이나 객체들의 수행 기간 확인 가능
- 클래스 내부의 객체들을 기본 단위로 함
- 주로 기능 모델링에서 작성한 유스케이스 명세서를 하나의 표현 범위로함 하나의 클래스에 포함된 오퍼레이션을 하나의 범위로 하기도함
구성 요소
액터(Actor) | 서비스를 요청하는 외부요소. 사람이나 서비스 |
객체(Object) | 메시지를 주고받는 주체 |
생명선(Lifeline) | 객체가 메모리에 존재하는 기간. 점선을 그어 표현 |
실행 상자(Active Box) | 객체가 구동되고 있음을 표현 |
메시지(Message) | 상호작용을 위해 주고 받는 메시지 |
출처
자료 참고:
시나공 정보처리기사 필기 2022
'정보처리기사 > 1과목' 카테고리의 다른 글
[정보처리기사 필기] 소프트웨어 아키텍처 (0) | 2022.02.07 |
---|---|
[정보처리기사 필기] 화면 설계 (0) | 2022.02.07 |
[정보처리기사 필기] 요구사항 정의, 분석, CASE와 HIPO (0) | 2022.02.04 |
[정보처리기사 필기] 개발 기술 환경 파악 (0) | 2022.02.03 |
[정보처리기사 필기] 현행 시스템 파악 (0) | 2022.02.03 |
댓글