✏️ 대표적인 개념 모델링 도구, UML
UML (Unified Modeling Language)
- 모델링 기술과 방법론을 통합하여 표준화한 객체지향 모델링 언어
- 소프트웨어 개발 과정에서 의사소통을 원활하게 하기 위해 사용
- UML 구성 요소: 사물(Things), 관계(Relationships), 다이어그램(Diagram)
🔹 사물
- 객체 간의 관계를 형성하는 대상으로 모델을 구성하는 기본 요소
- 구조 사물 - 시스템의 개념적, 물리적 요소를 표현 (Class, Use Case, Component, Node)
- 행동 사물 - 시간과 공간에 따른 요소들의 행위를 표현 (Interaction, State Machine)
- 그룹 사물 - 요소들을 그룹으로 묶어서 표현 (Package)
- 주해 사물 - 부가적인 설명이나 제약 조건들을 표현 (Note)
🔹 관계
- 사물과 사물 사이의 연관성을 표현하는 방식
- 종류: 연관, 집합, 포함, 의존, 일반화, 실체화 관계
스테레오타입 (Stereotype)
- UML에서 표현하는 기본 기능 외에 추가적인 기능 표현
- 길러멧(Guilemet)이라고 부르는 겹화살괄호 << >>를 사용
- ex) <<include>>, <<extend>>, <<interface>>
UML 접근 제어자
- + : public, 어떤 클래스에서든 접근 가능
- - : private, 해당 클래스만 접근 가능
- # : protected, 해당 클래스와 동일 패키지 혹은 상속 관계의 하위 클래스만 접근 가능
- ~ : package, 동일 패키지 클래스 객체들만 접근 가능
UML 관계 다중성 표현
- 1 : 1개의 객체
- * : 다수의 객체
- 1..* : 1개 이상 객체 연결
- 0..1 : 연결된 객체가 0이거나 1
- n : n개 객체 연결
- n..* : n개 이상 객체 연결
UML 다이어그램 (Diagram)
- 객체의 관계를 도식화한 것으로 뷰(View)를 제공
- 여러 관점에서 의사소통할 수 있도록 돕는 역할
- 정적 모델 - 구조적 다이어그램 사용
- 동적 모델 - 행위 다이어그램 사용
🔹 구조적 다이어그램 (Structural Diagram)
- 정적 모델로 시스템의 구조와 관계를 시각적으로 표현
- 시스템의 전체 구조 파악에 좋음
- 종류
- 클래스 다이어그램 ⭐
- 클래스, 인터페이스의 관계를 표현한 다이어그램
- 시스템의 구조를 파악하고 설계에 활용
- 구성 : 클래스 이름, 속성, 오퍼레이션, 제약조건, 관계
- 객체 다이어그램
- 객체 간의 관계와 상태를 표현할 때 사용
- 클래스 다이어그램 설계의 동작 방식 파악에 활용
- 컴포넌트 다이어그램
- 컴포넌트 간의 관계나 컴포넌트 간의 인터페이스의 관계를 표현
- 컴포넌트 상호 작용 표현하여 구현 단계에서 사용
- 배치 다이어그램 (Deployment Diagram)
- 결과물, 프로세스, 컴포넌트 등의 물리적인 배치와 구성을 표현
- 소프트웨어가 배포되는 방식과 상호작용을 나타내어 구현 단계에서 사용
- 복합체 구조 다이어그램 (Composite Structure Diagram)
- 복잡한 구조를 갖는 클래스나 컴포넌트의 내부 구조를 표현
- 시스템 내부 구조를 모델링하는데 주로 사용
- 패키지 다이어그램
- 여러 개체를 그룹화하여 패키지들의 관계를 표현
- 시스템의 모듈화와 구조화에 활용
🔹 행위 다이어그램 (Behavioral Diagram)
- 동적 모델로 시스템의 동작을 시각적으로 표현
- 메세지 흐름, 객체 간 상호 작용을 파악하기 좋음
- 종류
- 유스 케이스 다이어그램 ⭐
- 시스템을 사용하는 사용자의 상호 작용을 표현
- 사용자의 시스템 사용 방식 표현, 사용자 요구 분석 작업에 사용
- 구성: 유스케이스, 액터, 시스템, 관계
- 시퀀스 다이어그램 ⭐
- 객체들이 주고받는 메세지들의 시간 흐름과 순서에 초점을 맞춰 상호작용을 표현
- 구성: 객체, 생명선, 실행, 메세지
- 스테이트 머신 다이어그램 ⭐
- 객체의 상태 변화나 객체간 상호 작용에 따른 변화를 표현
- 구성: 상태, 이벤트, 전이
- 액티비티 다이어그램
- 시스템의 프로세스나 작업의 처리과정을 표현
- 시스템 흐름 파악에 활용
오늘은 UML이 뭔지, UML은 어떻게 구성되어 있는지, UML을 활용한 다이어그램들에는 어떤 것들이 있는지 공부했다!!
곧 있을 정보처리기사를 위해서도 외우고 넘어가는 게 좋겠다 ! 아자아자
'Computer Science' 카테고리의 다른 글
[TIL][CS] TCP/UDP와 동작 과정, TCP 3way handshake (0) | 2024.04.04 |
---|---|
[TIL][CS] 트랜잭션과 ACID, 트랜잭션의 고립 수준 (0) | 2024.04.02 |
[TIL][OS] 멀티 프로세스와 멀티 스레드의 차이, 컨텍스트 스위칭 (0) | 2024.03.26 |
[TIL][CS/소프트웨어 설계] 요구사항 정의 및 분석, 분석 도구 (0) | 2024.03.12 |
[TIL][CS] 소프트웨어 개발 방법론 (0) | 2024.03.12 |