[정보처리기사][요구사항 확인] UML - Unified Modeling Language

컴퓨터/정보처리기사

728x90
반응형

UML - Unified Modeling Language

시스템을 개발하는 과정에는 많은 사람이 모여 개발이 진행되는 경우가 많습니다.

이런 많은 사람들이 협업을 필요로 하는 시스템 개발의 전반전인 과정에서 원활한 의사소통을 할 수 있도록 표준화된 대표적인 객체지향 모델링 언어입니다.

 

Rumbaugh(럼바우), Booch, Jacobson 등의 객체지향 방법론의 장점을 통합한 모델링 언어로  OMG(Object Management Group)에서 표준으로 지정하였습니다.

 

  • UML 언어의 구성요소
    • 사물 ( Things )
    • 관계 ( Relationships )
    • 다이어그램 ( Diagram )

UML 구성요소 1 - 사물 ( Things )

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

 

1. 사물의 종류

종류 설명
구조 사물
(Structural Things)

시스템의 개념,물리적 요소를 표현
ex ) 클래스(Class), 유즈케이스(Use Case), 컴포넌트(Component), 인터페이스(Interface), 노드(Node)등

행동 사물
(Behavioral Things)

시간과 공간에 따른 요소의 행위를 표현
ex ) 상호작용(Interaction), 상태머신(State Meachine)등

그룹 사물
(Grouping Things)

요소들을 묶어서 표현
ex ) 패키지(Package)

주해 사물
(Annotation Things)

부가적인 설명 또는 제약조건을 표현
ex ) 노트(Note)

 

2. 컴포넌트(Component)?

문서, 소스코드, 파일, 라이브러리 등 모듈화 된 자원을 의미함.

 

3. 인터페이스(Interface)

클래스 또는 컴포넌트의 전체 또는 일부의 동작(Operation)을 모아 놓은 것

 

UML 구성요소 2 - 관계 ( Relationship )

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

 

  • 관계의 종류와 표기 법 
종류  UML 표기 법
연관 관계 ( Association )
집합 관계 ( Aggreation )
포함 관계 ( Composition )
일반화 관계 ( Generaliztion )
의존 관계 ( Dependency )
실체화 관계 ( Realization )

1. 연관 관계 - Association

2개 이상의 사물이 서로 관련되어 있는 관계이다.

 

  • 사물 사이를 실선으로 연결하여 표현한다.
  • 방향성은 화살표로 표현한다.
  • 양방향 관계의 경우 화살표는 생략한다.
  • 다중도(Multiplicity)는 선 위에 표기한다.

1.1 다중도 - Multiplicity

연관관계에서 연관된 사물(객체)의 개수를 의미한다. 표기법과 의미는 아래의 표와 같다.

다중도 표기 의미
1 1개의 객체(사물)가 연관되어 있음
n n개의 객체(사물)가 연관되어 있음
0..1 연관된 객체(사물)가 없거나 1개만 있음
0..* ( * ) 연관된 객체(사물)가 없거나 다수일 수 있음
1..* 연관된 객체(사물)가 1개 이상임
n..* 연관된 객체(사물)가 n개 이상임
n..m 연관된 객체(사물)가 최소 n개 이며 최대 m개임

 

2. 집합 관계 - Aggregation

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

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

3. 포함 관계 - Composition

포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계

즉, 서로 독립적인 집합 관계와는 다르게 서로에게 영향을 미치는 관계

 

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

4. 일반화 관계 - Generalization

하나의 사물이 다른 사물에 비해 더 일반적이거나 구체적인 관계

 

  • 보다 일반적인 개념을 상위 개념 (부모)이라 한다.
  • 보다 구체적인 개념을 하위 개념 (자식)이라 한다.
  • 하위 개념에서 상위 개념으로 속이 빈 화살표로 표기한다.

5. 의존 관계 - Dependency

