본문 바로가기
휴지통/정보처리기사

009.UML(Unified Modeling Language)

by 신재권 2022. 1. 1.

UML(Unified Modeling Language)

UML은 시스템 분석, 설계, 구현 등 시스템 개발 과정에서 시스템 개발자와 고객 또는 개발자 상호간의 의사소통이 원할하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어

  • UML은 Rumbaugh(OMT), Booch, Jacobson 등의 객체지향 방법론의 장점을 통합하였으며, 객체 기술에 관한 국제표준화기구인 OMG(Object Management Group)에서 표준으로 지정하였다.
  • UML을 이용하여 시스템의 구조를 표현하는 6개의 구조 다이어그램과 시스템의 동작을 표현하는 7개의 행위 다이어그램을 작성할 수 있다.
  • 각각의 다이어그램은 사물과 사물 간의 관계를 용도에 맞게 사용한다.
  • UML의 구성 요소에는 사물(Things), 관계(Relationships), 다이어그램(Diagram) 등이 있다.

사물(Things)

사물은 모델을 구성하는 가장 중요한 기본 요소로, 다이어그램 안에서 관계가 형성될 수 있는 대상들을 말한다.

  • 구조 사물(Structural Things)
    • 시스템의 개념적, 물리적 요소를 표현
    • 클래스(Class), 유스케이스(Use Case), 컴포넌트(Component), 노드(Node)
  • 행동 사물(Behavioral Things)
    • 시간과 공간에 따른 요소들의 행위를 표현
    • 상호작용(Interaction), 상태 머신(State Machine)등
  • 그룹 사물(Grouping Things)
    • 요소들을 그룹으로 묶어서 표현
    • 패키지(Package)
  • 주해 사물(Annotation Things)
    • 부가적인 설명이나 제약조건 등을 표현
    • 노드(Node)

관계(Relationships)

관계는 사물과 사물 사이의 연관성을 표현하는 것

연관(Association) 관계

연관 관계는 2개 이상 사물이 서로 관련되어 있음을 표현

  • 사물 사이를 실선으로 연결하여 표현, 방향성은 화살표로 표현
  • 서로에게 영향을 주는 양방향 관계의 경우 화살표를 생략하고 실선으로만 연결
  • 연관에 참여하는 객체의 개수를 의미하는 다중도(Multiplicity)를 선 위에 표기

다중도

  • 1
    • 1개의 객체가 연관되어 있다.
  • n
    • n개의 객체가 연관되어 있다.
  • 0..1
    • 연관된 객체가 없가나 1개만 존재한다.
  • 0..* 또는 *
    • 연관된 객체가 없거나 다수일 수 있다.
  • 1..*
    • 연관된 객체가 적어도 1개 이상이다.
  • n..*
    • 연관된 객체가 적어도 n개 이상이다.
  • n..m
    • 연관된 객체가 최소 n개에서 최대 m개이다.

사람(1) —> (1) 집

선생님(1..)—(1..)학생

집합(Aggregation) 관계

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

  • 포함하는 쪽(전체, Whole)과 포함되는 쪽(부분, Part)은 서로 독립적이다.
  • 포함되는 쪽(부분, Part)에서 포함하는 쪽(전체, Whole)으로 속이 빈 마름모를 연결하여 표현한다.

컴퓨터<>—프린터

포함(Composition) 관계

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

  • 포함하는 쪽(전체, Whole)과 포함되는 쪽(부분 ,Part)은 서로 독립될 수 없고 생명주기를 함께한다.
  • 포함되는 쪽(부분 ,Part)에서 포함하는 쪽(전체, Whole)으로 속이 채워진 마름모를 연결하여 표현한다.

문 <>—키

일반화(Generalization) 관계

일반화 관계는 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지를 표현한다.

  • 예를 들어 사람은 여자와 남자보다 일반적인 개념이고 반대로 여자와 남자는 사람보다 구체적인 개념이다.
  • 보다 일반적인 개념을 상위(부모), 보다 구체적인 개념을 하위(자식)라고 부른다.
  • 구체적(하위)인 사물에서 일반적(상위)인 사물 쪽으로 속이 빈 화살표를 연결하여 표현

커피 ← 아메리카노, 에스프레소

의존(Dependency) 관계

