학교

학교) 시스템분석설계 UML 교재 정리

서윤-정 2023. 12. 20. 02:10

# UML 이란?

- 시스템 개발이나 프로젝트 아이디어를 상대방에게 효과적으로 설명하여 의사소통을 효율적이고 효과적으로 이루어지게 하기 위해 표준화된 모델링 언어

- 사용하는 목적과 흐름을 간단히 설명하기 좋은 도구

- 표현 목적에 따라 사용하는 다이어그래밍 다를 수 있기 때문에 여러 가지 다이어그램 사용

- 다이어그램은 사물 + 관계 로 구성됨

 

 

1️⃣ [유스케이스 다이어그램]

- 행위 다이어그램군

- 소프트웨어와 사용자 간의 상호관계를 시각적으로 보여주는 다이어그램.

- 소프트웨어 혹은 시스템이 제공하는 다양한 기능과 사용자와의 관계를 명시하는 다이어그램.

- 쉽게 해당 프로젝트의 기능이나 정보를 이해할 수 있음

 

+ 사물

- 액터(사용자), 유스케이스(서비스나 기능)

구성요소 설명
시스템 - 만들고자 하는 시스템, 만들고 싶은 시스템의 범위를 설정/경계 나타낼 때 사용
- 사용자나 다른 기계가 특정 기능의 수행을 목적으로 이용하는 시스템 표현
- 유스케이스를 수행하는 장치
액터 - 소프트웨어 시스템 외부의 독립적인 존재
- 시스템에 서비스 요청하고 시스템으로부터 정보를 제공받는 사용자
- 사람뿐만 아니라 하드웨어 시스템 가능
- 여러 명의 액터 생성 가능
유스케이스 - 시스템이 액터에게 제공하는 서비스나 기능
- 유스케이스 이름: '~하다'와 같이 동사로 표현
- 유스케이스 하나에 한 개의 기능을 작성
- 액터의 요청에 반응하여 원하는 처리 수행 및 정보 제공

 

 

+ 관계

- 액터와 유스케이스 사이의 의미있는 상호관계

- 선의 종류에 따라 연관, 포함, 확장, 일반화 관계로 구분

구성요소 설명
연관 관계 (association) - 액터와 유스케이스 간의 상호작용 표시
- 액터가 시스템의 어떤 기능에 접근하는지 표현
포함 관계 (include) - 해당 유스케이스 수행을 위해 필요한 선수 과정 표시
- 화살표가 가리키는 유스케이스 선수 과정
- 하나의 유스케이스가 진행될 때, <<include>>로 연결된 유스케이스가 반드시 진행되는 것을 의미
확장 관계 (extend) - 유스케이스의 행위 확장 표시
- 유스케이스에서 추가 기능을 표현할 때 사용, 포함 관계와 다르게 반드시 일어나지 않아도 됨
- 화살표가 가리키는 "글을 등록한다"가 실행될 때, 화살표가 나가는 "사진을 첨부한다"는 추가기능 실행 의사가 있을 시 실행
일반화 관계 (generalization)  - 액터나 유스케이스 사이의 상위/하위 개념 표시
- 화살표가 가리키는 쪽이 상위 개념, 화살표가 나가는 쪽이 상위 개념에 포함되는 하위 개념
- 일반적인 유스케이스와 조금 더 구체적인 유스케이스 사이를 표현

 

- 너무 상세하게 구성하지 말고, 최상위 레벨에서 사용자가 해야 하는 행위를 단순하게 작성해야 함

 

- 1) 유스케이스 다이어그램을 완성한 다음 식별된 유스케이스별로 유스케이스 시나리오 작성

- 2) 유스케이스 시나리오에 대한 표준은 없으나 유스케이스 시나리오에는 일반적으로 유스케이스 이름 및 기요, 유스케이스를 수행하는 행위자, 선행 및 후행조건, 유스케이스의 이벤트 흐름이 포함됨

- 3) 유스케이스 시나리오를 작성할 때는 시스템이 무엇을 하는가에 대한 설명에 집중

- 4) 시나리오를 자세하게 작성하는 것도 좋지만 고객에 이해할 수 있는 수준으로 작성하는 것이 중요

- 5) 시스템이 해당 유스케이스를 수행하기 위한 방법과 같은, 구현 방법에 대해서는 설명하지 않아야 함

 

 

 

 

 


 

[액티비티 다이어그램]

 

- 행위 다이어그램군

- 시스템이나 프로젝트, 업무 흐름, 활동 순서, 계산 과정을 단계적으로 작성할 수 있으며, 

일의 흐름이나 화면의 흐름을 표현할 때 사용

- 순서도: 어떤 명령의 순서만 보여줌 / 액티비티(활동) 다이어그램: 기능들의 상호작용에 대해 더 상세하게 설계 가능

- 화살표로 상호작용 과정을 표현함으로써 활동의 흐름 보여줌

 

+ 사물

- 액션(액티비티 내에서의 한 단계를 의미, 더이상 나눌 수 없는 가장 작은 단위의 단계), 규칙, 병합 노드(액션의 흐름을 제어할 수 있는 노드)...

이름   역할
시작점 (Initial Node)   - 액티비티를 호출하여 흐름의 시작을 알리는 노드
종료점 (Final Node)   - 동작이나 과정의 끝을 알리는 노드
액션 (Action)   - 액티비티 내에서의 한 단계
- 더 작은 단위로 분해 불가
액티비티 (Activity)   - 활동 모델 내의 구조 표현
- 액션과 하는 일들로 구성
조건 노드 (Decision Node)   - 하나의 간선(edge)을 다수의 간선으로 분해
- 가드(Guard)라는 기능을 이용하여 한 액션에서 다른 액션을 넘어갈 때의 조건을 표기함으로써 각 간선에 대해 설명
병합 노드 (Merge Node)   - 다수의 간선을 하나의 간선으로 병합하는 역할
- 들어오는 간선(incoming edge)은 여러 개, 나가는 간선(outcominig edge)은 한개
포크 노드 (Fork Node)   - 병렬처리 노드
- 하나의 간선을 동시에 발생하는 다수의 간선으로 구분하는 역할
조인 노드 (Join Node)   - 병렬처리 노드
- 여러 흐름을 합쳐 동기화하는 역

 

