1-1 009 UML(Unified Modeling Language) [A]

이지우·2024년 3월 27일
0

정보처리기사

목록 보기
9/31

UML의 개요

Unified Modeling Language

시스템 개발 과정에서 의사소통이 원활하게 이루어지도록 표준화한 객체지향 모델링 언어

  • 객체지향 방법론의 장점을 통합함
  • 국제표준화기구 OMG(Object Management Group)에서 표준으로 지정
  • 시스템의 구조를 표현하는 6개의 구조 다이어그램 작성 가능
  • 시스템의 동작을 표현하는 7개의 행위 다이어그램 작성 가능
  • 사물과 사물 간의 관계를 용도에 맞게 표현
  • 구성요소: 사물(Things), 관계(Relationships), 다이어그램(Diagram)

사물(Things)

모델을 구성하는 가장 중요한 기본 요소
다이어그램 안에서 관계가 형성될 수 있는 대상

구조 사물(Structural Things)
: 개념적, 물리적 요소
: 클래스(Class), 유스케이스(Use Case), 컴포넌트(Component), 노드(Node)

행동 사물(Behavioral Things)
: 시간과 공간에 따른 요소들의 행위
: 상호작용(Interaction), 상태 머신(State Machine)

그룹 사물(Grouping Things)
: 요소들을 그룹으로 묶어서 표현
: 패키지(Package)

주해 사물(Annotation Things)
: 부가적인 설명이나 제약조건
: 노트(Note)


관계(Relationships)

사물과 사물 사이의 연관성

  • 연관 관계
  • 집합 관계
  • 포함 관계
  • 일반화 관계
  • 의존 관계
  • 실체화 관계

연관(Association) 관계

2개 이상의 사물이 서로 관련되어 있음

  • 사물 사이를 실선으로 연결하고 방향성은 화살표로 표현
  • 양방향 관계의 경우 실선으로만 연결
  • 객체의 개수를 의미하는 다중도(Multiplicity)를 선 위에 표기
다중도의미
11개의 객체가 연관됨
nn개의 객체가 연관됨
0..1연관된 객체가 없거나 1개 존재
0..* 또는 *연관된 객체가 없어나 다수
1..*연관된 객체가 적어도 1개 이상
n..*연관된 객체가 적어도 n개 이상
n..m연관된 객체가 최소 n개에서 최대 m개

집합(Aggregation) 관계

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

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

포함(Composition) 관계

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

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

일반화(Generlization) 관계

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

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

의존(Dependency) 관계

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

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

실체화(Realization) 관계

할 수 있거나 해야하는 기능(오퍼레이션, 인터페이스)으로 서로를 그룹화 할 수 있는 관계

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

다이어그램(Diagram)

사물과 관계를 도형으로 표현

  • 가시화한 뷰(View)를 제공함으로써 의사소통에 도움을 줌
  • 정적 모델링에서는 주로 구조적 다이어그램을 사용함
  • 동적 모델링에서는 주로 행위 다이어그램을 사용함

구조적(Structural) 다이어그램

  • 클래스 다이어그램(Class Diagram)
  • 객체 다이어그램(Object Diagram)
  • 컴포넌트 다이어그램(Component Diagram)
  • 배치 다이어그램(Deployment Diagram)
  • 복합체 구조 다이어그램(Composite Structure Diagram)
  • 패키지 다이어그램(Package Diagram)

클래스 다이어그램(Class Diagram)
: 클래스와 클래스가 가지는 속성, 사이의 관계를 표현
: 시스템의 구조 파악과 구조상의 문제점 도출 가능

객체 다이어그램(Object Diagram)
: 사물(객체)들, 즉 인스턴스(Instance)를 객체와 객체 사이의 관계로 표현
: 객체 모델링에 활용

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

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

복합체 구조 다이어그램(Composite Structure Diagram)
: 클래스나 컴포넌트가 복합 구조를 갖는 경우 내부 구조 표현

패키지 다이어그램(Package Diagram)
: 모델 요소들을 그룹화한 패키지들의 관계 표현


행위(Behavioral) 다이어그램

  • 유스케이스 다이어그램(Use Case Diagram)
  • 순차 다이어그램(Sequence Diagram)
  • 커뮤니케이션 다이어그램(Communication Diagram)
  • 상태 다이어그램(State Diagram)
  • 활동 다이어그램(Activity Diagram)
  • 상호작용 개요 다이어그램(Interaction Overview Diagram)
  • 타이밍 다이어그램(Timing Diagram)

유스케이스 다이어그램(Use Case Diagram)
: 사용자의 요구 분석
: 기능 모델링 작업에 사용
: 사용자(Actor)와 사용 사례(Use Case)로 구성

순차 다이어그램(Sequence Diagram)
: 상호 작용하는 시스템이나 객체들이 주고받는 메시지 표현

커뮤니케이션 다이어그램(Communication Diagram)
: 객체들이 주고받는 메시지 표현
: 객체들 간의 연관까지 표현

상태 다이어그램(State Diagram)
: 자신이 속한 클래스의 상태 변화 표현
: 이벤트(event)에 의한 상태 변화 표현
: 동적 모델링에 활용

활동 다이어그램(Activity Diagram)
: 객체의 처리 로직이나 조건에 따른 처리의 흐름 표현
: 오퍼레이션이나 처리 과정 동안 일어나는 일들을 단계적으로 표현

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

타이밍 다이어그램(Timing Diagram)
: 객체 상태 변화와 시간 제약을 명시적으로 표현


스테레오 타입

UML에서 기본 기능 외에 추가적인 기능 표현

겹화살괄호(<<>>) 사이에 표현할 형태 기술

<<include>> 	: 연결된 다른 UML 요소에 대해 포함 관계
<<extend>> 		: 연결된 다른 UML 요소에 대해 확장 관계
<<interface>>	: 인터페이스 정의
<<exception>>	: 예외 정의
<<constructor>>	: 생성자 역할 수행
profile
노력형 인간

0개의 댓글