✓ UML(Unified Modeling Language)
UML의 의미
- 시스템 분석, 설계, 구현 등의 개발작업과정에서 각 이해관계자들의 의사소통을 보다 원활하게 이뤄지도록한 시각적 모델링 언어
- 객체지향 언어와 밀접한 관련이 있으므로 객체지향 모델링 언어라고도 함
- 소프트웨어 시스템, 업무 모델링, 시스템의 산출물을 규정하고 시각화하며 문서화하는 모델링 언어
- 프로그램 언어가 아님 - 그림으로 된 언어(다이어그램) |
UML 관계(Relationship) 개요 및 종류
1) 사물( things, 객체)
- 다이어그램에서 관계가 형성될 수 있는 각각의 대상
- 다이어그램의 가장 중요한 기본 요소
[ 출제 ] 사물에 대한 종류(어떤 형태인가에 따라) : 구조, 행동, 그룹, 주해(주석)
2) 관계
- 사물과 사물 사이의 연관성을 표현
1. 연관 관계 ( association )
[ 의미 ]
- 사물과 사물사이(객체와 객체 사이)를 실선으로 연결하여 표기
- 방향성이 있으면 화살표로 표시
- 서로에게 영향을 주는 양방향 관계는 그냥 실선으로 표시
- 다중성은 숫자로 표현
[ 표기 ]
- n : 회사 입장에서는 여러 명의 직원(n)을 고용
- 0,,1 : 회사 입장에서는 직원을 0명이거나 1명을 고용할 수 있음
- * : 회사 입장에서 직원이 여러 명이 존재
- 1,,* : 회사 입장에서는 직원이 최소 1개에서 최대 n개까지 존재
- 1 : 직원 입장에는 1개의 회사에 소속되어 있음
2. 집합 관계 ( aggregation )
[ 의미 ]
- 하나의 사물이 다른 사물에 포함되어 있는 관계를 표현
- 전체는 각각의 객체와 독립적(연결 고리가 약함)
[ 표기 ]
- 실선의 투명한 마름모
- 컴퓨터 : 전체는 각각의 객체와 독립적(연결 고리가 약함)
- 키보드, 모니터, 프린터 : 각각의 객체는 다른 컴퓨터와 연결이 가능함
3. 포함 관계 ( composition )
[ 의미 ]
- 전체 사물의 변화가 포함되는 사물에 영향을 주는 관계를 표현
- 종속적인 관계
[ 표기 ]
- 실선의 까만 마름모
- 사람 : 전체와 각각의 객체는 종속적
4. 일반화 관계 ( generalization )
[ 의미 ]
- 하나의 사물이 다른 사물에 비해 더 일반적인지 혹은 세부적인지를 표현
[ 표기 ]
- 실선의 투명의 삼각형
- 계좌(일반적) 안에 입출금, 적금, 예금 계좌(세부적)를 가짐
5. 의존관계 ( dependency )
[ 의미 ]
- 연관성은 있으나 필요에 의해 일정시점에만 연관(의존)을 유지하는 관계
[ 표기 ]
- 점선의 단반향
- 자동차의 구성 요소에 휠이 들어가 있으나
- 휠을 튜닝하여 변경하더라도 자동차 구성요소에 포함
6. 실체화 관계 ( realization )
[ 의미 ]
- 행위 또는 인터페이스 중심으로 서로를 그룹화할 수 있는 관계
[ 표기 ]
- 점선의 투명 삼각형
- 프린터기가 없다면 프린터 설정을 할 필요가 없음
UML 다이어그램
- 사물과 관계를 도식화하여 표현
- 다양한 관점에서 시스템을 가시화한 뷰(view)를 제공함으로써 이해자들간의 의사소통에 도움을 줌
1. 구조적 다이어그램
- 정적 모델링(정의하는 관계)에서 주로 사용
[ 구현 단계에서 반드시 필요]
- 컴포넌트 다이어그램 : 여러개의 요소를 묶어놓은 것(컴포넌트), 서로 연결(인터페이스)을 어떻게 하느나
- 배치 다이어그램 : 산출물, 프로세스, 컴포넌트 등의 물리적인 요소들을 어느 위치에 놓을 것인지를 표현
2. 행위 다이어그램
- 동적 모델링에서 사용
- 유스케이스 다이어그램 : 사용자와 사용 사례로 구성
- 시퀀스 : 상호작용 시스템이나, 객체들 사이에 주고 받는 메시지
- 커뮤니케이션 : 메시지와 객체간의 연관 관계
- 상태 : 하나의 객체가 자신이 속한 클래스의 상태 변화에 따라 변하는 상태를 표현
- 활동 : 객체의 초리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현
- 상호작용 개요 : 상호작용 다이어그램 간의 제어 흐름
- 타이밍 : 객체 상태의 변화에 시간 제약
'소프트웨어' 카테고리의 다른 글
[소프트웨어] 모듈의 독립성 평가, 코드 종류 (1) | 2024.01.15 |
---|---|
[소프트웨어] 객체 지향의 개요, 객체지향 방법론의 종류 (1) | 2024.01.15 |
[소프트웨어] 소프트웨어 아키텍처, 아키텍처 패턴 (0) | 2024.01.15 |
[소프트웨어] 요구사항 분석, UI 프로토타입 (0) | 2024.01.15 |
[소프트웨어] UI의 특징, UI 설계 도구, UI 요구사항 확인 (0) | 2024.01.15 |