의존 관계는 연관관계와 같이 사물 사이에 서로 연관은 있으나 필요에 의해 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계를 표현

  • 하나의 사물과 다른 사물이 소유 관계는 아니지만 사물의 변화가 다른 사물에도 영향을 미치는 관계
  • 일반적으로 한 클래스가 다른 클래스를 오퍼레이션의 매개변수로 사용하는 경우에 나타내는 관계
  • 영향을 주는 사물(이용자)이 영향을 받는 사물(제공자) 쪽으로 점선 화살표를 연결하여 표현한다.

등급 - - - > 할인율

실체화(Realization) 관계

실체화 관계는 사물이 할 수 있거나 해야 하는 기능(오퍼레이션, 인터페이스)으로 서로를 그룹화 할 수 있는 관계를 표현한다.

  • 한 사물이 다른 사물에게 오퍼레이션을 수행하도록 지정하는 의미적 관계
  • 사물에서 기능 쪽으로 빈 점선 화살표를 연결하여 표현

날수 있는 <| - - - 비행기, 새

다이어 그램

다이어그램은 사물과 관계를 도형으로 표현한 것이다.

  • 여러 관점에서 시스템을 가시화한 뷰(View)를 제공함으로써 의사소통에 도움을 준다.
  • 정적 모델링에서는 주로 구조적 다이어그램을 사용하고 동적 모델링에서는 주로 행위 다이어그램을 사용한다.
  • 구조적(Structure) 다이어그램
    • 클래스 다이어그램(Class Diagram)
      • 클래스와 클래스가 가지는 속성 ,클래스 사이의 관계를 표현한다.
      • 시스템의 구조를 파악하고 구조상의 문제점을 도출할 수 있다.
    • 객체 다이어그램(Object Diagram)
      • 클래스에 속한 사물(객체)들, 즉 인스턴스(Instance)를 특정 시점의 객체와 객체 사이의 관계로 표현한다.
      • 럼바우(Rumbaugh) 객체지향 분석 기법에서 객체 모델링에 활용된다.
    • 컴포넌트 다이어그램(Component Diagram)
      • 실제 구현 모듈인 컴포넌트 간의 관계나 컴포넌트 간의 인터페이스를 표현한다.
      • 구현 단계에서 사용되는 다이어그램
    • 배치 다이어그램(Deployment Diagram)
      • 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현
      • 노드와 의사소통(통신) 경로로 표현
      • 구현 단계에서 사용되는 다이어그램
    • 복합체 구조 다이어그램(Composite Structre Diagram)
      • 클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현 한다.
    • 패키지 다이어그램(Package Diagram)
      • 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현
  • 행위(Behavioral) 다이어그램
    • 유스케이스 다이어그램(Use Case Diagram)
      • 사용자의 요구를 분석하는 것으로 기능 모델링 작업에 사용한다.
      • 사용자(Actor)와 사용 사례(Use Case)로 구성되며, 사용 사례 간에는 여러 형태의 관계로 이루어진다.
    • 시퀀스 다이어그램(Sequence Diagram)
      • 상호 작용하는 시스템이나 객체들이 주고받는 메시지를 표현한다.
    • 커뮤니케이션 다이어그램(Communication Diagram)
      • 시퀀스 다이어그램과 같이 동작에 참여하는 객체들이 주고받는 메시지를 표현하는데, 메시지 뿐만 아니라 객체들 간의 연관까지 표현한다.
    • 상태 다이어그램(State Diagram)
      • 시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현한다.
    • 상호작용 개요 다이어그램(Interaction Overview Diagram)
      • 상호작용 다이어그램 간의 제어 흐름을 표현한다.
    • 타이밍 다이어그램(Timing Diagram)
      • 객체 상태 변화와 시간 제약을 명시적으로 표현한다.
    스테레오 타입(Streotype)
    • 길러멧(Guilemet)이라고 부르는 겹화살괄호(<<>>) 사이에 표현할 형태를 기술한다.
    • <<include>> : 연결된 다른 UML 요소에 대해 포함 관계가 있는 경우
    • <<extend>> : 연결된 다른 UML 요소에 대해 확장관계가 있는 경우
    • <<interface>> : 인터페이스를 정의하는 경우
    • <<exception>> : 예외를 정의하는 경우
    • <<constructor>> : 생성자 역할을 수행하는 경우
  • 스테레오 타입은 UML에서 표현하는 기본 기능 외에 추가적인 기능을 표현하기 위해 사용

정리

UML : 개발자 상호간, 고객간의 의사소통이 원할하게 이루어지도록 표준화한 객체지향 모델링 언어

UML : Rumbaugh(OMT)럼바우, Booch, Jacoboson 객체지향 방법론의 장점을 통합 , OMG→ 표준지정

