01 UML (Unified Modeling Language)
- UML은 시스템 분석, 설계, 구현 등 시스템 개발 과정에서 시스템 개발자와 고객 또는 개발자 상호 간의 의사소통이 원활하게 이루어지도록 표준화한 대표적 객체지향 모델링 언어
- 6개의 구조 다이어그램, 7개의 행위 다이어그램 작성 가능
UML의 구성 요소
1. 사물 2. 관계 3. 다이어그램
1. 사물: 다이어그램 안에서 관계가 형성될 수 있는 대상들
2. 관계: 사물과 사물 사이의 연관성을 표현하는 것이다.
3. 다이어그램: 사물과 관계를 도형으로 표현
다이어그램
정적 모델링에서는 주로 구조적 다이어그램을, 동적 모델링에서는 주로 행위 다이어그램을 사용한다
구조적(Structural) 다이어그램의 종류
클래스 다이어그램 | 클래스와 클래스가 가지는 속성, 클래스 사이의 관계를 표현 (대표적) |
객체 다이어그램 | - 클래스가 속한 사물들, 즉 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현함 - 럼바우(Rumbaugh) 객체지향 분석 기법에서 객체 모델링에 활용됨 |
컴포넌트 다이어그램 | - 실제 구현 모듈인 컴포넌트 간의 관계나 컴포넌트 간의 인터페이스를 표현함 - 구현 단계에서 사용됨 |
배치 다이어그램 | - 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현함 - 구현 단계에서 사용됨 |
복합체 구조 다이어그램 | 클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현함 |
패키지 다이어그램 | 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현함 |
√ 정적 모델링
- 정적 모델링은 사용자가 요구한 기능을 구현하는데 필요한 자료들의 논리적인 구조를 표현한 것이다.
- 시스템에 의해 처리되거나 생성될 객체들 사이에 어떤 관련이 있는지를 구조적인 관점(View)에서 표현한다.
- 정적 모델링은 객체(Object)들을 클래스(Class)로 추상화하여 표현한다.
- UML을 이용한 정적 모델링의 대표적인 것이 클래스 다이어그램이다.
01 클래스 다이어그램
클래스 다이어그램은 클래스와 클래스가 가지는 속성, 클래스 사이의 관계를 표현한 것이다.
구성 요소 | 표현 방법 | 내용 |
클래스(Class) | - 각각의 객체들이 갖는 속성와 오퍼레이션)동작)을 표현한 것 - 일반적으로 3개의 구획(Compartment)으로 나눠 클래스의 이름, 속성, 오퍼레이션을 표기함 - 속성(Attribute): 클래스의 상태나 정보를 표현함 - 오퍼레이션(Operation): 클래스가 수행할 수 있는 동작으로, 함수(메소드, Method)라고도 함 |
|
제약조건 | - 속성에 입력될 값에 대한 제약조건이나 오퍼레이션 수행 전후에 지정해야 할 조건이 있다면 이를 적음 - 클래스 안에 제약조건을 기술할 때는 중괄호 { }를 이용함 |
|
관계(Relationships) | - 관계는 클래스와 클래스 사이의 연관성을 포현함 - 클래스 다이어그램에 표현하는 관계에는 연관 관계, 집합 관계, 포함 관계, 일반화 관계, 의존 관계가 있음 |
02 패키지 다이어그램
패키지 다이어그램은 유스케이스나 클래스 등의 요소들을 그룹화한 패키지 간의 의존 관계를 표현한 것이다.
대규모 시스템에서 주요 요소 간의 종속성을 파악하는 데 사용한다.
구성 요소 | 표현 방법 | 의미 |
패키지(Package) | - 객체들을 그룹화한 것 - 단순 표기법: 패키지 안에 패키지 이름만 표현 - 확장 표기법: 패키지 안에 요소까지 표현 |
|
객체(Object) | 유스케이스, 클래스, 인터페이스, 테이블 등 패키지에 포함될 수 있는 다양한 요소들 | |
의존 관계(Dependency) | - 패키지와 패키지, 패키지와 객체 간을 점선 화살표로 연결하여 표현함 - 스테레오 타입을 이용해 의존 관계를 구체적으로 표현할 수 있음 - 의존 관계의 표현 형태는 사용자가 임의로 작성할 수 있으며, 대표적으로 import와 access가 사용됨 - ≪import≫ : 패키지에 포함된 객체들을 직접 가져와서 이용하는 관계 - ≪include≫ : 인터페이스를 통해 패키지 내의 객체에 접근하여 이용하는 관계 |
행위적(Behavioral) 다이어그램의 종류
유스케이스 다이어그램 | - 사용자의 요구를 분석하는 것으로, 기능 모델링 작업에 사용ㅇ함 - 사용자와 사용 사례로 구성됨 |
시퀀스 다이어그램 | 상호 작용하는 시스템이나 객체들이 주고받는 메시지를 표현함 |
커뮤니케이션 다이어그램 | 동작에 참여하는 객체들이 주고받는 메시지와 객체들 간의 연관 관계를 표현함 |
상태 다이어그램 | - 하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는지를 표현함 |
활동 다이어그램 | 시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현함 |
상호작용 개요 다이어그램 | 상호작용 다이어그램 간의 제어 흐름을 표현함 |
타이밍 다이어그램 | 객체 상태 변화와 시간 제약을 명시적으로 표현함 |
01 유스케이스 다이어그램
유스케이스 다이어그램은 사용자와 다른 외부 시스템들이 개발될 시스템을 이용해 수행할 수 있는 기능을 사용자의 관점에서 표현한 것이다.
구성 요소 | 표현 방법 | 내용 |
시스팀(System) / 시스템 범위 | 시스템 내부의 유스케이스들을 사각형으로 묶어 시스템의 범위를 표현한 것 | |
액터 | - 시스템과 상호작용을 하는 모든 외부 요소 - 주로 사람이나 외부 시스템을 의미함 - 주액터: 시스템을 사용함으로써 이득을 얻는 대상으로 주로 사람이 해당됨. - 부액터: 주액터의 목적 달성을 위해 시스템에 서비스를 제공하는 외부 시스템으로, 조직이나 기관 등이 될 수 있음 |
|
유스케이스 | 사용자가 보는 관점에서 시스템이 액터에게 제공하는 서비스나 기능을 표현한 것 | |
관계 | - 유스케이스 다이어그램에서 관계는 액터와 유스케이스, 유스케이스와 유스케이스 사이에서 나타날 수 있음 - 유스케이스에서 나타날 수 있는 관계 : 포함(include) 관계, 확장(extends) 관계, 일반화(Generalization) 관계 |
02 활동 다이어그램
활동 다이어그램은 사용자의 관점에서 시스템이 수행하는 기능을 처리 흐름에 따라 순서대로 표현한 것이다.
하나의 유스케이스 안에서 혹은 유스케이스 사이에 발생하는 복잡한 처리의 흐름을 명확하게 표현할 수 있다.
구성 요소 | 표현 방법 | 내용 |
액션(Action)/액티비티(Activity) | - 액션: 더 이상 분해할 수 없는 단일 작업 - 액티비티: 몇 개의 액션으로 분리될 수 있는 작업 |
|
시작 노드 | 액션이나 액티비티가 시작됨을 표현한다. | |
종료 노드 | 액티비티 안의 모든 흐름이 종료됨을 표현한다. | |
조건 노드 | - 제어의 흐름이 분리됨을 표현 - 제어 흐름이 하나 들어오고 여러개로 나감 |
|
병합 노드 | - 여러 경로의 흐름이 하나로 합쳐짐 - 제어 흐름은 여러개 들어오고 한개로 나간다. |
|
포크 노드 | - 액티비티 흐름이 분리되어 수행됨 - 액티비티 흐름은 여러개 들어오고 나가는 흐름은 여러개 |
|
조인 노드 | - 분리되어 수행되던 액티비티의 흐름이 다시 합쳐짐 - 액티비티 흐름은 여러개 들어오고 한개로 나감 |
|
스윔레인 | - 액티비티 수행을 담당하는 주체를 구분하는 선 - 가로 또는 세로 실선을 그어 구분함 |
03 시퀀스 다이어그램
시퀀스 다이어그램은 어떠한 순서로 어떤 객체들과 어떻게 상호 작용하는지 과정을 표현하는 다이어그램이다.
현재 존재하는 시스템이 어떠한 시나리오로 움직이고 있는지를 나타내는데 장점을 가진다.
구성 요소 | 표현 방법 | 내용 |
액터 | 시스템으로부터 서비스를 요청하는 외부 요소로 사람이나 외부 시스템을 의미한다. | |
객체 | 메세지를 주고받는 주체 | |
생명선 | - 객첵가 메모리에 존재하는 기간으로 객체 아래쪽에 점선을 그어 표현한다. - 객체 소멸이 표시된 기간까지 존재한다. |
|
실행 상자 | 객체가 메세지를 주고받으며 구동되고 있음을 표현한다. | |
메세지 |
|
객체가 상호 작용을 위해 주고받는 메세지 |
객체 소멸 | 해당 객체가 더 이상 메모리에 존재하지 않음을 표현한다. | |
프레임 | 다이어그램을 전체 또는 일부로 묶어 표현한다. |
04 상태 다이어그램
객체들 사이에 발생하는 이벤트에 의한 객체들의 상태 변화를 표현.
특정 객체가 어떤 이벤트에 의해 상태 변환 과정이 진행되는지 확인한다.
구성 요소 | 표현 방법 | 내용 |
상태 | 객체의 상태를 표현 | |
시작 상태 | 상태의 시작을 표현 | |
종료 상태 | 상태의 종료를 표현 | |
상태 전환 | 상태 사이의 흐름, 변화를 화살표로 표현 | |
이벤트(Event) | - 상태에 변화를 주는 현상 - 이벤트에는 조건, 외부 신호 등 있다. |
|
프레임(Frame) | 상태 다이어그램 범위를 표현 |
스테레오 타입(Stereotype)
- 스테레오 타입은 UML표현하는 기본 기능 외에 추가적인 기능을 표현하는 것이다.
- 길러멧(Guilemet)이라고 부르는 겹화살괄호(≪≫) 사이에 표현할 형태를 기술한다.
≪include≫ | 연결된 다른 UML 요소에 대해 포함 관계에 있는 경우 |
≪extend≫ | 연결된 다른 UML 요소에 대해 확장 관계에 있는 경우 |
≪interface≫ | 인터페이스를 정의하는 경우 |
≪exception≫ | 예외를 정의하는 경우 |
≪constructor≫ | 생성자 역할을 수행하는 경우 |
'정보처리기사' 카테고리의 다른 글
정보처리기사 06. 통합 구현 (0) | 2021.09.21 |
---|---|
정보처리기사 05. 데이터 입출력 구현 (0) | 2021.09.21 |
정보처리기사 04. SQL 응용-3 (제어문, 커서, DBMS 접속, SQL 테스트, ORM) (0) | 2021.09.21 |
정보처리기사 03. SQL 응용-2 (SELECT, PROCEDURE, TRIGGER) (0) | 2021.09.20 |
정보처리기사 02. SQL 응용-1 (DDL, DCL, DML) (0) | 2021.09.18 |