1 분 소요

UML

UML이란?

  • Unified Modeling Language 의 약자
  • 이번 포스트에서 UML의 역사와 종류들에 대한 소개를 다루겠다.

Software Modeling

  • Model = 시스템의 추상화
  • 복잡성을 줄이기 위해 불필요한 세부정보 생략
  • 이해관계자(클라이언트, 분석가, 프로그래머) 간 아이디어 및 결과 공유
  • UML: 사실상의 모델링 표준 (de facto standard)

UML 역사

  • 1990년대 OOP 방법론 전쟁 (OOAD, OMT, OOSE, Fusion 등)
  • 서로 다른 기법 → 각기 다른 표기법, 프로세스, 도구 사용
  • UML = OMT(Rumbaugh) + OOAD(Booch) + OOSE(Jacobson)
  • 주요 버전 연혁:
    • 1995: Unified Method 0.8
    • 1997: UML 1.0, 1.1
    • 2005: UML 2.0
    • 2017: UML 2.5.1 (최신 공식 버전 기준)

Categories of UML Diagrams

1. Structure Diagrams

What things must be in the system

(시스템 내에 무엇이 있어야 하는가?)

  • Class Diagram
  • Component Diagram
  • Composite Structure Diagram
  • Deployment Diagram
  • Object Diagram
  • Package Diagram

2. Behavior Diagrams

What must happen in the system

(시스템 내 ‘무슨 일이’ 일어나는가)

  • Activity Diagram
  • State Diagram (Statechart)
  • Use Case Diagram

3. Interaction Diagrams

The flow of control and data among the things

(Behavior Diagrams의 하위 집합)

  • Sequence Diagram
  • Communication Diagram
  • Interaction Overview Diagram
  • Timing Diagram

tree 형식으로 보면 다음과 같다.

UML 다이어그램


주요 다이어그램 요약

다이어그램 목적 및 설명
Use Case Diagram 사용자(Actor)의 목표와 시스템 기능 표현
Class Diagram 시스템의 정적 구조 표현 (클래스, 속성, 관계)
Object Diagram 객체 수준에서 구조 표현
Activity Diagram 순차적 흐름 표현 (워크플로우, 플로우차트 유사)
State Diagram 객체의 상태 변화 표현 (유한 상태 기계)
Sequence Diagram 객체 간 상호작용, 메시지 흐름 시각화

UML과 개발 프로세스의 연계

단계 활용 UML 다이어그램
요구정의 Use Case Diagram
분석/설계 Class, Object, State, Activity, Sequence Diagram 등
구현 Component, Composite, Deployment Diagram
테스트 Package Diagram 등

  • 번외 (UML 도구) : 툴

1.Star UML

  • 오픈소스, 다양한 플랫폼 지원
  • 다이어그램 작성 + 자동 코드 생성
  • [http://staruml.sourceforge.net

2. UMLet

3. Enterprise Architect (EA)

  • 상용 도구, 강력한 기능 제공