본문 바로가기
정보처리기사/소프트웨어 설계

UML (2)

by jhwannabe 2023. 7. 8.

UML 다이어그램의 분류

구조적 다이어그램(Structured Diagram)

  • 정적이고, 구조 표현을 위한 다이어그램
다이어그램 유형 목적
클래스 다이어그램
(Class Diagram)
시스템 내 클래스의 정적 구조를 표현하고 시스템을 구성하는 클래스들 사이의 관계를 표현함
객체 다이어그램
(Object Diagram)
객체 정보를 보여줌
복합체 구조 다이어그램
(Composite Structure Diagram)
복합 구조의 클래스와 컴포넌트 내부 구조를 표현함
배치 다이어그램
(Deployment Diagram)
소프트웨어, 하드웨어, 네트워크를 포함한 실행 시스템의 물리 구조를 표현함
컴포넌트 다이어그램
(Component Diagram)
컴포넌트 구조 사이의 관계를 표현함
패키지 다이어그램
(Package Diagram)
클래스나 유스케이스 등을 포함한 여러 모델 요소들을 그룹하해 패키지를 구성하고 패키지들 사이의 관계를 표현함

행위 다이어그램(Behavior Diagram)

  • 동적이고, 순차적인 표현을 위한 다이어그램
  • 종류 : Use Case Diagram Activity Diagram, Collaboration Diagram, Sstate Diagram, Interaction Diagram(Sequence Diagram, Communication Diagram, Interaction Overview Diagram, Timing Diagram)
다이어그램 유형 목적
유스케이스 다이어그램
(Use Case Diagram)
사용자 관점에서 시스템 행위를 표현함
활동 다이어그램
(Activity Diagram)
업무 처리 과정이나 연산이 수행되는 과정을 표현함
상태 머신 다이어그램
(State Machine Diagram)
객체의 생명주기를 표현함. 동적 행위를 모델링하지만 특정 객체만을 다룸
예) 실시간 임베디드 시스템, 게임, 프로토콜 설계에 이용
Collaboration Diagram Sequence Diagram과 같으며 모델링 공간에 제약이 없어 구조적인 면을 중시함
상호작용
다이어그램
(Interaction
Diagram)
순차
다이어그램
(Sequence
Diagram)
- 시스템의 동작을 정형화하고 객체의 메시지 교환을 쉽게 표현하고 시간에 따른 메시지 발생 순서를 강조함
- 요소 : 생명선(Life Line), 통로(Gate), 상호작용(Interaction Fragment), 발생(Occurence), 실행(Execution), 상태 불변(State Invariant), 상호 작용(Interaction Use), 메시지(Message), 활성(Activations), 객체(Entity), Actor
상호작용 개요
다이어그램
(Interaction
Overview
Diagram)
여러 상호작용 다이어그램 사이의 제어 흐름을 표현함
통신
다이어그램
(Communication
Diagram)
객체 사이의 관계를 중ㅇ심으로 상호작용을 표현함
타이밍
다이어그램
(Timing
Diagram)
객체 상태 변화와 시간 제약을 명시적으로 표현함

 

클래스 다이어그램 관계 표현

Class Diagram

  • 시스템을 구성하는 객체 간의 관계를 추상화한 모델을 논리적 구조로 표현함
  • 객체지향 개발에서 공통으로 사용됨
  • 분석, 설계, 구현 단계 전반에 지속해서 사용됨
  • Operation : 클래스의 동작을 의미하며, 클래스에 속하는 객체에 대하여 적용될 메서드를 정의한 것

UML 관계 표현

구성 표시 설명
단방향 연관 관계
한쪽은 알지만 반대쪽은 상대방 존재를 모름
양방향 연관 관계
양쪽 클래스 객체들이 서로의 존재를 인식
의존 관계
연관 관계와 같지만 메소드를 사용할 떄와 같이 매우 짧은 시간만 유지
일반화 관계
객체지향에서 상속 관계(IS-A)를 표현하며, 한 클래스가 다른 클래스를 포함하는 상위 개념일 때 사용
집합 / 포함 관계
클래스 사이 전체나 부분이 같은 관계
전체/부분 객체 라이프타임 의존적(전체 객체 삭제 → 부분 객체 삭제)
실체화 관계
책임 집합 인터페이스와 실제로 실현한 클래스들의 사이