연관관계와 같이 서로 연관은 있으나, 필요에 의해 짧은 시간에만 연관을 유지하는 관계

 

  • 사물과 사물이 소유관계는 아니지만 사물의 변화가 다른 사물에 영향을 미치는 관계
  • 영향을 주는 사물이 영향을 받는 사물 쪽으로 점선 화살표를 연결하여 표기

6. 실체화 관계 - Realization

사물이 할 수 있거나 해야 하는 기능으로 서로를 묶어 그룹화할 수 있는 관계.

 

  • 상위 개념은 행위 또는 기능 등을 가진다.
  • 하위 개념은 구체적인 사물이다.
  • 사물에서 기능 쪽으로 속이 빈 점선 화살표를 연결하여 표기한다.

UML 구성요소 3 - 다이어그램 ( Diagram )

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

 

  • 여러 관점에서 시스템을 가시화한 뷰를 제공함으로써 의사소통에 도움을 준다.
  • 정적 모델링에는 주로 구조적 다이어그램을 사용한다.
  • 동적 모델링에서는 주로 행위 다이어그램을 사용한다.

1. 구조적 다이어그램의 종류 - Structural Diagram

정적 모델링에 사용하는 다이어그램

정적 모델링이란 사용자가 요구한 기능을 구현하는데 필요할 자료들의 논리적인 구조를 표현한 모델링이다.

종류 설명
클래스 다이어그램
( Class Diagram )
클래스와 클래스가 가지는 속성, 클래스 사이의 관계를 표현
객체 다이어그램
( Object Diagram )
클래스에 속한 객체(인스턴스)를 특성 시점의 객체와 객체 사이의 관계로 표현
럼바우(Rumbaugh)의 객체지향 분석 기법에서 정적 객체 모델링에 활용됨
컴포넌트 다이어그램
( Component Diagram )
구현단계에서 사용됨
컴포넌트, 인터페이스의 관계를 표현
배치 다이어그램
( Deployment Diagram )
구현단계에서 사용됨
결과물, 프로세스, 컴포넌트등 물리적 요소들의 위치를 표현
복합체 구조 다이어그램
( Composite Structure
Diagram )
클래스나 컴포넌트가 복잡한 구조일 경우 내부 구조를 표현
패키지 다이어그램
( Package Diagram )
다양한 모델 요소들을 그룹화한 패키지들의 관계를 표현

 

 

1.1 클래스 다이어그램

대표적인 정적 모델링으로 클래스와 클래스가 가지는 속성, 클래스 사이의 관계를 표현한 것

  • 시스템을 구성하는 요소에 대해 쉽게 이해할 수 있다.
  • 시스템의 구성 요소를 문서화하는데 이용된다.

1.1.1 클래스 다이어그램의 구성 요소

요소 표기 내용
클래스
 각각의 객체들이 가지는 속성과 동작(오퍼레이션)을 표현한 것

 일반적으로 3개의 구획으로 나눠 이름,속성,동작을 표기

 속성(Attribute) : 클래스의 상태나 정보를 표현
 동작(Operation) : 클래스가 수행할 수 있는 동작을 표현
                              함수 또는 메서드(Method)라고 함
제약 조건
 속성에 입력될 값에 대한 제약 조건을 작성

 또는 동작 수행 전후에 지정해야 할 조건 작성

 클래스 안에 제약조건을 기술할 때는 { } 를 이용함
관계
 UML 관계 표기법을 사용
     - 연관 관계
     - 집합 관계
     - 포함 관계
     - 일반화 관계
     - 의존 관계

 클래스와 클래스 사이의 연관성을 표현

 

1.2 패키지 다이어그램

유스케이스나 클래스 등의 요소들을 그룹화한 패키지간의 의존 관계를 표현한 것

 

1.2.1 패키지 다이어그램의 구성요소

요소 표기 내용
패키지
( Package )
객체들을 그룹화하여 표현

단순 표기법 : 패키지 안에 패키지의 이름만 표현
확장 표기법 : 패키지 안에 요소까지 표현
객체
( Object )
유스케이스, 클래스, 인터페이스, 테이블 등 패키지에 포함될 수 있는 다양한 요소들
의존 관계
( Dependency )
 패키지와 패키지 또는 패키지와 객체 간의 의존관계를 표현

