UML(Unified Modeling Language)
통합 모델링 언어를 사용하여 시스템 상호작용, 업무 흐름, 시스템 구조, 컴포넌트 관계 등을 그린 도면.
프로그래밍을 단순화 시켜 표현하여 의사소통 하기 좋고, 대규모 프로젝트에서는 로드맵을 만들거나 개발을 위한 시스템 구축의 기본을 마련한다.
요구사항 모델링에 사용되는 기법 중 하나
구성요소
- 사물 (things)
- 구조사물 : 시스템의 개념적, 물리적 요소를 표현. (ex : 클래스, usecase, 컴포넌트)
- 행동사물 : 시간과 공간에 따른 요소들의 행위를 표현 (ex : 상호작용, 상태머신)
- 그룹사물 : 요소들을 그룹으로 묶어서 표현 (ex : 패키지)
- 주해사물 : 부가적인 설명이나 제약조건 등을 표현 (ex : 노트)
- 관계 (relationship)
- 연관관계
- 집합관계
- 포함관계
- 일반화 관계
- 의존관계
- 실체화 단계
- 다이어그램 (diagram)
다이어그램 종류
- Use Case 다이어그램 : 요구 분석 과정에서 시스템과 외부와의 상호작용을 묘사함.
- Activity 다이어그램 : 업무의 흐름을 모델링하거나 객체의 생명주기를 표현함
- Sequence 다이어그램 : 객체간의 메시지 전달을 시간적 흐름에서 분석함
- Collaboration(or communication) 다이어그램 : 객체와 객체가 주고받는 메세지 중심의 작성
- Class 다이어그램 : 시스템 내 클래스의 정적 구조를 표현하고 클래스와 클래스, 클래스의 속성 사이의 관계를 나타냄
- Component 다이어그램 : 소프트웨어 구조를 그림
- Deployment 다이어그램 : 기업 환경의 구성과 컴포넌트들 간의 관계를 그림
모델 종류
기능적 모델
사용자 측면에서 본 시스템 기능, UML에서는 Use Case 다이어그램을 사용한다.
정적 모델
객체, 속성, 연관관계, 오퍼레이션의 시스템 구조를 나타내며, UML에서는 Class 다이어그램을 사용한다.
동적 모델
시스템의 내부 동작을 말하며, UML에서는 Sequence, state, activity 다이어그램을 사용한다.
Use case 다이어그램
시스템과 외부와의 상호작용을 묘사. 프로젝트에 대한 요구사항을 정의하고, 세부기능을 분석하며 개발 범위를 정할때 작성함.
구성 요소
- 시스템 : 만들고자하는 프로그램을 나타냄
- 액터 : 시스템의 외부에 있고, 시스템과 상호작용하는 사람
- use case : 사용자 입장에서 바라본 시스템의 기능.
- 관계
- 연관 : use case와 액터간의 상호작용이 있음을 표현
- 포함 : 하나의 use case가 다른 use case의 실행을 전제로 할때 형성되는 관계
- 확장 : 확장 대상 use case를 수행할 때, 특정 조건에 따라 확장 기능 use case를 수행하는 경우에 적용
- 일반화 : 유사한 use case 또는 액터를 모아 추상화한 use case 또는 액터와 연결시켜 그룹을 만들어 이해도를 높이기 위한 관계
클래스 다이어그램
시스템에서 사용되는 객체타입을 정의함. 그들 간에 존재하는 정적인 관꼐를 다양한 방식으로 표현한 다이어그램.
구조
이름, 속성, 연산으로 구성되어있음.
관계
- 의존(dependancy) : 하나의 모델 요소가 다른 모델 요소를 사용하는 관계
- 일반화(generalization) : 여러 클래스가 가진 공통적인 특징을 추출하여 공통적인 클래스를 일반화하는 관계
- 연관(association) : 클래스로부터 생성된 인스턴스들 간의 관계
- 집합 연관(aggregation) : 전체와 부분을 나타내는 모델 요소. 단, 전체와 부분은 서로 독립적
- 복합 연관(composition) : 전체와 부분을 타나내는 모델 요소. 연관관계를 맺고 있는 클래스의 생명주기가 같음.
인터랙션 다이어그램
시스템이 수행하는 과정을 시각화하기 위한 다이어그램.
Use case 다이어그램의 actor와 개념 클래스 다이어그램의 객체 사이의 상호작용을 표현
종류
- 시퀀스 다이어그램
- communication 다이어그램
패키지 다이어그램
패키지는 클래스와 같은 여러 모델 요소들을 그룹화하여 표현하기 위한 수단이며, 패키지 다이어그램은 시스템의 서로 다른 패키지들 사이의 의존 관계를 표현하기 위한 다이어그램
구성 요소
- 패키지 : 여러 클래스의 묶음
- 의존관계 : 하나의 패키지가 다른 패키지를 사용하는 관계
상태 다이어그램
객체가 가질 수 있는 모든 가능한 상태를 표현하며, 특정 객체에 대하여 사건 발생에 따른 상태 천이 과정을 묘사한 다이어그램. 진입 및 탈출 조건, 상태 전이에 필요한 사건에 대한 표현이 가능하며, 설계 단계에서 객체의 동적인 행동을 표현하는데 주로 사용된다.
구성 요소
- 상태
- 시작상태
- 종료상태
- 전이
액티비티 다이어그램
객체의 로직이나 조건에 따른 처리 흐름을 순서에 따라 정의한 다이어그램. use case의 실체화, 알고리즘의 표현, 비지니스 프로세스의 정의 등에 사용이 가능함.
구성요소
- 활동 : 행위나 작업 등 무언가를 하고 있는 상태
- 시작 상태 : 여러 클래스가 가진 공통적인 특징을 추출하여 공통적인 클래스를 일반화하는 관계
- 종료 상태 : 클래스로부터 생성된 인스턴스들 간의 관계
- 선택점 : 전체와 부분을 나타내는 모델 요소, 전체와 부분은 서로 독립적
- 전이 : 전체와 부분을 나타내는 모델요소, 연관 관계를 맺고 있는 클래스의 생명주기가 같음
- 구분선 : 모듈의 수정없이 소프트웨어 확장을 위한 인터페이스의 실체화
출처
https://m.blog.naver.com/icbanq/221781238065
https://googry.tistory.com/2