지식

[정처기] UML 다이어그램 총 정리

colin2 2025. 4. 10. 08:00

 

 

럼바우(Rumbaugh) 객체지향 분석 기법 (객체 모델링 기법)
 
객체 모델링
(정보 모델링) 시스템에서 요구되는 객체를 찾아내어 속성과 연산 식별 및 객체들 간의 관계를 규정하여 객체를 다이어그램으로 표시
동적 모델링
제어 흐름, 상호작용, 동작 순서 등의 상태를 시간 흐름에 따라 상태 다이어그램으로 표시
기능 모델링
여러 프로세스 간의 자료 흐름을 표시
어떤 데이터를 입력하여 어떤 결과를 가져올 수 있을지를 표현

 

UML (Unified Modeling Language)

 

  • 객체지향 소프트웨어 개발 과정에서 시스템 분석, 설계, 구현 등의 산출물을 명세화, 시각화, 문서화 할 때 사용하는 모델링 기술과 방법론을 통합하여 만든 범용 모델링 언어

 

  • UML 소프트웨어에 대한 관점
    • 기능적 관점(사용 사례 모델링): 사용자 측면에서 본 소프트웨어의 기능을 나타내며 이라고도 하며, 요구분석 단계에서 사용
      • UML에서는 Use Case Diagram을 사용
    • 정적 관점: 소프트웨어 내부의 구성 요소 사이의 구조적 관계를 나타내며 객체, 속성, 연관 관계, 오퍼레이션의 시스템 구조를 나타냄
      • UML에서는 Class Diagram을 사용
    • 동적 관점: 시스템의 내부 동작
      • UML에서는 Sequence Diagram, State Diagram, Activity Diagram을 사용
  • UML의 기본 구성
    • 사물(Things): 객체지향 모델을 구성하는 기본 요소, 객체 간의 관계 형성 대상
    • 관계(Relationship): 객체 간의 연관성 표현, 종류 - 연관, 집합, 포함, 일반화, 의존, 실체화
    • 다이어그램(Diagram): 객체의 관계 도식화, 다양한 관점에서 의사소통 할 수 있도록 View 제공
      • 정적 모델: 구조 다이어그램
      • 동적 모델: 행위 다이어그램
  • UML 다이어그램의 분류
    • 구조적 다이어그램(Structured Diagram): 시스템의 구조와 구성 요소 간의 관계를 시각적으료 표현하므로, 소프트웨어 개발자들이 시스템을 더 잘 이해하고 설계하는데 도움을 줌
    • 종류
클래스 다이어그램
Class Diagram
시스템 내 클래스의 정적 구조를 표현하고 시스템을 구성하는 클래스들 사이의 관계를 표현, 설계 단계의 구조를 나타냄
클래스의 속성과 메소드를 표현하여 개발자가 클래스를 구현할 때 필요한 정보를 제공하며, 상속, 연관, 집합 등 다양한 관계를 표현하여 클래스 간의 상호 작용을 더 잘 이해할 수 있도록 도와줌
클래스명, 속성, 연산, 접근 제어자 등으로 구성
시스템의 구조와 문제점 파악 가능
객체 다이어그램
Object Diagram
객체 간의 관계와 상태를 보여줌, 실행 단계의 구조를 나타냄
클래스의 인스턴스를 객체 간의 관계로 표현
Class Diagram에서 정의된 클래스들이 실제로 어떻게 인스턴스화 되는지 보여줌
클래스 다이어그램과 달리 특정 시점의 시스템 구조 파악 가능
컴포넌트 다이어그램
Component Diagram
구현 단계에서 사용되며 컴포넌트 간의 구성과 연결 상태 표현
소프트웨어 시스템을 구성하는 컴포넌트들의 구조와 관계를 나타내고 모형화하는데 사용하는 다이어그램
복합체 구조 다이어그램
Composite Structure Diagram
다른 다이어그램들과 결합하여 시스템의 전반적인 구조를 이해하고 설계할 수 있도록 도움, 시스템의 복잡한 구조 모델링을 하기 위함
클래스, 컴포넌트, 인터페이스 등의 요소들을 이용하여 시스템의 내부 구조 모델링
배치 다이어그램
Deployment Diagram
구현 단계에서 사용되며 노드, 컴포넌트 등의 물리적인 아키텍처 표현
소프트웨어, 하드웨어, 네트워크를 포함한 실행 시스템의 물리 구조를 표현
소프트웨어 요소들이 어떻게 물리적인 서버나 컴퓨터에 배포되는지, 또한 배포된 요소 간의 상호 작용을 표현
패키지 다이어그램
Package Diagram
같은 그룹의 하위 모듈들을 묶어주는 패키지 간의 의존 관계 표현
클래스나 유스케이스 등을 포함한 여러 모델 요소들을 그룹화 해 패키지를 구성하고 패키지들 사이의 관계를 표현

 

    • 행위 다이어그램(Behavior Dirgram): 시스템 내에서 일어나는 상호 작용, 메시지 흐름, 객체 간의 상호 작용 등을 그래픽으로 표현하여 시각화
    • 종류
유스케이스 다이어그램
Use Case Diagram
시스템의 기능적 요구사항을 사용자 관점에서 표현
시스템과 사용자(액터) 간의 상호작용을 보여줌
사용자의 요구사항을 분석하여 기능을 중심으로 모델링한 결과물을 표현
사용자가 시스템에서 할 수 있는 액션 시각화, 시스템의 요구사항 정의 시 사용
상태 다이어그램
State Diagram
객체의 생명주기를 표현, 동적 행위를 모델링하지만 특정 객체만을 다룸
객체가 특정 상태에서 다른 상태로 전이하는 과정을 표현
이벤트에 따른 객체의 상태 변화를 표현
활동 다이어그램
Activity Diagram
프로세스나 작업의 흐름 시각화, 업무 처리 과정이나 연산이 수행되는 과정 표현
시스템의 동작을 이해하고, 시스템의 설계 및 구현을 위한 정보를 수집할 수 있음
흐름도처럼, 객체의 프로세스나 로직의 처리 흐름을 순서에 따라 표현
상호작용 다이어그램
Interaction Diagram
Use Case를 수행하기 위해 객체들이 어떻게 상호 작용하는지 표현
객체 간에 주고 받는 메시지를 통해 상호 작용을 시각화하여 표현
  • 순차 다이어그램
    Sequence Diagram
시스템의 동작을 정형화하고 객체의 메시지 교환을 쉽게 표현하고 시간에 따른 메시지 발생 순서를 강조, 객체의 생명주기를 보여줌
생명선(Lifeline), 객체(Object), 실행(Activations), 메시지(Message), 시간(Time) 등으로 구성되며 시간의 흐름을 위에서 아래로 표현
  • 통신 다이어그램
    Communication
    Diagram
객체 사이의 관계를 중심으로 상호작용을 표현
Sequence Diagram과 유사하지만, 시스템 구성 요소 간의 메시지 전달을 중점으로 표현
  • 타이밍 다이어그램
    Timing Diagram
객체 상태 변화와 시간 제약을 명시적으로 표현
실시간 시스템이나 시간에 민감한 프로세스를 모델링할 때 유용