랑아
article thumbnail

04. UML 다이어그램

01. UML(Unified Modeling Language) 다이어그램

1) UML의 정의

  • 객체지향 소프트웨어 개발 과정에서 산출물을 가시성, 명세화, 문서화할 때 사용되는 모델링 기술 방법론을 통합하여 만든 표준화된 범용 모델링 언어
  • 요구분석, 설계, 구현 등의 소프트웨어 개발 과정에서, 개발자 간의 의사소통을 원활하게 이루어지게 하기 위하여 표준화한 모델링 언어
  • 모델링에 대한 표현이 정확하고 오류가 적은 논리적인 표기법

2) UML의 특징

  1. 가시성
    • 쉽게 보이는 정도
    • 소프트웨어를 이해하기 쉽게 표현해줌
    • 반복적, 점진적으로 구체화하여 소프트웨어의 가시성을 제공함
  2. 명세화
    • UML로 그려진 소프트웨어 설계 문서는 소프트웨어의 기능을 자세하게 설명함
    • 단순 표기법이 아닌 구현에 필요한 개발적 요소 및 기능에 대한 명세를 제공함
  3. 문서화
    • UML로 그려진 소프트웨어 설계 문서를 프로그램의 지식이 없는 사용자도 쉽게 알아볼 수 있음
    • 개발 규모, 프로세스, 언어와 무관하게 개발자 간의 의사소통 도구를 제공함

3) UML의 기본 구성 요소

  1. 사물(Thing)
    • 구조 사물(Structure Thing) : 시스템의 구조를 표현하는 사물
    • 행위 사물(Behavior Thing) : 시스템의 행위를 표현하는 사물
    • 그룹 사물(Group Thing) : 개념을 그룹화 하는 사물
    • 주석 사물(Annotation Thing) : 개념을 설명하는 사물
  2. 관계(Relationship)
    • 사물 간의 관계를 나타냄
  3. 다이어그램(Diagram)
    • 사물 간의 관계를 도형으로 나타냄

4) UML 다이어그램의 분류

  1. UML의 Structure Diagram(구조 다이어그램) - 정적 구조
    • 클래스 다이어그램(Class Diagram)
    • 객체 다이어그램(Object Diagram)
    • 패키지 다이어그램(Package Diagram)
    • 컴포넌트 다이어그램(Component Diagram)
    • 복합 구조 다이어그램(Composite Structure Diagram)
    • 배치 다이어그램(Deployment Diagram)
  2. UML의 Behavior Diagram(행위 다이어그램) - 동적 구조
    • 유스케이스 다이어그램(Usecase Diagram)
    • 상태 다이어그램(State Machine Diagram)
    • 활동 다이어그램(Activity Diagram)
    • 시퀀스 다이어그램(Sequence Diagram)
    • 통신 다이어그램(Communication Diagram)
    • 상호 작용 다이어그램(Interaction Overview Diagram)
    • 타이밍 다이어그램(Timing Diagram)

