클래스 다이어그램

Class diagram
클래스 다이어그램으로 표시된 UML 2.5 다이어그램의 계층 구조.개별 클래스는 1개의 구획으로 표시되지만, 최대 3개의 구획을 포함하는 경우가 많습니다.

소프트웨어 엔지니어링에서 Unified Modeling Language(UML; 통합 모델링 언어)의 클래스 다이어그램은 시스템의 클래스, 속성, 조작(또는 메서드) 및 객체 간의 관계를 표시하여 시스템의 구조를 설명하는 정적 구조 다이어그램의 일종입니다.

클래스 다이어그램은 객체 지향 모델링의 주요 구성 요소입니다.응용 프로그램 구조의 일반적인 개념 모델링 및 모델을 프로그래밍 코드로 변환하는 상세 모델링에 사용됩니다.클래스 다이어그램을 데이터 [1]모델링에도 사용할 수 있습니다.클래스 다이어그램의 클래스는 주요 요소, 응용 프로그램의 상호작용 및 프로그래밍할 클래스를 모두 나타냅니다.

다이어그램에서 클래스는 3개의 구획을 포함하는 상자로 표시됩니다.

  • 맨 위 칸막이에는 클래스 이름이 포함됩니다.굵은 글씨로 가운데로 인쇄되어 있으며, 첫 글자는 대문자로 되어 있습니다.
  • 가운데 칸막이에는 클래스의 속성이 포함되어 있습니다.왼쪽 정렬로 되어 있으며 첫 글자는 소문자입니다.
  • 맨 아래 컴파트먼트에는 클래스가 실행할 수 있는 작업이 포함되어 있습니다.또한 왼쪽 정렬이며 첫 글자는 소문자입니다.
3개의 칸이 있는 클래스.

시스템 설계에서는 클래스 다이어그램에서 여러 개의 클래스가 식별되고 그룹화되어 이들 간의 정적 관계를 결정하는 데 도움이 됩니다.상세 모델링에서는 개념 설계의 클래스가 하위 클래스로 분할되는 경우가 많습니다.

시스템의 동작을 상세하게 기술하기 위해 이러한 클래스 다이어그램은 상태 다이어그램 또는 UML 상태 기계[2]의해 보완될 수 있습니다.

회원들

UML은 속성 및 메서드와 같은 클래스 멤버를 나타내는 메커니즘과 생성자처럼 클래스 멤버에 대한 추가 정보를 제공합니다.

가시성

클래스 멤버(즉, 속성 또는 메서드)의 가시성을 지정하려면 다음 표기를 멤버 [3]이름 앞에 배치해야 합니다.

+ 일반의
- 사적인
# 보호되고 있다
~ 패키지

파생 속성은 예를 들어 다른 속성의 값을 사용하여 다른 정보로부터 값이 생성되거나 계산되는 속성입니다.

파생 속성은 이름 앞에 슬래시 '/'가 붙은 상태로 표시됩니다.[4]

범위

UML은 멤버의 두 가지 유형의 범위(인스턴스와 클래스)를 지정합니다.인스턴스는 밑줄[5]이름으로 표시됩니다.

  • 인스턴스 멤버는 특정 인스턴스로 범위가 지정됩니다.
    • 속성 값은 인스턴스마다 다를 수 있습니다.
    • 메서드 호출이 인스턴스 상태에 영향을 미칠 수 있습니다(즉, 인스턴스 속성 변경).
  • 클래스 멤버는 많은 프로그래밍 언어에서 일반적으로 "static"으로 인식됩니다.범위는 클래스 자체입니다.
    • 속성 값은 모든 인스턴스에서 동일합니다.
    • 메서드 호출은 분류자의 상태에 영향을 주지 않습니다.

멤버의 분류자 범위를 나타내려면 멤버 이름에 밑줄을 그어야 합니다.그렇지 않으면 인스턴스 범위가 기본적으로 사용됩니다.

관계들

UML 관계 표기법