UML의 구성요소 3가지 : 사물, 관계, 다이어 그램

사물(Things) : 사물은 모델을 구성하는 기본 요소, 다이어그램 안에서 관계가 형성될 수 있는 대상, 구조 사물, 행동 사물, 그룹 사물, 주해 사물

관계(Relatingship) : 사물과 사물 사이의 연관성 표현, 연관 관계, 집합 관계, 포함 관계, 일반화 관계, 의존 관계, 실체화 관계

연관관계(Association) : 2개 이상 사물이 서로 관련되어 있음을 표현, 실선, 화살표로 표현, 양방향은 실선만 연결, 다중도 표시

집합관계(Aggregation) : 하나의 사물이 다른 사물에 포함되어 있는 것 , 포함되는쪽에서 포함하는 쪽으로 속이 빈 마름모와 실선으로 연결

포함관계(Composition) : 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계, 서로 독집적이지 않다. 속이 채워진 마름모와 실선으로 연결

일반화관계(Generalization) : 부모(일반적인개념) , 하위(구체적인개념) , 하위에서 상위로 속이 빈 화살표 연결

의존관계(Dependency) : 사물 사이에 연관은 있으나, 필요에 의해 서로에게 영향을 주는 짧은 시간 동안 연관을 유지하는 관계, 소유 관계는 아니지만, 사물의 변화가 다른 사물에도 영향을 미친다. 한 클래스가 다른 클래스의 오퍼레이션의 매개변수로 사용한다. 영향을 주는 사물 에서 양향을 받는 사물 쪽으로 점선 화살표를 연결하여 표현한다.

실체화관계(Realization) : 사물이 할 수 있거나 해야하는 기능(오퍼레이션, 인터페이스)으로 서로를 그룹화 할 수 있는 관계, 사물에서 기능으로 속이 빈 점선 화살표로 연결하여 표현

집합관계 : 하나의 사물이 다른 사물에 포함되어 있는것

포함관계 : 집합관계와 똑같지만 사물의 변화로 영향을 끼침

일반화관계 : 부모/자식 관계 일반적/개념적 으로 나눔

의존관계 : 오퍼레이션의 매개변수로 사용한다.

실체화관계 : 기능을 나타내는 관계

다이어그램 : 관점에서 가시화한 뷰를 제공 → 의사소통에 도움을 준다

정적 모델링 : 구조적 다이어그램

동적 모델링 : 행위 다이어그램

클래스 다이어그램 (Class) :클래스 사이의 관계 표현, 시스템의 구조 파악 가능

객체 다이어그램(Object) : 인스턴스를 특정 시점의 객체와 객체사이의 관계로 표현, 럼바우 객체지향 분석 기법에서 활용

컴포넌트 다이어그램(Component) : 컴포넌트 간의 관계나 인터페이스를 표현 , 구현 단계에서 사용

배치 다이어그램(Deployment) : 물리적 요소들의 위치 표현, 노드와 의사소통(통신) 경로로 표현, 구현단계에서 사용

복합체 구조 다이어그램(Composite Structure Diagram) : 복합 구조를 갖는 경우 내부 구조를 표현

패키지 다이어그램(Package) : 유스케이스나 클래스 드으이 모델 요소들을 그룹화한 패키지들의 관계 표현

유스케이스 다이어그램(Use Case) : 기능 모델링 작업에서 사용, 사용자와 사용사례로 구성

시퀀스 다이어그램(Sequence) : 메시지 표현

커뮤니케이션 다이어그램(Communication) : 메시지 + 객체 간의 연관

상태 다이어그램(State) : 상태가 어떻게 변화하는지를 표현 , 럼바우 객체지향 분석 기법에서 활용

활동 다이어그램(Activity) : 처리의 흐름 순서 표현

상호작용 개요 다이어그램(Interaction Overview) : 상호작용 다이어그램 간의 제어 흐름 표현

타이밍 다이어그램(Timing) : 상태 변화와 시간 제약을 표시

스테레오타입 : << >> 로 표현, include(포함), extend(확장), interface(인터페이스), exception(예외), constructor(생성자)

'휴지통 > 정보처리기사' 카테고리의 다른 글

011. 사용자 인터페이스  (0) 2022.01.01
010. 주요 UML 다이어그램  (0) 2022.01.01
008. 요구사항 분석 CASE와 HIPO  (0) 2022.01.01
007. 요구사항 분석  (0) 2022.01.01
006. 요구사항 정의  (0) 2022.01.01