UML (Unified Modeling Language) 의 개요

bi_sz·2022년 4월 4일
0

요구사항 확인 

목록 보기
9/22
post-custom-banner

1. UML ( Unified Modeling Language )

  • 시스템 분석, 설계, 구현 등 시스템 개발 과정에서 시스템 개발자와 고객 또는 개발자 상호 간의 의사소통이 원활하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어
  • Rumbaugh(OMT), Booch, Jacobson 등의 객체지향 방법론의 장점을 통합
  • OMG(Object Management Group)에서 표준으로 지정
  • UML의 구성 요소
    -사물 (Things)
    -관계 (Relationships)
    -다이어그램 (Diagram)

2. 사물 ( Things )

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

구조 사물 (Structual Things)

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

행동 사물 (Behavioral Things)

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

그룹 사물 ( Grouping Things)

-요소들을 그룹으로 묶어서 표현
-패키지(Package)

주해 사물 ( Annotation Things)

-부가적인 설명이나 제약조건 등을 표현
-노트(Note)

컴포넌트 ( Component )

문서, 소스코드, 파일, 라이브러리 등과 같은 모듈화된 자원으로, 재사용 가능


3. 관계 ( Relationships )

  • 사물과 사물 사이의 연관성을 표현
  • 관계의 종류
    -연관 관계 ( Association Relationships )
    -집합 관계 ( Aggregatuon Relationships )
    -포함 관계 ( Composition Relationships )
    -일반화 관계 ( Generalization Relationships )
    -의존 관계 ( Dependency Relationships )
    -실체화 관계 ( Realization Relationships )

연관(Association)관계

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

    다중도

    연관에 참여하는 객체의 개수를 의미

집합(Aggregation)관계

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

포함(Composition)관계

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

일반화(Generalization)관계

  • 하나의 사물이 다른 사물에 비해 더 일반적이거나 구체적인 관계
  • 보다 일반적인 개념을 상위(부모), 보다 구체적인 개념을 하위(자식)
  • 구체적(하위)인 사물에서 일반적(상위)인 사물 쪽으로 속이 빈 화살표를 연결하여 표현

의존(Dependency)관계

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

실체화(Realization)관계

  • 사물이 할 수 있거나 해야 하는 기능으로, 서로를 그룹화 할 수 있는 관계
  • 사물에서 기능 쪽으로 속이 빈 점선 화살표를 연결하여 표현

4. 다이어그램 ( Diagram )

  • 사물과 관계를 도형으로 표현한 것
  • 여러 관점에서 시스템을 가시화한 뷰(View)를 제공함으로써 의사소통에 도움
  • 정적 모델링에서는 주로 구조적 다이어그램 사용
  • 동적 모델링에서는 주로 행위 다이어그램 사용

구조적(Structural) 다이어그램의 종류

  • 클래스 다이어그램 ( Class Diagram )
    -클래스와 클래스가 가지는 속성, 클래스 사이의 관계를 표현

  • 객체 다이어그램 ( Object Diagram )
    -클래스에 속한 사물(객체)들, 즉 인스턴스(Instance)를 특정 시점의 객체와 객체 사이의 관계로 표현
    -럼바우(Rumbaugh) 객체지향 분석 기법에서 객체 모델링에 활용

  • 컴포넌트 다이어그램 ( Component Diagram )
    -실제 구현 모듈인 컴포넌트 간의 관계나 컴포넌트 간의 인터페이스를 표현
    -구현 단계에서 사용

  • 배치 다이어그램 ( Deployment Diagram )
    -결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현

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

  • 패키지 다이어그램 ( Package Diagram )
    -유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현

행위(Behavioral)다이어그램의 종류

  • 유스케이스 다이어그램 ( Use Case Diagram )
    -사용자의 요구를 분석하는 것으로, 기능 모델링 작업에 사용
    -사용자(Actor)와 사용 사례(Use Case)로 구성

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

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

  • 상태 다이어그램 ( State Diagram )
    -하나의 객체가 상호 작용에 따라 상태가 어떻게 변화하는지를 표현
    -럼바우(Rumbaugh) 객체지향 분석 기법에서 동적 모델링에 활용

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

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

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


5. 스테레오 타입 ( Stereotype )

  • UML에서 표현하는 기본 기능 외에 추가적인 기능을 표현 하는 것
  • 길러멧(Guilement)이라고 부르는 겹화살괄호<< >> 사이에 표현할 형태를 기술

주로 표현되는 형태

<<include>> 연결된 다른 UML 요소에 대해 포함 관계에 있는 경우
<<extends>> 연결된 다른 UML 요소에 대해 확장 관계에 있는 경우
<<interface>> 인터페이스를 정의하는 경우
<<exception>> 예외를 정의하는 경우
<<constructor>> 생성자 역할을 수행하는 경우

profile
https://li-yo.tistory.com/ 티스토리 블로그 이전 하였습니다.
post-custom-banner

0개의 댓글