{ CS } UML Diagram

UML (Unified Modeling Language)

  • 공통된 표현법을 사용하여 개발할 대상물을 다이어그램으로 표현하는 도구이다.
  • 소프트웨어 개발 참여자들은 UML 로 표현된 다이어그램으로 개발에 관한 의견을 서로 교환한다.
  • 구성요소에는 사물(Things), 관계(Relationship). 다이어그램(Diagram) 등이 있다.

사물

  • 사람, 자동차, 컴퓨터 등과 같은 물질적이거나 개념적인 것(Entity) 를 컴퓨터 내부에 추상적으로 표현한 것
  • 구조사물, 행동사물, 그룹사물, 주해사물이 있다.

관계

  • 관계는 사물과 사물 사이의 연관성을 표현하는 것이다.
  • 연관 관계, 집합 관계, 포함 관계, 일반화 관계, 의존 관계, 실체화 관계 등이 있다.
  1. 연관 관계 (Association): 2개 이상의 객체가 서로 연관되어 있음을 나타낸다.

  2. 집합 관계 (Aggregation): 하나의 사물이 다른 사물에 포함되어 있는 관계를 나타낸다. e.g. 프린터는 컴퓨터에 연결해서 사용할 수 있으며, 다른 컴퓨터애 연결해서 사용할 수도 있다.(포함하는 쪽으로 속이 빈 마름모를 연결하여 표현)

  3. 포함 관계 (Composition): 집합 관계의 특수한 형태로, 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계를 나타낸다. e.g. 문을 열 수 있는 키는 하나이며, 해당 키로 다른 문은 열 수가 없다. 문이 없어지면 키도 더 이상 필요하지 않다. (포함하는 쪽으로 속이 찬 마름모를 연결하여 표현)

  4. 일반화 관계 (Generalization): 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지를 표현한다. e.g. 아메리카노와 에스프레소는 커피이다. 다시 말하면, 커피에는 아메리카노와 에스프레소가 있다. (구체적인 사물에서 일반적인 사물로 속이 빈 화살표를 연결하여 표현)

  5. 의존 관계 (Dependency): 연관 관계와 같이 2개 이상의 객체가 서로 연관되어 있으나 필요에 의해 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계이다. e.g. 등급이 높으면 할인율을 적용하고, 등급이 낮으면 할인율을 적용하지 않는다. 등급을 오퍼레이션의 매개 변수로 사용. (영향을 받는 사물쪽으로 점선 화살표를 연결하여 표현)

  6. 실체화 관계 (Realization): 사물이 할 수 있거나 해야 하는 기능(오퍼레이션, 인터페이스)으로 서로를 그룹화 할 수 있는 관계를 표현 e.g. 비행기는 날 수 있고 새도 날 수 있다. 그러므로 비행기와 새는 날 수 있다는 행위로 그룹화 할 수 있다. (사물에서 기능 쪽으로 속이 빈 점선 화살표를 연결하여 표현)

다이어그램

  • 다이어그램은 사물과 관계를 도형으로 표현한 것이다.
  • 정적 모델링에는 주로 구조적 다이어그램을 사용하고 동적 모델링에는 주로 행위 다이어그램을 사용한다.
  • 구조적 다이어그램의 종류: 클래스, 객체, 컴포넌트, 배치, 복합체, 패키지
  • 행위 다이어그램의 종류: 유스케이스, 순차, 커뮤니케이션, 상태, 활동, 상호작용개요, 타이밍

구조적 다이어그램

  1. 클래스 다이어그램: 클래스와 클래스가 가지고 있는 ‘속성, 클래스 사이의 관계’를 표현 / 구조를 파악하고 구조상의 문제점을 도출 가능
  2. 객체 다이어그램: 클래스에 속한 객체들. 즉 인스턴스를 ‘특정 시점의 객체와 객체 사이의 관계’로 표현 / 럼바우(Rumbaugh) 객체지향 분석 기법에 사용
  3. 컴포넌트 다이어그램: 실제 구현 모듈인 ‘컴포넌트 간의 관계나 인터페이스’를 표현한다 / 구현 단계에서 사용되는 다이어그램
  4. 배치 다이어그램: 결과물,프로세스,컴포넌트 등 ‘물리적 요소들의 위치’ 를 표현한다 / 구현 단계에서 사용되는 다이어그램
  5. 복합체 구조 다이어그램: 클래스나 컴포넌트가 ‘복합 구조를 갖는 경우 그 내부 구조’를 표현한다
  6. 패키지 다이어그램: 유스케이스나 클래스 등의 모델 요소들을 ‘그룹화한 패키지들의 관계’를 표현한다

행위 다이어그램

  1. 유스케이스 다이어그램: 사용자의 요구를 분석하는 것으로 기능 모델링 작업에 사용한다 / actor 와 use case 로 구성되며 use case 간에는 여러 형태의 관계로 이루어진다.
  2. 순차(시퀸스) 다이어그램: 상호 작용하는 시스템이나 객체들이 주고받는 ‘메시지’를 표현한다.
  3. 커뮤니케이션 다이어그램: 메시지 + 객체들간의 연관까지 표현한다.
  4. 상태 다이어그램: 하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는지를 표현한다. / 럼바우 객체지향 분석 기법에서 동적 모델링에 활용된다.
  5. 활동 다이어그램: 시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현한다.

럼바우 객체지향 분석 기법 3가지

  1. 객체 모형 - 객체 다이어그램
  2. 동적 모형 - 상호작용, 상태 다이어그램
  3. 기능 모형 - 프로세스 간의 자료, 데이터 흐름 (자료 흐름도) / 어떤 데이터를 입력하여 어떤 결과를 가져 올 수 있을지

UML 소프트웨어에 대한 관점 3가지

  1. 기능적 관점 - 사용자 입장에서 본 software 의 기능 / Use case diagram
  2. 정적 관점 - 소프트웨어 내부의 구성요소 사이의 구조적 관계 / Class diagram
  3. 동적 관점 - 시스템의 내부 동작 / Sequence, State, Activity

주요 UML 다이어그램 - 유스케이스, 클래스, 순차 다이어그램

유스케이스 다이어그램

  • 개념: 개발될 시스템과 관련된 외부 요소들, 즉 사용자와 다른 외부 시스템들이 개발될 시스템을 이용해 수행할 수 있는 기능을 사용자의 관점(VIEW)에서 표현한 것이다 / 외부 요소와 시스템 간의 상호작용을 확인 할 수 있다 / 사용자의 요구사항을 분석하기 위한 도구로 사용 / 시스템의 범위를 파악할 수 있다.

구성 요소의 종류: 시스템 범위(System scope, Actor, Use case, Relationship)

  • 시스템 범위: 시스템 내부에서 수행되는 기능들을 외부 시스템과 구분하기 위해 시스템 내부의 유스케이스들을 사각형으로 묶어 시스템의 범위를 표현
  • 액터: 사람이나 외부 시스템을 의미한다.
    • 주액터: 시스템을 사용함으로서 이득을 얻는 대상, 주로 사람이 해당됨
    • 부액터(system actor): 주액터의 목적 달성을 위해 시스템에 서비스를 제공하는 외부 시스템으로 조직이나 기관 등이 된다.
  • 유스케이스: 사용자가 보는 관점에서 시스템이 액터에게 제공하는 서비스 또는 기능을 표현
  • 관계: 연관,포함,확장,일반화 관계