본문 바로가기
소프트웨어

[소프트웨어] UML관계, UML다이어그램

by 정공자씨 2024. 1. 15.

 

 


✓ UML(Unified Modeling Language)   


UML의 의미

  • 시스템 분석, 설계, 구현 등의 개발작업과정에서 각 이해관계자들의 의사소통을 보다 원활하게 이뤄지도록한 시각적 모델링 언어
  • 객체지향 언어와 밀접한 관련이 있으므로 객체지향 모델링 언어라고도 함
  • 소프트웨어 시스템, 업무 모델링, 시스템의 산출물을 규정하고 시각화하며 문서화하는 모델링 언어
    use case diagram
- 프로그램 언어가 아님
- 그림으로 된 언어(다이어그램)

 

 

 

 


UML 관계(Relationship) 개요 및 종류


1) 사물( things, 객체)
    - 다이어그램에서 관계가 형성될 수 있는 각각의 대상
    - 다이어그램의 가장 중요한 기본 요소


[ 출제 ] 사물에 대한 종류(어떤 형태인가에 따라) : 구조, 행동, 그룹, 주해(주석)

2) 관계
   - 사물과 사물 사이의 연관성을 표현

 

1. 연관 관계 ( association )

[ 의미 ]

  • 사물과 사물사이(객체와 객체 사이)를 실선으로 연결하여 표기
    • 방향성이 있으면 화살표로 표시
  • 서로에게 영향을 주는 양방향 관계는 그냥 실선으로 표시
  • 다중성은 숫자로 표현

 

[ 표기 ]

  • n : 회사 입장에서는 여러 명의 직원(n)을 고용
  • 0,,1 : 회사 입장에서는 직원을 0명이거나 1명을 고용할 수 있음
  • * : 회사 입장에서 직원이 여러 명이 존재
  • 1,,*  : 회사 입장에서는 직원이 최소 1개에서 최대 n개까지 존재

 

  • 1 : 직원 입장에는  1개의 회사에 소속되어 있음

 


 

 

2. 집합 관계 ( aggregation )

[ 의미 ]

  • 하나의 사물이 다른 사물에 포함되어 있는 관계를 표현
  • 전체는 각각의 객체와 독립적(연결 고리가 약함)

 

[ 표기 ]

 

  • 실선의 투명한 마름모
  • 컴퓨터 : 전체는 각각의 객체와 독립적(연결 고리가 약함)
  • 키보드, 모니터, 프린터 : 각각의 객체는 다른 컴퓨터와 연결이 가능함

 


 

3. 포함 관계 ( composition )

[ 의미 ]

  • 전체 사물의 변화포함되는 사물에 영향을 주는 관계를 표현
  • 종속적인 관계

 

[ 표기 ]

  • 실선의 까만 마름모
  • 사람 : 전체와 각각의 객체는 종속적

 


 

4. 일반화 관계 ( generalization ) 

[ 의미 ]

  • 하나의 사물다른 사물에 비해 더 일반적인지 혹은 세부적인지를 표현

 

[ 표기 ]

  • 실선의 투명의 삼각형
  • 계좌(일반적) 안에 입출금, 적금, 예금 계좌(세부적)를 가짐

 


 

5. 의존관계 ( dependency ) 

[ 의미 ]

  • 연관성은 있으나 필요에 의해 일정시점에만 연관(의존)을 유지하는 관계

 

[ 표기 ]

  • 점선의 단반향
  • 자동차의 구성 요소에 휠이 들어가 있으나
  • 휠을 튜닝하여 변경하더라도 자동차 구성요소에 포함

 


 

6. 실체화 관계 ( realization ) 

[ 의미 ]

  • 행위 또는 인터페이스 중심으로 서로를 그룹화할 수 있는 관계

 

[ 표기 ]

  • 점선의 투명 삼각형
  • 프린터기가 없다면 프린터 설정을 할 필요가 없음

 

 

 

 

 


UML 다이어그램


  • 사물과 관계를 도식화하여 표현
  • 다양한 관점에서 시스템을 가시화한 뷰(view)를 제공함으로써 이해자들간의 의사소통에 도움을 줌

 

1. 구조적 다이어그램

  • 정적 모델링(정의하는 관계)에서 주로 사용

 

[ 구현 단계에서 반드시 필요]

  • 컴포넌트 다이어그램 : 여러개의 요소를 묶어놓은 것(컴포넌트), 서로 연결(인터페이스)을 어떻게 하느나
  • 배치 다이어그램 : 산출물, 프로세스, 컴포넌트 등의 물리적인 요소들을 어느 위치에 놓을 것인지를 표현

 

 

2. 행위 다이어그램

  • 동적 모델링에서 사용

  • 유스케이스 다이어그램 : 사용자와 사용 사례로 구성
  • 시퀀스 : 상호작용 시스템이나, 객체들 사이에 주고 받는 메시지
  • 커뮤니케이션 : 메시지와 객체간의 연관 관계
  • 상태 : 하나의 객체가 자신이 속한 클래스의 상태 변화에 따라 변하는 상태를 표현
  • 활동 : 객체의 초리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현
  • 상호작용 개요 : 상호작용 다이어그램 간의 제어 흐름
  • 타이밍 : 객체 상태의 변화에 시간 제약