개발자꿈나무

UML & 다이어그램 본문

CS/소프트웨어공학

UML & 다이어그램

망재이 2023. 12. 28. 15:36
  • UML (Unified Modeling Language)
    - 시스템 개발 과정에서 시스템 개발자와 고객 또는 개발자 상호간의 의사소통이 원활하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어
    - 구성요소 : 사물, 관계, 다이어그램

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

 

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

 

  • 집합 관계 (Aggregatoin)
    - 하나의 사물이 다른 사물에 포함되어 있는 관계
    - 포함하는 쪽과 포함되는 쪽은 서로 독립적
    - 포함하는 쪽으로 속이 빈 마름모를 연결하여 표현

프린터는 다른 컴퓨터에 연결해서 사용할 수 있다. 꼭 A컴퓨터에만 연결해야하는 것은 아님!(독립적)

 

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

하나의 키는 하나의 문만 열 수 있고, 다른 문은 열 수 없음!(독립적x)

 

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

 

  • 의존 관계 (Dependency)
    - 연관 관계와 같이 사물 사이에 서로 연관은 있으나 필요에 의해 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계
    - 서로 소유 관계는 아니지만 사물의 변화가 다른 사물에도 영향을 미치는 관계
    - 일반적으로 한 클래스가 다른 클래스를 오퍼레이션의 매개 변수로 사용하는 경우에 나타나는 관계
    - 영향을 받는 사물 쪽으로 점선 화살표를 연결하여 표현

등급을 이용해 할인율을 적용하는 경우!(할인율 적용을 위해 등급을 매개 변수로 사용하는 관계)

 

  • 실체화 관계 (Realization)
    - 사물이 할 수 있거나 해야 하는 기능(오퍼레이션, 인터페이스)로 서로를 그룹화할 수 있는 관계
    - 한 사물이 다른 사물에게 오퍼레이션을 수행하도록 지정하는 의미적 관계
    - 사물에서 기능 쪽으로 속이 빈 점선 화살표를 연결하여 표현

새와 비행기는 날 수 있다는 공통 행위를 가짐

 

  • 다이어그램 (Diagram)
    - 여러 관점에서 시스템을 가시화한 뷰를 제공함으로써 의사소통에 도움을 줌
    - 정적 모델링에서는 주로 구조적 다이어그램을, 동적 모델링에서는 주로 행위 다이어그램을 사용
  • 구조적 다이어그램 (Structural Diagram)
클래스 다이어그램 (Class Diagram) - 클래스와 클래스가 가지는 속성, 클래스 사이의 관계 표현
- 시스템의 구조를 파악하고 구조상의 문제점을 도출할 수 있음
객체 다이어그램 (Object Diagram) - 클래스에 속한 인스턴스를 객체와 객체 사이의 관계로 표현
컴포넌트 다이어그램 (Component Diagram) - 실제 구현 모듈인 컴포넌트 간의 관계나 인터페이스를 표현
- 구현 단계에서 사용
배치 다이어그램 (Deployment Diagram) - 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치 표현
- 구현 단계에서 사용
복합체 구조 다이어그램 (Composite Structure Diagram) - 클래스나 컴포넌트가 복합 구조를 가질 경우 내부 구조를 표현
패키지 다이어그램 (Package Diagram) - 모델 요소들을 그룹화한 패키지들의 관계를 표현

 

  • 행위 다이어그램 (Behavioral Diagram)
유스케이스 다이어그램 (Use Case Diagram) - 사용자의 요구를 분석하는 것으로 기능 모델링 작업에서 사용
순차 다이어그램 (Sequence Diagram) - 상호 작용하는 시스템이나 객체들이 주고받는 메시지 표현
커뮤니케이션 다이어그램 (Communication Diagram) - 순차 다이어그램처럼 메시지를 표현하는데, 메시지뿐만 아니라 객체들 간의 연관까지 표현
상태 다이어그램 (State Diagram) - 하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는지 표현
활동 다이어그램 (Activity Diagram) - 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현
상호작용 개요 다이어그램 (Interaction Overview Diagram) - 상호작용 다이어그램 간의 제어 흐름 표현
타이밍 다이어그램 (Timing Diagram) - 객체 상태 변화와 시간 제약을 명시적으로 표현
728x90

'CS > 소프트웨어공학' 카테고리의 다른 글

아키텍처 패턴  (1) 2023.12.29
소프트웨어 아키텍처 뷰, 품질 속성  (0) 2023.12.28
순차 다이어그램  (0) 2023.12.28
클래스 다이어그램  (0) 2023.12.28
유스케이스 다이어그램  (2) 2023.12.28