일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 동적계획법
- C++
- dp
- 자바스크립트
- python
- Level1
- web
- VUE
- Doitvue.js입문
- Level3
- 프로그래밍
- LeetCode
- typescript
- 배열
- 웹프로그래밍
- 백준
- 코테연습
- OS
- 고득점Kit
- Level2
- 카카오
- react
- 리액트
- sql
- javascript
- 리트코드
- 파이썬
- Medium
- 프로그래머스
- CS
- Today
- Total
[소프트웨어 설계] UML 본문
UML(Unified Modeling Language)
시스템 분석, 설계, 구현 등 시스템 개발 과정에서 시스템 개발자와 고객 또는 개발자 상호간의 의사소통이 원할하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어이다. 개발할 대상물을 다이어그램으로 표현하는 도구이다.
- 객체지향 방법론의 장점을 통합하였으며, 객체 기술에 관한 국제표준화기구에서 표준으로 지정하였다.
- UML을 이용하여 시스템의 구조를 표현하는 6개의 구조 다이어그램과 시스템 동작을 표현하는 7개의 행위 다이어그램을 작성할 수 있다.
- 사물(Things), 관계(Relationship), 다이어그램(Diagram) 등이 있다.
사물
모델을 구성하는 기본 요소
- 구조 사물
- 행동 사물
- 그룹 사물
- 주해 사물
관계
사물과 사물 사이의 연관성
연관 관계
사물 사이를 실선으로 연결하여 표현하며 방향성을 화살표로 표현한다 (양방향일 경우 화살표 생략)
1 : 1개의 객체가 연관
n : n개의 객체가 연관
0..1 : 연관된 객체가 없거나 1개만 존재
0..* 또는 * : 연관된 객체가 없거나 다수
1..*: 연관된 객체가 적어도 1개 이상
n..*: 연관된 객체가 적어도 n개 이상
n..m : 연관된 객체가 최소 n개에서 최대 m개
집합 관계
주종은 독립적이다.
포함되는 쪽에서 포함하는 쪽으로 속이 빈 마름모를 연결하여 표현한다.
포함 관계
주종은 독립될 수 없다.
포함되는 쪽에서 포함하는 쪽으로 속이 채워진 마름모를 연결하여 표현한다.
일반화 관계
하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지를 표현한다.
구체적(하위) 사물에서 일반적(상위)인 사물 쪽으로 속이 빈 화살표를 연결하여 표현한다.
의존 관계
서로 연관은 있으나 필요에 의해 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계를 표현한다.
영향을 주는 사물이 영향을 받는 사물쪽으로 점선 화살표를 연결하여 표현한다.
등급 ----> 할인율
실체화 관계 Realization
사물이 할 수 있거나 해야하는 기능(오퍼레이션, 인터페이스)로 서로를 그룹화 할 수 있는 관계를 표현한다.
사물에서 기능 쪽으로 속이 빈 점선 화살표를 연결하여 표현한다.
날 수 있는
비행기 새
다이어그램
사물과 관계를 도형으로 표현한 것이다.
구조적 다이어그램
- 클래스 다이어그램: 클래스와 클래스가 가지는 속성, 클래스 사이의 관계
- 객체 다이어그램: 럼바우 객체 지향 분석 기법에서 객체 모델링에 활용
- 컴포넌트 다이어그램
- 배치 다이어그램
- 복합체 구조 다이어그램
- 패키지 다이어그램: 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현한다.
행위 다이어그램
- 유스케이스 다이어그램 : 사용자와 사용 사례로 구성되며 사용 사례깐의 여러 형태 관계로 이루어진다.
- 시퀀스 다이어그램 : 상호 작용되는 시스템이나 객체들이 주고 받는 메시지를 표현
- 커뮤니케이션 다이어그램 : 동작에 참여하는 객체들이 주고 받는 메시지와 객체들 간의 연관까지 표현
- 상태 다이어그램 : 럼바우 객체지향 분석 기법에서 동적 모델링에 활용, 하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변환하는지 표현
- 활동 다이어그램 : 시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현
- 상호작용 개요 다이어그램
- 타이밍 다이어그램
스테레오 타입
UML에서 표현하는 기본 기능 외에 추가적인 기능을 표현하기 위해 사용
- 길러멧이라고 부르는 <<>> 사이에 표현할 형태를 기술
- << include >>
- << extend >>
- << interface >>
- << exception >>
- << constructor >>
주요 UML 다이어그램
유스케이스 다이어그램
개발될 시스템과 관련된 외부 요소들, 사용자와 다른 외부 시스템들이 개발될 시스템을 이용해 수행할 수 있는 기능을 사용자의 관점에서 표현한 것이다.
- 시스템/ 시스템 범위
시스템 내부에서 수행되는 기능들을 외부 시스템과 구분하기 위해 시스템 내부의 유스케이스들을 사각형으로 묶어 시스템의 범위를 표현함
- 액터
시스템과 상호작요을 하는 모든 외부 요소로, 사람이나 외부 시스템
주액터: 시스템을 사용함으로써 이득을 얻는 대상
부액터: 주액터의 목적 달성을 위해 시스템에 서비스를 제공하는 외부 시스템
- 유스케이스
사용자가 보는 관점에서 액터에게 제공하는 서비스 또는 기능을 표현한 것
- 관계
포함 관계, 확장 관계, 일반화 관계
액터와 유스케이스, 유스케이스와 유스케이스
클래스 다이어그램
시스템을 구성하는 클래스, 클래스의 특성인 속성과 오퍼레이션, 속성과 오퍼레이션에 대한 제약조건, 클래스 사이의 관계를 표현 한 것이다.
- 클래스
이름, 속성, 오퍼레이션을 표현
- 제약조건
- 관계
연관관계, 집합 관계, 포함 관계, 일반화 관계, 의존 관계
시퀀스 다이어그램
시스템이나 객체들이 메시지들을 주고받으며 시간의 흐름에 따라 상호작용하는 과정을 액터, 객체, 메시지 등의 요소를 사용하여 그림으로 표현한 것
- 액터
- 객체
- 생명선
- 실행 상자
- 메시지
'etc' 카테고리의 다른 글
[후기] 싸피/SSAFY 8기 전공자 합격 후기 (서울) (3) | 2022.07.08 |
---|---|
[알고리즘] 정렬 알고리즘 (0) | 2022.04.04 |
[소프트웨어 설계] 요구 사항 분석, Case와 HIPO (0) | 2022.03.30 |
[소프트웨어 설계] 개발 기술 환경 파악, 요구사항 정의 (0) | 2022.03.30 |
[소프트웨어 설계] 현행 시스템 파악 (0) | 2022.03.30 |