UML :: 표준화된 범용 모델링 언어

이주희·2022년 9월 25일
0

CS

목록 보기
39/66
post-thumbnail

UML

Unified Modeling Language

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

  • UML은 방법론을 통합한 것으로, 표준화된 모델링 기법을 제공한다.


1. UML의 특징

(1) 가시화 언어

  • 개념 모델 작성 시 오류가 적고 의사소통이 용이

(2) 구축 언어

  • 다양한 프로그래밍 언어로 실행 시스템의 예측 가능

  • UML을 소스코드로 변환하여 구축 가능

  • 역변환하여 역공학 가능

(3) 명세화 언어

  • 정확한 모델 제시, 완전한 모델 작성 가능

(4) 문서화 언어

  • 시스템에 대한 평가 및 의사소통의 문서

2. UML의 구성요소

UML은 사물, 관계, 다이어그램으로 구성된다.

(1) 사물 Things

  • 추상적인 개념으로, 주제를 나타내는 요소

  • 단어 관점에서 명사 또는 동사를 의미한다.

(2) 관계 Relationships

  • 사물의 의미를 확장하고 명확히 하는 요소

  • 사물과 사물을 연결하여 관계를 표현하는 요소

  • 단어 관점에서 형용사 또는 부사를 의미한다.

(3) 다이어그램 Diagrams

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

  • 형식과 목적에 따라 9가지로 정의한다.


3. 구조적(정적) 다이어그램 🌟

Structural Diagram / Static Diagram

(1) 클래스

  • 객체 지향 모델링 시 클래스의 속성, 연산, 클래스 간 정적인 관계 표현한 다이어그램

(2) 객체

  • 클래스에 속한 사물(객체)들, 즉 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현한 다이어그램

  • 연관된 모든 인스턴스를 표현한다.

    인스턴스 Instance

    객체 지향 프로그래밍에서 해당 클래스의 구조로 컴퓨터 저장 공간에서 할당된 실체

(3) 컴포넌트

  • 시스템을 구성하는 물리적인 컴포넌트와 그들 사이의 의존 관계를 나타내는 다이어그램

  • 구현 단계에서 사용된다.

  • 구성 요소: 컴포넌트, 인터페이스, 의존 관계

  • 컴포넌트 사이의 의존 관계는 한 컴포넌트에 변경이 발생한 경우, 변경 범위 추적에 유용하다.

(4) 배치 Deployment

  • 컴포넌트 사이의 종속성을 표현하고, 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현하는 다이어그램

  • 구현 단계에서 사용된다.

(5) 복합체 구조 Composite Structure

  • 클래스나 컴포넌트가 복합 구조를 갖는 경우, 그 내부 구조를 표현하는 다이어그램

(6) 패키지 🌟🌟

  • 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현하는 다이어그램

  • 시스템의 서로 다른 패키지들 사이의 의존 관계를 표현하기 위한 다이어그램

  • 패키지: 요소들을 그룹으로 조직하기 위한 요소

  • 의존 관계: 하나의 패키지가 다른 패키지를 사용하는 관계

  • 의존성의 성질을 나타내기 위해 스테레오 타입을 붙일 수 있다.
    (스테레오 타입: <<import>>, <<access>>)


4. 행위적(동적) 다이어그램 🌟

(1) 유스케이스 다이어그램

  • 시스템이 제공하고 있는 기능 및 그와 관련된 외부 요소를 사용자의 관점에서 표현하는 다이어그램

(2) 시퀀스 다이어그램

  • 객체 간 동적 상호 작용을 시간적 개념을 중심으로 메시지 흐름으로 표현하는 다이어그램

  • 구성 요소: 객체, 생명선, 실행, 메시지

(3) 커뮤니케이션

  • 동작에 참여하는 객체들이 주고받는 메시지를 표현하고, 메시지뿐만 아니라 객체 간의 연관까지 표현하는 다이어그램

  • 시스템이나 객체들이 메시지를 주고받으며 시간의 흐름에 따라 상호 작용하는 과정을 표현하고, 문제에 객체의 연관을 표현하는 다이어그램

  • 구성 요소: 액터, 객체, 링크, 메시지

(4) 상태 State

  • 하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는지 표현하는 다이어그램

  • 구성 요소: 상태, 시작 상태, 종료 상태, 전이, 이벤트, 전이 조건

(5) 활동 Activity

  • 시스템이 어떤 기능을 수행하는지를 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서대로 표현하는 다이어그램

  • 구성 요소: 시작점, 전이, 액션/액티비티, 조건(판단) 노드, 병합 노드, 포크 노드, 조인 노드, 구획면