관계란 클래스 및 객체 다이어그램에 있는 특정 유형의 논리 연결을 포괄하는 일반적인 용어입니다.UML은 다음 관계를 정의합니다.

인스턴스 수준의 관계

의존

종속성은 종속 모델 요소와 독립 모델 [6]요소 간에 의미적 연결이 있는 연관성의 한 유형입니다.한 요소(서버 또는 타깃)의 정의를 변경하면 다른 요소(클라이언트 또는 소스)가 변경될 수 있는 경우 두 요소 사이에 존재합니다.이 어소시에이션은 단방향입니다.종속성은 클라이언트에서 공급업체를 가리키는 열린 화살표가 있는 점선으로 표시됩니다.

협회.

두 클래스 간의 연관성에 대한 클래스 다이어그램 예제

어소시에이션은 링크 패밀리를 나타냅니다.(두 개의 끝을 가진) 이진 어소시에이션은 보통 선으로 표시됩니다.어소시에이션은 임의의 수의 클래스를 링크할 수 있습니다.3개의 링크가 있는 어소시에이션은 3진 어소시에이션이라고 불립니다.연결 이름을 지정할 수 있으며 연결의 끝을 역할 이름, 소유권 표시기, 다중성, 가시성 및 기타 속성으로 장식할 수 있습니다.
어소시에이션에는, 쌍방향, 단방향, 어소시에이션(컴포지션 어그리게이션 포함)과 재귀의 4 종류가 있습니다.가장 일반적인 어소시에이션은 쌍방향 및 단방향 어소시에이션입니다.
예를 들어 비행 클래스는 평면 클래스와 양방향으로 관련지어집니다.연관성은 두 클래스의 개체 간에 공유되는 정적 관계를 나타냅니다.

집약

두 클래스 간의 집약을 나타내는 클래스 다이어그램.여기, 교수님이 가르쳐야 할 수업이 있습니다.

집약은 "have a" 관련 관계의 변형입니다.집약은 연관성보다 더 구체적입니다.이것은 부분-전체 또는 일부 관계를 나타내는 연관성입니다.그림과 같이 교수는 'a' 수업을 들어야 합니다.어소시에이션의 종류로서, 어소시에이션의 이름을 붙이고, 어소시에이션과 같은 장식을 가질 수 있습니다.그러나 집약은 2개 이상의 클래스를 포함할 수 없습니다.이것은 바이너리 어소시에이션이어야 합니다.또한 구현 중에 집계와 연관성의 차이는 거의 없으며, 다이어그램은 집계 관계를 완전히 [7]건너뛸 수 있습니다.

클래스가 다른 클래스의 컬렉션 또는 컨테이너인 경우 집약이 발생할 수 있지만 포함된 클래스는 컨테이너에 대한 라이프사이클 종속성이 높지 않습니다.컨테이너가 파괴되어도 컨테이너의 내용물은 계속 존재합니다.

UML에서는 이를 포함하는 클래스에 연결하는 단일 라인이 포함된 클래스의 중공 다이아몬드 모양으로 그래픽으로 표현됩니다.애그리게이트는 많은 작업에서 하나의 단위로 취급되는 의미상 확장 객체이지만 물리적으로는 몇 개의 작은 개체로 구성됩니다.

구성.

두 개의 클래스 다이어그램.위의 다이어그램은 두 등급 사이의 구성을 보여줍니다. 자동차에는 정확히 하나의 카뷰레터가 있고 카뷰레터는 하나의 카뷰레터에 속합니다.카뷰레터는 특정 차량에서 분리된 별도의 부품으로 존재할 수 없습니다.아래 그림은 두 클래스 간의 Aggregation을 보여 줍니다.연못에는 0마리 이상의 오리가 있고, 오리에는 한 번에 최대 1마리 이상의 연못이 있다.오리는 연못과 별도로 존재할 수 있으며, 예를 들어 호수 근처에 살 수 있습니다.우리가 연못을 파괴할 때 보통 모든 오리들을 죽이지는 않는다.

합성 관계의 UML 표현은 포함된 클래스와 포함된 클래스를 연결하는 선의 포함된 클래스 끝에 채워진 다이아몬드 모양으로 구성을 표시합니다.

구성과 집약의 차이점

구성 관계
1. 실제 세계 전체의 관계를 나타내려고 할 때, 예를 들어 엔진은 자동차의 일부입니다.
(2) 컨테이너가 파괴되면 내용물도 파괴된다(예를 들어 대학이나 학과).
집약 관계
1. 소프트웨어 또는 데이터베이스 관계를 나타낼 때, 예를 들어 자동차 모델 엔진 ENG01은 자동차 모델 CM01의 일부이며, 엔진 ENG01은 다른 자동차 [8]모델의 일부일 수 있습니다.
2. 용기가 파괴되었을 때 내용물은 파괴되지 않는 것이 보통이다(예를 들어 교수가 제자를 데리고 있다). 교수가 사망했을 때 제자와 함께 죽는 것은 아니다.

따라서 집계 관계는 구성의 "물리적" 격납과 구별하기 위해 종종 "카탈로그" 격납입니다.


클래스 레벨의 관계

일반화/상속

슈퍼클래스 사람과 두 서브클래스 학생과 교수 사이의 일반화를 나타내는 클래스 다이어그램

두 개의 관련 클래스(하위 클래스) 중 하나가 다른 클래스(슈퍼 유형)의 전문화된 형식으로 간주되고 슈퍼 클래스가 하위 클래스의 일반화로 간주됨을 나타냅니다.실제로는 서브타입의 인스턴스도 슈퍼클래스의 인스턴스임을 의미합니다.이러한 형태의 일반화의 예시적인 나무는 생물학적 분류에서 발견됩니다: 인간은 포유류의 하위 분류인 simian의 하위 분류 등입니다.그 관계는 'A는 B'라는 문구로 가장 쉽게 이해된다.

일반화의 UML 그래픽 표현은 선(또는 선 트리)의 슈퍼 클래스 끝에 있는 속이 빈 삼각형 모양이며, 이를 하나 이상의 하위 유형에 연결합니다.

실현의 상징(서브클래스)______________(슈퍼클래스)

일반화 관계는 상속 또는 "is" 관계라고도 합니다.

일반화 관계에서 슈퍼 클래스(기본 클래스)는 "부모", 슈퍼 클래스, 기본 클래스 또는 기본 유형이라고도 합니다.

전문화 관계의 하위 유형은 "자", 하위 클래스, 파생 클래스, 파생 유형, 상속 클래스 또는 상속 유형이라고도 합니다.

이 관계는 생물학적 부모-자녀 관계와 유사하지 않다. 이러한 용어의 사용은 매우 일반적이지만 오해를 일으킬 수 있다.

A는 B의 일종이다.
예를 들어, "참나무는 나무의 한 종류", "자동차는 차량의 한 종류입니다."

일반화는 클래스 다이어그램과 사용 사례 다이어그램에서만 표시할 수 있습니다.

실현/실장

UML 모델링에서 실현 관계는 두 모델 요소 사이의 관계이며, 여기서 한 모델 요소(클라이언트)는 다른 모델 요소(공급자)가 지정하는 동작을 실현(실행 또는 실행)한다.

실현의 UML 그래픽 표현은 파선(또는 선 트리)의 인터페이스 끝에 있는 속이 빈 삼각형 모양이며, 이를 1개 이상의 구현자에 연결합니다.일반 화살표 헤드는 사용자에게 연결하는 점선의 인터페이스 끝에 사용됩니다.컴포넌트 다이어그램에서는 볼과 소켓의 그래픽 규칙을 사용합니다(실장자는 볼 또는 롤리팝을 노출시키는 반면 사용자는 소켓을 보여줍니다).실현은 클래스 또는 컴포넌트 다이어그램에만 표시할 수 있습니다.실현이란 클라이언트 요소와 공급업체 요소를 연결하는 클래스, 인터페이스, 구성 요소 및 패키지 간의 관계입니다.클래스/컴포넌트와 인터페이스 간의 실현 관계는 클래스/컴포넌트가 인터페이스에 의해 제공되는 동작을 실현하고 있음을 나타냅니다.

symbolic of realization(실현) -------interface(인터페이스)

일반적인 관계

"Car" 클래스와 "Wheel" 클래스 간의 종속성을 보여주는 클래스 다이어그램(더 명확한 예는 "Car depends on Wheel"이 될 수 있음)은 자동차가 이미 집계(사용만 하는 것이 아님)되어 있기 때문입니다.휠)

의존

의존성은 어떤 시점에서 어떤 클래스가 그것을 사용하기 때문에 어떤 클래스가 다른 클래스에 의존한다는 것을 나타내는 약한 형태의 결합일 수 있습니다.독립 클래스가 종속 클래스의 메서드의 매개 변수 또는 로컬 변수인 경우 한 클래스가 다른 클래스에 종속됩니다.때때로 두 계급의 관계는 매우 약하다.멤버 변수에는 전혀 실장되어 있지 않습니다.오히려 멤버 함수 인수로 구현될 수 있습니다.

다중성

이 연관 관계는 (적어도) 관련된 두 클래스 중 하나가 다른 클래스를 참조하고 있음을 나타냅니다.이 관계는 보통 "A has a b"로 묘사됩니다.

어소시에이션의 UML 표현은 어소시에이트된2개의 클래스를 접속하는 회선입니다.행의 양 끝에는 옵션 표기가 있습니다.예를 들어 화살촉을 사용하여 뾰족한 끝이 화살표 꼬리에서 보이는 것을 나타낼 수 있습니다.우리는 공의 배치, 역할의 이름을 제공함으로써 그 엔드의 요소가 수행하는 역할 및 그 엔티티의 인스턴스(다른 엔드의 관점에서 어소시에이션에 참여하는 객체의 수 범위)를 통해 소유권을 나타낼 수 있습니다.

0 인스턴스 없음(희귀)
0..1 인스턴스 없음 또는 인스턴스 1개
1 정확히 1개의 인스턴스
1..1 정확히 1개의 인스턴스
0..* 0개 이상의 인스턴스
* 0개 이상의 인스턴스
1..* 하나 이상의 인스턴스

분석 고정관념

EntityControlBoundary Pattern.jpg

엔티티

엔티티 클래스는 시스템에서 처리되는 장기간의 정보 및 경우에 따라서는 정보와 관련된 동작을 모델링합니다.데이터베이스 테이블 또는 기타 데이터 저장소로 식별해서는 안 됩니다.

그것들은 원의 맨 아래에 짧은 선이 붙어 있는 원으로 그려집니다.또는 클래스 이름 위에 "엔티티" 고정관념 표기를 사용하여 일반 클래스로 그릴 수도 있습니다.

「 」를 참조해 주세요.

관련도

레퍼런스

  1. ^ Sparks, Geoffrey. "Database Modeling in UML". Retrieved 8 September 2011.
  2. ^ Scott W. Ambler (2009) UML 2 클래스 다이어그램.Webdoc 2003-2009.2009년 12월 2일 액세스
  3. ^ UML Reference Card, Version 2.1.2, Holub Associates, August 2007, retrieved 12 March 2011
  4. ^ "UML derived property is property which value is produced or computed from other information, for example, by using other properties". www.uml-diagrams.org. Retrieved 2019-01-24.
  5. ^ OMG Unified Modeling Language(OMG UML) 상부 구조, 버전 2.3: 2010년 5월2010년 9월 23일 취득.
  6. ^ Fowler (2003) UML 증류: 표준 객체 모델링 언어 개요 가이드
  7. ^ "UML Tutorial part 1: class diagrams" (PDF). Archived from the original (PDF) on 2007-01-03. Retrieved 2015-07-18.
  8. ^ Goodwin, David. "Modelling and Simulation, p. 26" (PDF). The University of Warwick. Retrieved 28 November 2015.

외부 링크