5) UML 다이어그램

  1. 클래스 다이어그램(Class Diagram)
    • 클래스와 클래스, 클래스의 속성 사이의 관계를 표현함
    • 객체를 생성하기 위한 도구, 틀
    • 속성과 함수를 지닌 것들의 범위 및 그룹,
  2. 객체 다이어그램(Object Diagram)
    • 클래스의 인스턴스
    • 객체 간의 연결 관계(스냅샷)를 표현함
    • 속성과 함수를 가지고 있는 개별적인 객체
    • 인스턴스 이름은 클래스명 앞에 콜론을 붙이고, 왼쪽에 기입함
  3. 패키지 다이어그램(Package Diagram)
    • 클래스들을 이용하여 조직화함
    • 객체들의 그룹화된 표현
    • 관련성 있는 객체들을 모아 하나의 패키지로 표시함
    • 패키지 안에는 클래스 이름을 기입함
    • 패키지 안에 패키지를 포함할 수 있음
  4. 컴포넌트 다이어그램(Component Diagram)
    • 컴포넌트는 지원 함수 블록 혹은 집합체, 라이브러리 빌딩으로 객체화된 프로그램의 그룹
    • 컴포넌트는 독립적인 프로그램으로 사용될 수 있으며, 객체 프로그램을 부분적으로 지원하는 서브 프로그램으로도 사용될 수 있음
    • 컴포넌트는 한 개 이상의 클래스로 구현함
    • 시스템을 구성하는 컴포넌트 사이에 의존관계를 표현함
    • 컴포넌트 다이어그램은 컴포넌트, 인터페이스, 의존 관계로 표현함
  5. 복합 구조 다이어그램(Composite Structure Diagram)
    • 컴포넌트 내부를 파트와 연결자로 표현함
    • 컴포넌트나 클래스의 내부 연결 형태를 표현함
    • 컴포넌트나 클래스의 내부 구조를 보여주기 위해 사용함
  6. 배치 다이어그램(Deployment Diagram)
    • 객체와 연결 경로를 배치하는 물리적인 컴포넌트를 표현함
    • 하드웨어 자원의 연결을 표현함
    • 하드웨어 자원에 연결된 소프트웨어 컴포넌트 배치를 표현함
    • 대부분 설계 단계의 마지막에 작성됨
  7. 유스케이스 다이어그램(Usecase Diagram)
    • 사용자 시각에서 소프트웨어 범위와 기능을 설명하는 설계 표기법
    • 구조적 분석 방법론에서는 자료 흐름도(DFD), 객체지향 분석 방법론에서는 유스케이스 다이어그램을 사용함
    • 유스케이스는 사용자 시각으로 본 시스템의 행위를 말함
    • 외부 요소와 기능적 요구사항을 행위자와 유스케이스로 표현함
    • 구성 요소
      • Actor
        • 사용자를 나타냄(사람 모양)
        • 소프트웨어 외부에 존재하면서 소프트웨어와 상호 작용하는 객체
        • 소프트웨어가 서비스 해 주기를 요청하는 객체
        • 소프트웨어에게 정보를 제공하는 객체
        • 객체지향 기술에서의 객체
      • Usecase
        • 시스템의 행동을 나타냄(타원)
        • 소프트웨어가 Actor에게 제공하기 위한 기능
        • Actor의 요청에 반응하여 실행되는 기능
        • 객체의 메소드
      • Relationship
        • 서로 관련 있는 Actor와 Usecase를 연결함
  8. 상태 다이어그램(State Machine Diagram)
    • 액터의 동적 행위를 상태와 전이로 표현함
    • 객체는 시간에 따라 다른 생타가 존재함
    • 하나의 객체가 가진 상태와 그 상태의 변화에 의한 동작 순서는 나타냄
  9. 활동 다이어그램(Activity Diagram)
    • 액터의 동적 행위를 활동으로 표현하는 다이어그램
    • 객체가 상태가 아닌 조건에 따라 흐름의 순서를 정의한 다이어그램
    • 객체들의 상호 관계를 순서적으로 도식화하여 불필요한 순서를 없앰
    • 활동 다이어그램 구성 요소
      • 활동(Activity) : 무언가를 하고 있는 행위나 작업
      • 시작 상태(Initial State) : 처리 흐름이 시작되는 곳
      • 종료 상태(Final State) : 처리 흐름이 종료되는 곳
      • 선택 지점(Decision) : 조건에 따라 분기되는 곳
      • 전이(Transition) : 활동들 사이에 흐름을 표시함
      • 구획 지점(Swim lane) : 역할에 따른 처리를 구분함
  10. 시퀀스 다이어그램(Sequence Diagram)
    • 시퀀스 다이어그램은 상호 작용 다이어그램의 한 종류로 볼 수 있음
    • Actor 간의 상호 작용을 시간 순서에 따른 메시지 전달로 표현함
    • 객체 간에 주고 받은 메시지의 순서를 시간의 흐름에 따라 보여줌
    • 객체 간의 메시지 통신을 분석하기 위한 것으로 시스템의 동작을 정형화하고 객체들의 메시지 교환을 시각화함
    • 구조적 설계 방법론에서는 구조도(Structured Chart), 객체지향 설계 방법론에서는 시퀀스 다이어그램을 사용함
    • 시퀀스 다이어그램 구성 요소
      • 객체(Object) : 사용자, 로그인, Action, 인터페이스
      • 생명성(Lifeline) : 세로 실선
      • 실행(Activation) : 세로 사각형
      • 메시지(Message) : 화살표 위의 메시지, 동기식과 비동기식
      • 시간(Time) : 세로 사각형의 길이기 실행 시간
  11. 통신 다이어그램(Communication Diagram)
    • 협력 다이어그램(Collaboration Diagram)이라고도 함
    • Actor 간에 상호 작용을 관계 형태의 메시지 전달로 표현함
    • 통신 다이어그램은 객체, 링크, 메시지로 구성됨
  12. 상호 작용 다이어그램(Interaction Overview Diagram)
    • 상호 작용의 관계를 표현함
    • 유스케이스를 수행하기 위한 객체들의 상호 작용을 표현함
    • 시퀀스 다이어그램과 통신 다이어그램이 존재하며 서로 1:1로 변환이 가능함
  13. 타이밍 다이어그램(Timing Diagram)
    • 객체 간의 상태 변화를 구체적인 시간으로 표현함
    • 시간 조건에 중점을 둔 상호 작용 다이어그램
    • 일정 기간 동안 객체의 동작을 탐색하는 데 사용됨

'정보처리기사 > 프로그래밍 언어 활용' 카테고리의 다른 글

객체지향 기술 7  (0) 2023.05.30
객체지향 기술 6  (0) 2023.05.30
객체지향 기술 4  (0) 2023.05.30
객체지향 기술 3  (3) 2023.05.30
객체지향 기술 2  (0) 2023.05.30
profile

랑아

@RangA

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!