UML(Unified Modeling Language) (1과목)

개발로 쓰는 개발 노트·2023년 6월 24일

정보처리기사 준비

목록 보기
9/57

UML의 개요

  • 개발할 대상물을 다이어그램으로 설계하는 것
  • 같은 대상물을 보아도 해석하는게 다르기 때문에 공통된 표현법을 만들어서 사용하는 것이 UML이다.
  • 객체기술에 관한 국제 표준화 기구인 OMG(Object Management Group)에서 표준으로 지정하였다.
  • UML을 이용하여 6개의 구조 다이어그램과 시스템의 동작을 표현하는 7개의 행위 다이어그램을 작성할 수 있다.
  • UML의 구성요소는 사물(Things), 관계(Relationships), 다이어그램(Diagram) 등이 있다.

사물(Things)

  • 사물은 모델을 구성하는 가장 기본요소
  • 다이어그램 안에서 관계가 형성될 수 있는 대상
  • 구조 사물, 행동 사물, 그룹 사물, 주해 사물이 있다.
  • 구조 사물(Structural Things)
    • 시스템의 개념적, 물리적 요소를 표현
    • 클래스(Class), 유스케이스(Use Case), 컴포넌트(Component), 노드(Node) 등
  • 행동 사물(Behavior Things)
    • 시간과 공간에 따른 요소들의 행위를 표현
    • 상호작용(Interaction), 상태 머신(State Machine) 등
  • 그룹 사물(Group Things)
    • 요소들을 그룹으로 묶어서 표현
    • 패키지(Package)
  • 주해 사물(Annotation Things)
    • 부가적인 설명이나 제약조건 등을 표현
    • 노트(Note)

관계(Relation)

  • 사물과 사물사이의 연관성을 표현
  • 연관 관계, 집합 관계, 포함 관계, 일반화 관계, 실체화 관계 등이 있다.

연관 관계(Association)

  • 2개 이상의 사물이 서로 관련되어 있음을 표기한다.
  • 사물 사이를 실선으로 연결하여 표현하며, 방향성은 화살표로 표현한다.
  • 서로에게 영향을 주는 양방향 관계의 경우 화살표를 생략하고 실선으로만 연결한다.
  • 연관에 참여하는 객체의 개수를 의미하는 다중도를 선 위에 표기한다.
    • 1 : 1개의 객체가 연관되어 있다.
    • n : n개의 객체가 연관되어 있다.
    • 0..1 : 연관된 객체가 없거나 1개만 존재한다.
    • 0..* 또는 * : 연관된 객체가 없거나 다수일 수 있다.
    • 1..* : 연관된 객체가 1개 이상이다.
    • n..* : 연관된 객체가 n개 이상이다.
    • n..m : 연관된 객체가 최소 n개, 최대 m개이다.

집합 관계(Aggregation)

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

포함 관계(Composition)

  • 포함 관계는 집합 관계의 특수한 형태이다.
  • 포함하는 사물의 변화가 포함되는 사물에 영향을 미치는 관계를 표현한다.
    • 포함하는 쪽(전체)과 포함되는 쪽(부분)은 서로 독립될 수 없고 생명주기를 함께한다.
    • 부분에서 전체로 속이 채워진 마름모를 연결하여 표현한다.

일반화 관계(Generalization)

  • 일반화 관계는 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지 표현한다.
    • 사람은 여자와 남자보다 일반적인 개념이고 여자와 남자는 사람보다 구체적인 개념이다.
    • 일반적인 개념을 부모라고 부르며 구체적인 개념을 자식이라고 부른다.
    • 자식에서 부모로 향하는 속이 빈 화살표를 이용하여 표현한다.

의존 관계(Dependency)

  • 연관 관계와 같이 사물 사이에 서로 연관은 있으나 필요에 의해 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계를 표현한다.
    • 하나의 사물과 다른 사물이 소유 관계는 아니지만 사물의 변화가 다른 사물에도 영향을 미치는 관계
    • 영향을 주는 사물(이용자)이 영향을 받는 사물(제공자) 쪽으로 점선 화살표를 연결하여 표현한다.

실체화 관계(Realization)

  • 사물이 할 수 있거나 해야하는 기능(오퍼레이션, 인터페이스)으로 서로 그룹화 할 수 있는 관계를 표현한다.
  • 한 사물이 다른 사물에게 오퍼레이션을 수행할 수 있도록 지정하는 의미적 관계
  • 사물에서 기능쪽으로 속이 빈 점선 화살표를 연결하여 표현한다.
    • 날 수 있다가 위에 있는 사물
    • 아래에 비행기, 새가 사물
    • 비행기와 새에서 출발하여 날 수 있다로 도착하는 점선 화살표를 이어준다.

다이어그램(Diagram)

  • 사물과 관계를 도형으로 표현한 것
  • 구조적 다이어그램의 종류
    • 클래스 다이어그램(Class Diagram)
      • 클래스의 관계 표현
    • 객체 다이어그램(Object Diagram)
      • 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현
      • 럼바우 객체지향 분석 기법에서 객체 모델링에 활용된다.
    • 컴포넌트 다이어그램(Component Diagram)
      • 실제 구현 모듈인 컴포넌트 간의 관계나 컴포넌트 간의 인터페이스를 표현한다.
      • 구현 단계에서 사용되는 다이어그램이다.
    • 배치 다이어그램(Deployment Diagram)
      • 결과물 프로세스 컴포넌트 등 물리적 요소들의 위치를 표현한다.
      • 노드와 의사소통 경로를 표현한다.
    • 복합체 구조 다이어그램(Composite Structure Diagram)
      • 클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현한다.
    • 패키지 다이어그램(Package Diagram)
      • 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현한다.
  • 행위 다이어그램의 종류
    • 유스케이스 다이어그램(Use Case Diagram)
      • 사용자와 사용 사례로 구성되며 사용 사례 간에는 여러 형태의 관계로 이루어진다.
    • 시퀀스 다이어그램
      • 상호 작용하는 시스템이나 객체들이 주고받는 메시지를 표현
    • 상태 다이어그램
      • 럼바우 객체지향 분석 기법에서 동적 모델링에 사용된다.
      • 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는지를 표현한다.
    • 활동 다이어그램
      • 시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현한다.

스테레오 타입(Stereatype)

  • 기본 기능 외에 추가적인 기능을 표현하기 위해 사용됩니다.
  • 길러멧이라고 부르는 겹화살 괄호(<<>>)사이에 표현할 형태를 기술한다.
  • 주로 표현되는 형태
    • <<include>> : 연결된 다른 UML요소가 포함 관계에 있는 경우
    • <<extend>> : 연결된 다른 UML요소가 확장 관계에 있는 경우
    • <<interface>> : 인터페이스 정의
    • <<exception>> : 예외 정의
    • <<constructor>> : 생성자 역할 수행

출처 : 2022 시나공 기본서 1권 정보처리기사 필기

profile
비전공자 개발초보입니다!

0개의 댓글