UML

UML(Unified Modeling Language)의 개념

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

UML의 특징

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

  • 가시화 언어 : 개념 모델 작성 시 오류가 적고 의사소통이 용이
  • 구축 언어 : 다양한 프로그래밍 언어로 실행 시스템의 예측 가능
    • UML을 소스 코드로 변환하여 구축 가능, 역 변환하여 역공학 가능
  • 명세화 언어 : 정확한 모델 제시 , 완전한 모델 작성 가능
  • 문서화 언어 : 시스템에 대한 평가 및 의사소통의 문서

UML의 구성요소

  • 사관다 : 물, 계, 이어그램
  • 사물(Things)
    • 추상적인 개념으뢰 주제를 나타내는 요소
    • 단어 관점에서 ‘명사’ 또는 ‘동사’를 의미
  • 관계(Relationships)
    • 사물의 의미를 확장하고 명확히 하는 요소
    • 사물과 사물을 연결하여 관계를 표현하는 요소
    • 단어 관점에서 ‘형용사’ 또는 ‘부사’를 의미
  • 다이어그램(Diagrams)
    • 사물과 관계를 모아 그림으로 표현한 형태
    • 형식과 목적에 따라 9가지로 정의

사물(Things)

  • 구행그주
  • 조, 동, 룹, 해(사물)

UML 관계(Relationships) ★★

  • 연집포 일의실
  • 연관 관계(Association Relationship) : (ー)
    • 2개 이상의 사물이 서로 관련 되어 있는 관계
    • 사물사이를 실선(-)으로 표현 / 방향성은 화살표(→)로 표현
    • 양방향일 경우 화살표 생략하고 실선으로만 연결
  • 집합 관계(Aggregation Relationship) : (◇)
    • 하나의 사물이 다른 사물에 포함 되어 있는 관계
    • 포함하는 쪽과 포함되는 쪽은 서로 독립적
    • 포함되는 쪽에서 포함하는 쪽으로 속이 빈 마름모 화살표(-◇)로 연결하여 표현
  • 포함 관계(Composition Relationship) : (◆)
    • 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계
    • 포함하는 쪽과 포함되는 쪽은 서로 독립이 될 수 없고 생명주기를 함께 함
    • 포함되는 쪽에서 포함하는 쪽으로 속이 채워진 마름모(-◆)
  • 일반화 관계(Generalization Relationship) : (ー▷)
    • 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지 표현
    • 상위(일반적인 개념) 하위(구체적인 개념)
    • 하위 사물에서 상위 사물인 쪽으로 속이 빈 화살표(-▷) 연결
  • 의존 관계(Dependency Relationship) : (–>)
    • 사물 사이에 서로 연관은 있으나 필요에 의해 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지 하는 관계
    • 소유 관계는 아니지만 사물의 변화가 다른 사물에도 영향을 미침
    • 영향을 주는 사물(이용자)이 영향을 받는 사물(제공자)쪽으로 점선 화살표(–>) 연결 점선 화살표로 연결
  • 실체화 관계(Realization Relationship) : (–▷)
    • 사물이 할 수 있거나 해야 하는 기능(행위,인터페이스)로 서로를 그룹화 할 수 있는 관계
    • 사물에서 기능쪽으로 속이 빈 점선 화살표(–▷)로 연결

UML 다이어그램(Diagram) ★★

  • UML 다이어그램은 구분에 따라 구조적(정적) 다이어그램, 행위적(동적) 다이어그램으로 구분된다.
  • 컴포넌트, 배치 다이어그램은 구현 단계에서 사용되는 다이어그램이다.
  1. 구조적(Structural), 정적(Static) 다이어그램(Diagram)
    • 클객컴 배복패
    • 클래스(Class)
      • 객체 지향 모델링 시 클래스의 속성 및 연산과 클래스 간 정적인 관계를 표현한 다이어그램
    • 객체(Object)
      • 클래스에 속한 사물(객체)들, 즉 인스턴스 (Instance)를 특정 시점의 객체와 객체 사이의 관계로 표현한 다이어그램
      • 연관된 모든 인스턴스를 표현
    • 컴포넌트(Component)
      • 시스템을 구성하는 물리적 컴포넌트와 그들 사이의 의존 관계를 나타내는 다이어그램
      • 구현 단계에서 사용
    • 배치(Deployment)
      • 컴포넌트 사이의 종속성을 표현하고 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현하는 다이어그램
      • 구현 단계에서 사용
    • 복합체 구조(Composite Structure)
      • 클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현하는 다이어그램
    • 패키지(Package)
      • 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현한 다이어그램
  2. 행위(Behavioral), 동적(Dynamic) 다이어그램(Diagram)
    • 유시커 상활호타
    • 유스케이스(Use Case, 사용사례)
      • 시스템에 제공하고 있는 기능 및 그와 관련된 외부 요소를 사용자의 관점에서 표현하는 다이어그램
    • 시퀀스(Sequence, 순차)
      • 객체 간 동적 상호 작용을 시간적 개념을 중심으로 메시지 흐름으로 표현한 다이어그램
    • 커뮤니케이션(Communication, 협업)
      • 동작에 참여하는 객체들이 주고받는 메시지를 표현하고, 메시지뿐만 아니라 객체 간의 연관까지 표현하는 다이어그램
    • 상태(State)
      • 하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는지 표현하는 다이어그램
    • 활동(Activity)
      • 시스템이 어떤 기능을 수행하는지를 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서대로 표현하는 다이어그램
    • 상호작용 개요(Interaction Overview)
    • 타이밍(Timing)
      • 객체 상태 변화와 시간 제약을 명시적으로 표현하는 다이어그램

댓글남기기