1. UML (Unufued Modeling Langusge) 개요
- 개발자와 고객, 개발자와 개발자 상호 간의 의사소통이 원활하게 해주는 객체지향 모델링 언어
- 구성요소 : 사물(Things), 관계(Relationships), 다이어그램(Diagram)
1) 사물 (Things)
- 모델을 구성하는 기본요소
사물 | 내용 |
구조 사물 (Sructual Things) |
- 개념적, 물리적 요소를 표현 - 클래스(Class), 유스케이스(Use Case), 컴포넌트(Component), 노드(Node) 등 |
행동 사물 (Behavioral Things) |
- 시간과 공간에 따른 요소들의 행위를 표현 - 상호작용(Interaction), 상태 머신(State Machine) 등 |
그룹 사물 (Grouping Things) |
- 요소들을 그룹으로 묶어서 표현 - 패키지(Package) |
주석 사물 (Annotation Things) |
- 부가적인 설명, 제약조건 등을 표현 - 노트(Note) |
2) ⭐ 관계(Relationships)
- 사물과 사물 사이의 연관성 표현
1) 연관(Association) 관계
- 2개 이상의 사물이 서로 관련되어 있음을 표현
- 실선, 화살표
- 양방향 관계는 화살표 생략, 실선으로만 연결
- 다중도(Multiplicity)를 선 위에 표기
다중도 | 의미 |
1 | 1개의 객체가 연관되어 있다. |
n | n개의 객체가 연관되어 있다. |
0..1 | 연관된 객체가 없거나 1개만 존재한다. |
0..* 또는 * | 연관된 객체가 없거나 다수일 수 있다. |
1..* | 연관된 객체가 적어도 1개 이상이다. |
n..* | 연관된 객체가 적어도 n개 이상이다. |
n..m | 연관된 객체가 최소 n개에서 최대 m개이다. |
💡 예제
- 사람이 집을 소유하는 관계
- 사람은 자기가 소유하고 있는 집에 대해 알고 있지만 집은 누구에 의해 자신이 소유되고 있는지 모른다.
- 학생은 한 명 이상의 선생님으로부터 가르침을 받는다.
- 선생님은 한 명 이상의 학생을 가르친다.
2) 집합(Aggregation) 관계
- 하나의 사물이 다른 사물에 포함되어 있는 관계를 표현
- 포함하는 쪽, 포함되는 쪽 서로 독립적
- 포함되는 쪽에서 포함하는 쪽으로 속이 빈 마름모 연결
💡 예제
- 프린터는 컴퓨터에 연결해서 사용할 수 있으며, 다른 컴퓨터에 연결해서 사용할 수도 있다.
3) 포함(Composition) 관계
- 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계를 표현
- 포함하는 쪽, 포함되는 쪽 서로 독립적이지 않고 생명주기를 함께함
- 포함되는 족에서 포함하는 쪽으로 속이 채워진 마름모 연결
💡 예제
- 문을 열 수 있는 키는 하나이며, 해당 키로 다른 문을 열 수 없다.
- 문이 없어지면 키도 더 이상 필요하지 않다.
4) 일반화(Generalization) 관계
- 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지 표현
- 구체적(하위)사물에서 일반적(상위) 사물쪽으로 속이 빈 화살표 연결
💡 예제
- 아메리카노와 에스프레소는 커피이다.
- 커피에는 아메리카노와 에스프레소가 있다.
5) 의존(Dependency) 관계
- 연관 관계와 같이 사물 사이에 서로 연관
- 필요에 의해 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계를 표현
- 한 클래스가 다른 클래스를 오퍼레이션(함수)의 매개 변수로 사용하는 경우 쓰임
💡 예제
- 등급이 높으면 할인율 적용 / 등급이 낮으면 할인율 적용 X
6) 실체화(Realization) 관계
- 사물이 할 수 있거나 해야 하는 기능(오퍼레이션, 인터페이스)으로 서로를 그룹화 할 수 있는 관계를 표현
- 사물에서 기능 쪽으로 속이 빈 점선 화살표 연결
💡 예제
- 비행기는 날 수 있고 새도 날 수 있다.
- 비행기와 새는 날 수 있다는 행위로 그룹화할 수 있다.
3) ⭐ 다이어그램(Diagram)
- 사물과 관계를 도형으로 표현한 것
- 가시화한 뷰를 제공함으로써 의사소통에 도움
- 정적 모델링 : 구조적 다이어그램
- 동적 모델링 : 행위 다이어그램
💡 구조적(Structure) 다이어그램 종류
종류 | 내용 |
클래스 다이어그램 (Class Diagram) |
- 클래스와 클래스가 가지는 속성, 클래스 사이의 관계 표현 - 시스템의 구조 파악하고 구조상의 문제점 도출 |
객체 다이어그램 (Object Diagram) |
- 클래스에 속한 사물(객체)들, 즉 인스턴트(Instance)를 특정 시점의 객체와 객체 사이의 관계로 표현 - 럼바우(Rumbaugh) 객체지향 분석 기법에서 **객체 모델링**에 활용 |
컴포넌트 다이어그램 (Component Diagram) |
- 실제 구형 모듈인 컴포넌트 간의 관계나 인터페이스를 표현 - 구현 단계에서 사용 |
배치 다이어그램 (Deployment Diagram) |
- 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현 - 노드와 의사소통(통신)경로로 표현 - 구현 단계에서 사용 |
복합체 구조 다이어그램 (Composite Structure Diagram) |
- 클래스나 컴포넌트가 복합구조를 갖는 경우, 그 내부 구조를 표현 |
패키지 다이어그램 (Package Diagram) |
- 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패시키들의 관계를 표현 |
💡 행위(Behavioral) 다이어그램 종류
종류 | 내용 |
유스케이스 다이어그램 (Use Case Diagram) |
- 사용자 요구를 분석하는 것으로 기능 모델링 작업에 사용 - 사용자와 사용사례로 구성 - 사용사례 간에는 여러 형태 관계로 이루어진다. |
순차 다이어그램 (Sequence Diagram) |
- 상호작용하는 시스템이나 객체들이 주고받는 메시지를 표현 |
커뮤니케이션 다이어그램 (Communication Diagram) |
- 순차와 같이 동작에 참여하는 객체들이 주고받는 메시지 표현 - 메시지뿐만 아니라 객체들 간의 연관까지 표현 |
상태 다이어그램 (State Diagram)| |
- 하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호작용에 따라 상태가 어떻게 변화하는지 표현 - 럼바우(Rumbaugh) 객체지향 분석 기법에서 **동적 모델링**에 활용 |
활동 다이어그램 (Activity Diagram) |
- 시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현 |
상호작용 개요 다이어그램 (Interaction Overview Diagram) |
- 상호작용 다이어그램 간의 제어 흐름을 표현 |
타이밍 다이어그램 (Timing Diagram) |
- 객체 상태 변화와 시간 제약을 명시적으로 표현 |
💡 스테레오 타입 (Stereotype)
- UML에서 표현하는 기본 기능 외 추가적인 기능은 표현하기 위해 사용
- << >> (겹화살괄호) 사용.
📖 Reference
728x90
반응형
'Certificate > 정보처리기사' 카테고리의 다른 글
[1과목 소프트웨어 설계] 화면설계 - 011. 사용자 인터페이스 (0) | 2024.05.13 |
---|---|
[1과목 소프트웨어 설계] 요구사항 확인 - 010. ⭐ 주요 UML 다이어그램 (0) | 2024.05.13 |
[1과목 소프트웨어 설계] 요구사항 확인 - 008. 요구사항 분석 CASE와 HIPO (0) | 2024.05.07 |
[1과목 소프트웨어 설계] 요구사항 확인 - 007. 요구사항 분석 (0) | 2024.05.06 |
[1과목 소프트웨어 설계] 요구사항 확인 - 006. 요구사항 정의 (0) | 2024.05.06 |