CS

[CS] 소프트웨어 설계 - UML 기본 개념

y_lime 2025. 1. 18. 17:37

UML은 객체 지향 소프트웨어 개발 과정에서 산출물을 명세화, 시각화, 문서화할 때 사용되는 모델링 기술과 방법론을 통합해서 만든 표준화된 범용 모델링 언어이다. 

 

◼︎ UML의 특징 **

가구명문 (생활 가구의 명문!)

  1. 가시화 언어 : 오류 적고 의사소통 용이
  2. 구축 언어 : 다양한 프로그래밍 언어로 실행 시스템의 예측 가능 & UML을 소스코드로 변환하여 구축 가능, 역 변환하여 역공학 가능
  3. 명세화 언어 : 정확한 모델 제시, 완전한 모델 작성 가능
  4. 문서화 언어 : 시스템에 대한 평가 및 의사소통의 문서

◼︎ UML의 구성 요소

사과다

  1. 사물 : 추상적인 개념, 주제를 나타냄, '명사' or '동사'를 의미
  2. 관계 : 사물의 의미를 확장 & 명확히, 사물과 사물을 연결하여 관계를 표현, '형용사' or '부사'를 의미
  3. 다이아그램 : 사물의 관계를 모아 그림으로 표현한 형태, 형식과 목적에 따라 9가지로 정의

◼︎ UML 사물

구행그주

  • 구조 사물
    • UML모델의 정적인 부분들을 정의
    • 시스템의 물리적, 개념적 요소 표현
    • ex) 클래스, 유스케이스, 컴포넌트, 노드 등
  • 행동 사물
    • UML 모델의 동적인 부분을 표현
    • 시간과 공간에 따른 요소들의 행위를 표현
    • ex) 상호 작용, 상태 머신 등
  • 그룹 사물
    • UML 모델의 요소들을 그룹으로 묶어서 표현
    • ex) 패키지 등
  • 주해 사물
    • UML 모델을 설명 (주석)
    • 부가적인 설명이나 제약 조건 등을 표현
    • ex) 노트 등

UML 다이어그램이란?

사물과 관계를 모아 그림으로 표현한 형태

 

◼︎ UML 다이어그램 구분

  • 구분에 따라 구조적(정적) 다이어그램, 행위적(동적) 다이어그램으로 구분
    • 구조적(정적) : 객체, 속성, 연관 관계, 오퍼레이션의 시스템 구조를 나타냄
    • 행위적(동적) : 시스템의 내부 동작을 나타냄
  • 컴포넌트, 배치 다이어그램은 구현 단계에서 사용되는 다이어그램
구분 다이어그램 : 설명
구조적/정적 다이어그램
(클객컴배복패)
클래스(Class), 객체(Object), 컴포넌트(Component),
배치(Deployment), 복합체 구조(Composite Structure),
패키지(Package)
행위적/동적 다이어그램
(유시커상활타상)
유스케이스(Use Case) : 사용자의 요구를 분석
- 사용자 관점에서 시스템의 활동을 표현
- 시스셈의 기능적 요구 정의에 활용
순차(Sequence) : 시스템/객체들이 주고받는 메시지 표현
→ 구성항목 : 액터* / 객체 / 생명선 / 메시지 / 제어 삼각형
→ 교류 다이어 그램의 한 종류로 볼 수 O
커뮤니케이션 (Communication) : 객체들 간의 연관까지 표현
상태 (State) : 상태가 어떻게 변화하는지 표현
 동적 순서를 표현
→ 진입 조건, 탈출 조건, 상태 전이 등 기술 (모든 가능한 상태와 전이를 표현)
활동 (Activity) : 처리의 흐름을 순서에 따라 표현
타이밍 (Timing) : 객체 상태 변화와 시간 제약을 명시적으로 표현
상호작용 개요 : 상호작용 다이어그램 간 제어 흐름 표현

 

 액터 : 시스템과 상호작용하는 사람이나 다른 시스템에 의한 역할

- 사용자 액터 : 기능을 요구하는 대상이나 시스템의 수행결과를 통보받는 사용자

- 시스템 액터 : 다른 프로젝트에서 이미 개발되어 사용되고 있으며, 본 시스템과 데이터를 주고 받는 연동 시스템