스테레오 타입을 이용해 의존 관계를 구체적으로 표현할 수 있음

의존관계의 표현은 사용자가 임의로 정할 수 있음 

대표적으로 사용되는 의존관계 표현은 2가지가 있음

<<import>> : 패키지에 포함된 객체들을 직접 가져와서 이용
<<access>> : 인터페이스를 통해 패키지 내의 객체에 접근

 

2. 행위 다이어그램의 종류 - Behavioral Diagram

종류 설명
유스케이스 다이어그램
( Use Case Diagram )
사용자의 요구를 분석하는 것 (사용자 관점에서 표현)

기능모델링 작업에서 사용

사용자(Actor)와 사용 사례 (Use Case)로 구성

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

동적 모델링의 한 종류

커뮤니케이션 다이어그램
( Communication Diagram )
동작에 참여하는 객체들이 주고받는 메세지와 객체들 간의 연관 관계를 표현

동적 모델링의 한 종류
상태 다이어그램
( State Diagram )
하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는지를 표현

동적 모델링의 한 종류
럼바우(Rumbaugh)의 객체지향 분석 기법에서 동적객체 모델링에 활용됨

활동 다이어그램
( Activity Diagram )
시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현

기능모델링 작업에서 사용

상호작용 개요 다이어그램
( Interaction Overview
Diagram )
상호작용 다이어그램 간의 제어 흐름을 표현함
타이밍 다이어그램
( Timing Diagram )
객체 상태 변화와 시간 제약을 명시적으로 표현함

 

2.1 유스케이즈 다이어그램 - Use Case Diagram

개발될 시스템을 이용해 수행할 수 있는 기능을 사용자 관점에서 표현한 다이어그램

  • 외부 요소와 시스템 간의 상호 작용을 확인할 수 있다.
  • 사용자의 요구사항을 분석하는 도구로 사용된다.
  • 시스템의 범위를 파악할 수 있다.

2.1.1 유스케이스 다이어그램 구성 요소

요소 표기 내용
시스템 / 시스템 범위
( System /
System Scope )
시스템의 범위를 표현

사각형으로 유스케이스들을 묶음
액터
( Actor )
주액터


부액터
시스템과 상호장욕하는 모든 외부 요소

주로 사람이나 외부 시스템을 의미함

주액터 : 주로 사람으로 시스템을 사용함으로 이득을 얻는 대상

부액터 : 시스템에 서비스를 제공하는 외부 시스템 또는 조직,기관
유스 케이스
( Use Case )
 사용자 관점에서 액터에게 제공하는 서비스나 기능을 표현한 것
관계
( Relationship )
포함


확장


일반화
액터와 유스케이스 또는 유스케이스와 유스케이스 사이의 관계표현

포함관계
    특정기능을 포함할 수 있는 관계
    포함되는 쪽으로 화살표를 표시

확장관계
    특정기능을 확장할 수 있는 관계
    확장기능에서 원래 기능으로 화살표를 표시

일반화관계
    하위개념에서 상위개념으로 표시

 

2.2 순차 다이어그램 - Sequence Diagram

시스템이나 객체들이 메시지를 주고받으며 상호 작용하는 과정을 그림으로 표현한 것

  • 시스템이나 객체들의 상호 작용 과정에서 주고받는 메세지를 표현한다.
  • 각 동작에 참여하는 시스템이나 객체들의 수행 기간을 확인할 수 있다.
  • 클래스 내부에 있는 객체들을 기본 단위로 하여 그들의 상호 작용을 표현한다.

2.2.1 순차 다이어그램 구성 요소

요소 표기 내용
프레임
( Frame )
다이어 그램의 전체 또는 일부를 묶어 표현
액터
( Actor )

시스템으로부터 서비스를 요청하는 외부 요소
객체
( Object )
메세지를 주고 받는 객체
생명선
( Lifeline )
객체가 메모리에 존재하는 기간