UML 연관 관계(Association Relation)

  • 한 사물의 객체가 다른 사물의 객체와 연결된 것을 표현함
  • 두 클래스가 서로 연관이 있다면 A, B 객체를 서로 참조할 수 있음을 표현함
  • 이름 : 관계의 의미를 표현하기 위해 이름을 가질 수 있음
  • 역할 : 수행하는 역할의 명시적 이름을 가질 수 있음

UML 의존 관계(Dependency Relation)

  • 연관 관계와 같지만 메소드를 사용할 때와 같이 매우 짧은 시간만 유지됨
  • 영향을 주는 객체(User)에서 영향을 받는 객체 방향으로 점선 화살표를 연결함

UML 일반화 관계(Generation Relation)

  • 객체지향에서 상속 관계를 표현
  • 한 클래스가 다른 클래스를 포함하는  상위 개념일 때 사용

UML 집합 관계(Aggregation Relation)

  • A 객체가 B 객체에 포함된 관계
  • '부분'을 나타내는 객체를 다른 객체와 공유할 수 있음
  • '전체' 클래스 방향에 빈 마름모로 표시하고, or 관계에 놓이면 선사이를 점선으로 잇고 {or}를 표시함

UML 포함 관계(Composition Relation)

  • 부분 객체가 전체 객체에 속하는 강한 집합 연관의 관계를  표현하는 클래스
  • '부분' 객체는 다른 객체와 공유 불가하고, '전체' 객체 방향에 채워진 마름모로 표시함

UML 실체화 관계(Realization Relation)

  • 인터페이스와 실제 구현된 일반 클래스 간의 관계로 존재하는 행동에 대한 구현을 표현함
  • 한 객체가 다른 객체에게 오퍼레이션을 수행하도록 지정하는 의미적 관계임

 

Use Case Diagram

Use Case Diagram의 개념

  • 객체지향 초반기 분석 작업에 작성되는 사용자의 요구를 기능적 측면에서 기술할 때 사용하는 도구로 Actor와 Use Case로 구성됨
  • 얻어지는 결과는 개발 대상 시스템이 제공해야 하는 서비스 목록이 됨

Use Case Diagram 요소

요소 설명
시스템 경계
(System Boundary)
- 시스템이 제공해야 하는 사례(Use Case)들의 범위가 됨
- 큰 규모의 객체로 구현되는 존재
액터
(Actor)
- 서비스를 이용하는 외부 객체
- 시스템이 특정한 사례(Use Case)를 실행하도록 요구할 수 있는 존재
유스케이스
(Use Case)
- 시스템이 제공해야 하는 개별적인 서비스 기능
- 서비스는 특정 클래스의 멤버 함수로 모델링됨
접속 관계
(Communication Association)
- 액터/유스케이스 또는 유스케이스/유스케이스 사이에 연결되는 관계
- 액터나 유스케이스가 다른 유스케이스의 서비스를 이용하는 상황을 표현함
사용 관계
(Uses Association)
여러 개의 유스케이스에서 공통으로 수행해야 하는 기능을 모델링하기 위해 사용
확장 관계
(Extends Association)
- 확장 기능 유스케이스와 확장 대상 유스케이스 사이에 형성되는 관계
- 해당 유스케이스에 부가적인 유스케이스를 실행할 수 있을 때의 관계
- 확장 대상 유스케이스를 수행 할 때 특정 조건에 따라 확장 기능 유스케이스를 수행하는 경우에 적용함

Use Case Diagram 작성 단계

단계 설명
액터 식별 - 모든 사용자 역할과 상호작용하는 타 시스템을 식별함
- 정보를 주고받는 하드웨어 및 지능형 장치를 식별함
Use Case 식별 - 액터가 요구하는 서비스와 정보를 식별함
- 액터가 시스템과 상호작용하는 행위를 식별함
관계 정의 - 액터와 액터 그리고 액터와 유스케이스의 관계 분석을 정의함
- 유스케이스와 유스케이스 간의 관계 분석을 정의함
Use Case 구조화 - 두 개의 상위 Use Case에 존재하는 공통 서비스를 추출함
- 추출된 서비스로 Use Case를 정의함
- 추출된 서비스를 사용하는 Use Case와 관계를 정의함
- 조건에 따른 서비스 수행 부분 분석하여 구조화함
728x90
반응형

'정보처리기사 > 소프트웨어 설계' 카테고리의 다른 글

UI (2)  (0) 2023.07.08
UI (1)  (0) 2023.07.08
UML (1)  (0) 2023.07.08
요구사항 확인 기법  (0) 2023.07.08
요구사항 개발  (1) 2023.07.07