- 조건 노드: 모든 조건들이 서로 배타적이어야 함

- 포크 노드: 두 개의 흐름이 동시에 진행될 수 있음

 

+ 관계

이름   역할
제어 흐름 (Control Flow)   - 수행이 끝난 이전 노드와 수행을 시작할 다음 노드를 연결하는 선
- 각 액션들을 화살표로 연결하여 해당 액션의 순서를 나타냄
객체 흐름 (Object Flow)   - 액션에서 객체(object)로 연결된 선
- 액션이 객체에 영향을 미친다는 의미

 

 

 

 

 

 

 


[클래스 다이어그램]

- 구조 다이어그램군

- 클래스 내부 구성요소 및 클래스 간의 관계를 도식화하여 시스템의 일부 및 전체를 구조화

- 프로젝트 시스템 간의 관계 표현

- 시각적으로 표현 가능

- 곧바로 코드로 변환 가능

 

+ 구성요소

- 명칭(name)(클래스라는 사물의 명칭)

- 속성(attribute)(해당 클래스가 가지고 있는 상태)

- 기능(operation)(클래스의 동작, 즉 클래스가 제공하는 서비스를 의미)

 

+ 사물

이름   역할
클래스(class)   - 클래스 이름, 속성, 기능으로 나눠 기술
- 공통된 속성과 행동을 갖는 객체들의 집합
추상 클래스(abstract class)   - 내용이 비어 있는 추상 메서드를 갖는 클래스

 

+ 관계

이름   역할
연관 관계(association)   - 클래스들 간의 관계를 나타내는 선
- 클래스 자신과 스스로 연결 가능
- 양방향 관계는 실선, 일방향은 화살표로 표시
- 동사구로 지어진 이름
집단화 관계(Aggregation)   - 전체와 부분의 관계
- 전체와 부분은 서로 독립적으로 존재 가능
- 마름모 쪽 클래스가 전체, 실선 쪽 클래스가 부분
구성 관계(composition)   - 전체와 부분의 관계
- 집단화 관계와 유사하나 더 강력한 연관 관계
- 전체와 부분이 동시에 생성, 소멸
- 부분은 독립적으로 존재 불가
일반화 관계(generalization)   - 상속 관계(inheritance) 혹은 특수한 것에서 일반적인 내용을 이끌어 낼 때 사용
- 일반화된 클래스(부모 클래스)와 구체적인 클래스(자식 클래스) 간의 관계
- 자식 크랠스는 부모 클래스의 속성과 기능을 공유하는 동시에 새로운 속성과 기능 추가 가능
의존 관계(dependency)   - 한 클래스가 다른 클래스의 특정 부분에 구조적으로 의존, 사용하는 관계
- 클래스의 변화가 의존하는 클래스에 영향

 

 

 

 

 

 

 

 

 

 


[시퀀스 다이어그램]

 

- 시스템 세부사항들의 진행 과정과 시간적 흐름을 표현할 수 있는 다이어그램

- 시스템의 메시지를 시간순으로 표현하기 때문에 시스템의 순차적인 흐름을 정확하게 파악 가능

 

+ 구성요소

- 액터: 시스템을 사용하는 사람이나 외부 시스템을 말함

- 객체: 시스템 내에서 객채와 객체, 객체와 액터가 상호작용하는 개체를 의미

- 메시지: 객체 간의 상호작용 의미. 수평의 화살표 방향으로 진행되는 것을 의미

- 생명선: 객체가 존재할 수 있는 시간을 의미. 객체가 소멸되면 생명선도 같이 소멸됨

- 활성화: 객체가 활성화된 기간을 의미

 

+ 사물

이름   역할
액터(actor)   - 시스템의 외부에서 시스템을 작동시키는 주체
- 사람뿐만 아니라 외부 하드웨어도 가능
생명선(lifeline)   - 사각형 모형의 객체와 점선의 결합
- 객체: 상호작용의 개별 참여자인 객체
- 점선의 길이: 객체의 생존 기간 의미
활성화(activation)   - 생명선 위의 얇은 직사각형
- 객체가 활성화되어 있는 기간
- 참여자가 작업을 실행하는 기간

 

 

+ 관계

이름   역할
메시지   - 시스템 사이의 활동 전달을 의미
- 화살표로 표현(흐름의 방향)
시퀀스 메시지   - 화살표 방향을 따라 순차적으로 수행되는 메시지
반환 메시지   - 이전 호출의 반환을 기다리는 객체에게 다시 돌아오도록 하는 메시지
자체 메시지   - 동일한 생명선의 메시지 호출
- 재귀 메시지라고도 불림
- 시작점: 활성화의 상단
분실 메시지   - 송신을 알 수 있지만, 수신은 알 수 없는 메시지
발견 메시지   - 수신은 알 수 있지만, 송신은 알 수 없는 메시지
중단 메시지   - 생명선 전체의 실행을 중단시키는 메시지

 

- 메시지: 객체에서 다른 객체에게 행하는 기능

- 반환 메시지: 기능을 의미하는 것이 아니라 기능의 결과로 나타나는 상태를 의ㅁ

'학교' 카테고리의 다른 글

IoT 중간고사 예상 문제  (0) 2024.04.22
학교) 시스템분석설계 UML 연습문제  (0) 2023.12.19