(6) 타이밍

  • 객체 상태 변화와 시간 제약을 명시적으로 표현하는 다이어그램

5. UML 확장 모델의 스테레오 타입

  • UML의 기본적 요소 이외의 새로운 요소를 만들어내기 위한 확장 메커니즘

  • 형태는 기존의 UML의 요소를 그대로 사용하지만 내부 의미는 다른 목적으로 사용하도록 확장한다.

  • 길러멧 기호 <<>> 를 사용하여 표현한다.

(1) <<include>>

  • 하나의 유스케이스가 어떤 시점에 반드시 다른 유스케이스를 실행하는 포함 관계

(2) <<extend>>

  • 하나의 유스케이스가 어떤 시점에 다른 유스케이스를 실행할 수도 있고, 그렇지 않을 수도 있는 확장 관계

(3) <<interface>>

  • 모든 메서드가 추상 메서드이며, 바로 인스턴스를 만들 수 없는 클래스로, 추상 메서드와 상수만으로 구성된 클래스

(4) <<entity>>

  • 일반적으로 정보 또는 오래 지속되는 연관된 행위를 형상화하는 클래스로, 유스케이스 처리 흐름이 수행되는 과정에서 기억 장치에 저장되어야 할 정보를 표현하는 클래스

(5) <<boundary>>

  • 시스템과 외부 액터와의 상호 작용을 담당하는 클래스

(6) <<control>>

  • 시스템이 제공하는 기능의 로직 및 제어를 담당하는 클래스

6. UML의 관계 Relationships 🌟

(1) 연관 관계 Association

  • 클래스가 서로 개념적으로 연결된 선

  • 2개 이상의 사물이 서로 관련되어 있는 상태를 표현

  • 양방향 관계의 경우 화살표 생략

  • 실선으로 표현, 방향성은 화살표

(2) 의존 관계 Dependency

  • 하나의 클래스가 또 다른 클래스를 사용하는 관계

  • 다른 클래스의 멤버 함수 사용

  • 사물 사이에 서로 연관은 있으나, 필요에 따라 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계를 표현

  • 하나의 클래스에 있는 멤버 함수의 인자가 변함에 따라 다른 클래스에 영향을 미칠 때의 관계

  • 점선으로 표현, 영향을 주는 사물이 영향을 받는 사물 쪽으로 점선 화살표

(3) 일반화 관계 = 상속 관계 Generalization

  • 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지를 표현

  • 일반적인 개념을 부모(상위), 구체적인 개념을 자식(하위)

  • 구체적(하위)인 사물에서 일반적(상위)인 사물 쪽으로 속이 빈 화살표를 연결

  • extends 메서드 사용

  • 화살표로 표현

(4) 실체화 관계 Realization

  • 추상 클래스나 인터페이스를 상속받아 자식 클래스가 추상 메서드를 구현할 때 사용

  • 사물이 할 수 있거나, 해야 하는 기능(행위, 인터페이스)으로 서로를 그룹화할 수 있는 관계 표현

  • implements 메서드 사용

  • 점선 화살표로 표현

추상 클래스 <<abstract>>

  • 객체 인스턴스를 생성하지 않고, 단지 유사 클래스들의 공통된 특징을 정의하고, 하나 이상의 추상 메서드와 일반 필드 및 일반 메서드를 포함하는 클래스
  • 동일한 부모를 가지는 클래스를 묶는 개념으로 상속을 받아서 기능을 확장시키는 것이 목적

인터페이스 <<interface>>

  • 기능을 모아놓은 클래스로 추상 메서드와 상수만을 포함하는 추상 클래스
  • 구현하는 모든 클래스에 대해 특정한 메서드가 반드시 존재하도록 강제하는 역할

(5) 포함 관계 = 복합 관계 Composition

  • 영구적이고, 집합 관계보다 더 강한 관계로 구성

  • 포함되는 쪽(Part; 부분)에서 포함하는 쪽(Whole; 전체)으로 속이 채워진 마름모를 연결

  • 집합 관계의 특수한 형태로, 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계를 표현

  • 종속적이다.

  • 전체와 부분을 나타낸다.

  • 채워진 마름모 & 화살표

(6) 집합 관계 = 집약 관계 Aggregation

  • 하나의 객체에 여러 개의 독립적인 객체들이 구성되는 관계

  • 하나의 사물이 다른 사물에 포함되어 있는 관계 표현

  • 포함되는 쪽(Part; 부분)에서 포함하는 쪽(Whole; 전체)으로 속이 빈 마름모를 연결

  • 독립적이다.

  • 전체와 부분을 나타낸다.

  • 빈 마름모 & 화살표

profile
🍓e-juhee.tistory.com 👈🏻 이사중

0개의 댓글