객체 소멸이 표시된 기간까지 존재함
실행 상자 / 활성 상자
( Active Box )
객체가 메세지를 주고받아 구동되고 있음을 표현
메세지
( Message )
객체가 상호작용을 위해 주고받는 메세지
객체 소멸
해당 객체가 더 이상 메모리에 존재하지 않음을 표현

2.3 커뮤니케이션 다이어그램 - Communication Diagram

순차다이어그램과 같이 시스템이나 객체들이 메세지를 주고받으며 상호작용하는 과정을 그림으로 표현한 것 

단, 객체들 간의 연관관계가 포함되어 있다.

 

  • 동작에 참여하는 객체들 사이의 관계를 파악하는 데 사용된다.
  • 클래스 다이어그램에서 관계가 제대로 표현됐는지 점검하는 용도로 사용된다.
  • 초기에는 협업다이어그램이라고 불렸다.

2.3.1 커뮤니케이션 다이어그램의 구성 요소

 

요소 표기 내용
액터
( Actor )

시스템으로부터 서비스를 요청하는 외부 요소
객체
( Object )
메세지를 주고 받는 객체
생명선
( Lifeline )
객체간의 관계를 표현한 것

액터와 객체 또는 객체와 객체 간에 실선을 그어 표기
메세지
( Message )
객체가 상호작용을 위해 주고받는 메세지

일정한 순서에 의해 처리되는 메세지의 경우 숫자로 순서를 표시

2.4 상태 다이어그램 - Stats Diagrma

객체들 사이에 발생하는 이벤트에 의한 객체들의 상태 변화를 그림으로 표현한 것

  • 객체의 상태란 객체가 갖는 속성 값의 변화를 의미한다.
  • 특정 객체가 어떤 이벤트에 의해 상태 변환 과정이 진행되는지 확인하는 데 사용된다.
  • 시스템에서 상태 변환 이벤트를 확인할 필요가 있는 객체만을 표기한다.
요소 표기 내용
프레임
( Frame )
상태 다이어그램의 범위를 표현
이벤트
( Event )
 
상태에 변화를 주는 현상

조건 또는 외부 신호 또는 시간의 흐름등

상태 전환 화살표 위에 표기
상태
( State )
 

객체의 상태를 표현
시작 상태
상태 변화의 시작 점
종료 상태
상태 변화의 종료 점
상태 전환
상태 사이의 흐름, 변화를 표현

 

2.5 활동 다이어그램 - Activity Diagram

사용자의 관점에서 시스템이 수행하는 기능을 처리 흐름에 따라 순서대로 표현한 것

  • 자료흐름도와 유사하다.
  • 유스케이스 안에서 또는 유스케이스 사이에 발생하는 처리의 흐름을 명확하게 표현할 수 있다.

2.5.1 활동다이어그램의 구성요소

 

요소 표기 내용
액션 ( Action ) /
액티비티 (Activity )
액션 : 더이상 분해할 수 없는 단일 작업
액티비티 : 액션으로 쪼갤 수 있는 작업
시작 노드
 
액션 또는 액티비티의 시작 점 
종료 노드
액션 또는 액티비티의 종료 점 
조건(판단) 노드
 
INPUT은 한개
OUTPUT은 여러개

조건에 따라 제어의 흐름이 분리되는 것을 표현
병합 노드
INPUT은 여러개
OUTPUT은 한개

여러 경로의 흐름이 합쳐짐을 표현
포크 노드
액티비티가 분리되어 수행되는 것을 표현

즉, 하위단위의 액티비티(액션)으로 나눠지는 것을 표현

INPUT은 한개의 액티비티
OUTPUT은 여러개의 액티비티(액션)
조인 노드
 분리된 액티비티를 합치는 것을 표현

즉, 하위단위의 액티비티(액션이) 더 큰 액티비티로 합쳐짐

INPUT은 여러개의 하위단위 액티비티
OUTPUT은 한개의 상위 액티비티
728x90
반응형

Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :