UML 관계 유형: 연관, 종속성, 일반화

UML 관계란 무엇입니까?

UML의 관계 구조적, 행동적, 그룹화 사물 간의 연결을 나타내는 데 사용됩니다. 시스템 실행 중에 두 개 이상의 항목이 서로 어떻게 연관될 수 있는지 설명하는 링크라고도 합니다. UML 관계 유형은 연관(Association), 종속성(Dependency), 일반화(Generalization) 및 실현(Realization)입니다.

자세히 연구해보자

UML 클래스 다이어그램 관계 유형

UML 클래스 다이어그램 관계

협회

UML 모델의 요소를 연결하는 링크 집합입니다. 또한 해당 관계에 참여하는 개체 수를 정의합니다.

의존

종속 관계에서는 이름에서 알 수 있듯이 두 개 이상의 요소가 서로 종속됩니다. 이런 종류의 관계에서 특정 요소를 변경하면 다른 모든 요소도 변경의 영향을 받을 가능성이 높습니다.

일반화

부모자식관계라고도 합니다. 일반화에서 한 요소는 다른 일반 구성 요소의 특수화입니다. 이를 대체할 수도 있습니다. 주로 상속을 나타내는 데 사용됩니다.

실현

UML의 실현 관계에서 한 엔터티는 자체적으로 구현되지 않은 일부 책임을 나타내고 다른 엔터티는 이를 구현합니다. 이 관계는 주로 다음의 경우에서 발견됩니다. 인터페이스.

협회

객체가 시스템 내부의 다른 객체와 연결되거나 연관될 수 있음을 나타내는 구조적 관계입니다. 폴로wing 연관 관계에 제약 조건을 적용할 수 있습니다.

  • {절대적인} – 암시적 제약은 관계가 명백하지 않음을 지정합니다. 그것은 개념을 기반으로합니다.
  • {주문} – 순서화된 제약 조건은 연관의 한쪽 끝에 있는 개체 집합이 특정 방식으로 있음을 지정합니다.
  • {변하기 쉬운} – 변경 가능 제약 조건은 시스템의 다양한 개체 간의 연결을 요구 사항에 따라 추가, 제거 및 수정할 수 있음을 지정합니다.
  • {추가만} – 연결의 반대쪽 끝에 있는 개체에서 새 연결을 추가할 수 있음을 지정합니다.
  • {겨울 왕국} – 두 개체 사이에 링크가 추가되면 해당 링크나 연결에서 고정 제약 조건이 활성화되어 있는 동안에는 링크를 수정할 수 없음을 지정합니다.

연관 속성이 있는 클래스를 만들 수도 있습니다. 이를 연관 클래스라고 합니다.

반사적 연관

재귀 연관은 UML 연관 관계의 하위 유형입니다. 재귀적 연관에서는 동일한 클래스의 인스턴스가 서로 연관될 수 있습니다. 클래스의 인스턴스도 객체라고 합니다.

재귀적 연관은 동일한 클래스의 객체 내에 링크나 연결이 존재할 수 있음을 나타냅니다.

클래스 과일의 예를 생각해 보겠습니다. 과일 클래스에는 망고와 사과라는 두 가지 인스턴스가 있습니다. 재귀적 연관은 망고와 사과 사이의 링크가 과일과 같은 동일한 클래스의 인스턴스이므로 존재할 수 있음을 나타냅니다.

감독된 협회

이름에서 알 수 있듯이 방향성 연관은 연관 클래스 내의 흐름 방향과 관련됩니다.

방향성 연관에서는 흐름이 방향이 지정됩니다. 한 클래스에서 다른 클래스로의 연결은 한 방향으로만 흐릅니다.

화살촉이 있는 실선으로 표시됩니다.

예:

서버와 클라이언트 사이에는 방향성 연관 관계가 있다고 말할 수 있습니다. 서버는 클라이언트의 요청을 처리할 수 있습니다. 이 흐름은 서버에서 클라이언트로만 흐르는 단방향입니다. 따라서 방향성 연관 관계는 시스템의 서버와 클라이언트 내에 존재할 수 있습니다.

의존

UML에서 종속 관계를 사용하면 특정 시스템 내부의 다양한 항목이 서로 어떻게 종속되는지 연관시킬 수 있습니다. 종속성은 서로 종속된 UML의 다양한 요소 간의 관계를 설명하는 데 사용됩니다.

고정 관념

  • "묶다" – 바인딩은 소스가 제공된 매개변수 또는 값을 사용하여 대상 위치에서 템플릿을 초기화할 수 있음을 지정하는 제약 조건입니다.
  • «파생» – 대상 객체로부터 원본 객체의 위치를 ​​계산할 수 있음을 나타냅니다.
  • "친구" – 소스가 대상 개체에서 고유한 가시성을 갖도록 지정합니다.
  • "대신에" – 대상 분류자의 인스턴스가 소스 개체임을 지정합니다.
  • «인스턴스화하다» – 소스 객체가 대상 객체의 인스턴스를 생성할 수 있음을 지정합니다.
  • «정제» – 소스 객체가 대상 객체보다 예외적인 추상성을 갖고 있음을 지정합니다.
  • "사용" – UML로 패키지를 생성할 때 사용된다. 사용 스테레오타입은 소스 패키지의 요소가 대상 패키지 내부에도 존재할 수 있음을 설명합니다. 소스 패키지가 대상 패키지의 일부 요소를 사용한다고 설명합니다.
  • "대리자" – 클라이언트가 런타임에 공급자를 대체할 수 있음을 지정합니다.
  • "입장" – 소스 패키지가 대상 패키지의 요소에 액세스하도록 지정합니다. 이는 비공개 병합이라고도 합니다.
  • "수입" – 대상이 소스 패키지 내부에 정의된 것처럼 소스 패키지의 요소를 가져올 수 있음을 지정합니다. 공개 병합이라고도 하는 대상입니다.
  • "허용하다" – 공급자가 선언한 가시성이 무엇이든 소스 요소가 공급자 요소에 액세스할 수 있음을 지정합니다.
  • "연장하다" – 대상이 소스 요소의 동작을 확장할 수 있도록 지정하는 데 도움이 됩니다.
  • "포함하다" – 지정된 위치에서 다른 요소의 동작을 포함할 수 있는 소스 요소를 지정할 수 있습니다. (c/C++의 함수 호출과 동일)
  • "이 되다" – 대상이 다른 값과 역할을 가진 소스와 유사함을 지정합니다.
  • "부르다" – 소스가 대상 객체 메소드를 호출할 수 있음을 지정합니다.
  • "복사" – 대상 객체가 소스 객체의 복사본인 독립적임을 지정합니다.
  • «매개변수» – 공급자는 클라이언트 작업의 매개변수입니다..
  • "보내다" - 클라이언트는 공급자에게 불특정 대상을 보내는 작업입니다.

상태 머신 간의 고정관념

  • "보내다" – 소스 작업이 대상 이벤트를 보내도록 지정합니다.

일반화

일반 개체와 시스템 내부에 존재하는 고유 개체 간의 관계입니다.

일반화 관계에서 객체 지향 개념은 다음과 같습니다. 계승 구현될 수 있습니다. 엔터티 또는 사물이라고도 하는 두 객체 사이에는 일반화 관계가 존재합니다. 일반화 관계에서 한 엔터티는 부모이고 다른 엔터티는 자식이라고 합니다. 이러한 엔터티는 상속을 사용하여 나타낼 수 있습니다.

상속에서는 부모의 자식이 부모 개체 내부에 지정된 기능에 액세스하거나 업데이트하거나 상속할 수 있습니다. 하위 개체는 자신에게 기능을 추가할 수 있을 뿐만 아니라 상위 개체의 구조와 동작을 상속할 수도 있습니다.

이러한 유형의 관계를 집합적으로 일반화 관계라고 합니다.

고정관념과 그 제약

  • "구현" – 이 스테레오타입은 규칙을 위반하지 않고 상위 개체의 구조와 동작을 상속하여 하위 엔터티가 상위 엔터티에 의해 구현되고 있음을 나타내는 데 사용됩니다.주의 사항 이 고정관념은 단일 분야에서 널리 사용된다면 계승.

일반화 관계에는 모든 하위 엔터티가 관계에 포함되어 있는지 여부를 확인하기 위해 완료, 불완전 등의 제약 조건이 포함되어 있습니다.

실현

UML의 실현 관계에서 한 엔터티는 자체적으로 구현되지 않은 일부 책임을 나타내고 다른 엔터티는 이를 구현합니다. 이 관계는 주로 다음의 경우에서 발견됩니다. 인터페이스.

실현은 두 가지 방식으로 표현될 수 있습니다.

  • 를 사용하여 정식 형식
  • 사용 년 생략된 형태
UML로 구현
UML로 구현

위 다이어그램에서 계정 비즈니스 규칙은 IRuleAgent 인터페이스를 구현합니다.

실현 유형

  1. 정식 형식 UML의 실현 관계에서 정식 형식은 시스템 전반에 걸쳐 인터페이스를 실현하는 데 사용됩니다. 인터페이스 스테레오타입을 사용하여 인터페이스를 생성하고 실현 관계를 사용하여 특정 인터페이스를 구현합니다. 표준 형식에서 실현 관계는 크기가 큰 열린 화살촉이 있는 점선 방향 선을 사용하여 표시됩니다. 위 다이어그램에서 Iruleagent 인터페이스는 Account Business Rules라는 개체를 사용하여 구현됩니다.
  2. Elided form 실현 UML 클래스 다이어그램 생략된 형식을 사용하여 표시할 수도 있습니다. 생략된 형태에서 인터페이스는 막대사탕 표기법이라고도 불리는 원을 사용하여 표시됩니다. 이 인터페이스는 시스템 내부에 있는 모든 것을 사용하여 구현될 때 생략된 구조를 생성합니다. 위 다이어그램에서 Iruleagent 인터페이스는 acctrule.dll에 의해 구현되는 생략된 형식을 사용하여 표시됩니다.

조성

표준 UML 관계는 아니지만 여전히 다양한 애플리케이션에서 사용됩니다.

복합 집계는 다음과 같은 특성을 갖는 집계 관계의 하위 유형입니다.

  • 이는 객체 간의 양방향 연관입니다.
  • 전체/부분 관계입니다.
  • 복합이 삭제되면 이와 연관된 다른 모든 부품도 삭제됩니다.

복합 집계는 집계(전체) 끝 부분에 채워진 검은색 다이아몬드로 장식된 이진 연관으로 설명됩니다.

UML의 구성

UML의 구성

폴더는 n개의 파일을 보관하는 구조입니다. 폴더는 그 안에 파일을 저장하는 데 사용됩니다. 각 폴더는 원하는 수의 파일과 연결될 수 있습니다. 컴퓨터 시스템에서 모든 단일 파일은 파일 구성 시스템 내의 적어도 하나의 폴더의 일부입니다. 동일한 파일이 다른 폴더의 일부일 수도 있지만 필수는 아닙니다. 파일이 폴더에서 제거될 때마다 폴더는 영향을 받지 않고 유지되지만 해당 특정 파일과 관련된 데이터는 삭제됩니다. 폴더에서 삭제 작업이 실행되면 폴더 내부에 있는 모든 파일에도 영향을 미칩니다. 폴더가 시스템에서 제거되면 폴더와 관련된 모든 파일은 자동으로 삭제됩니다.

UML의 이러한 유형의 관계는 복합 집계 관계로 알려져 있습니다.

집합

An 집합 UML의 연관 관계의 하위 유형입니다. 집계와 구성은 모두 UML의 연관 관계 유형입니다. 집계 관계는 "한 클래스의 개체가 다른 클래스의 개체를 소유하거나 액세스할 수 있다"는 간단한 단어로 설명할 수 있습니다.

집계 관계에서 종속 개체는 원본 개체가 삭제되더라도 관계 범위에 남아 있습니다.

자동차와 바퀴의 예를 생각해 봅시다. 자동차가 올바르게 작동하려면 바퀴가 필요하지만 바퀴에 항상 자동차가 필요한 것은 아닙니다. 자전거, 자전거 또는 기타 차량에도 사용할 수 있지만 특정 자동차에는 사용할 수 없습니다. 여기서, 바퀴 객체는 자동차 객체가 없어도 의미가 있습니다. 이러한 유형의 관계를 집계 관계라고 합니다.

요약

  • UML의 관계를 통해 한 가지가 시스템 내부의 다른 것과 연관될 수 있습니다.
  • 연관, 종속성, 일반화 및 실현 관계는 UML에 의해 정의됩니다.
  • 컴포지션 관계는 개체가 한 번에 하나의 컴포지트에만 포함될 수 있음을 나타내는 데 사용될 수도 있습니다.
  • 연관은 한 객체가 다른 객체와 연관될 수 있음을 설명하는 데 사용됩니다.
  • 종속성은 개체가 서로 종속될 수 있음을 나타냅니다.
  • 실현은 분류자 간의 의미 있는 관계입니다.
  • 일반화를 부모-자식 관계라고도 합니다.