가이드라인: 비즈니스 분석 모델의 일반화
실생활에서 많은 부분이 공통 특성을 가지고 있습니다. 이 가이드라인은 일반화 관계를 통해 비즈니스 분석 모델에 공통성을 모델링하는 방법을 보여줍니다.
관계
기본 설명

설명

실생활에서 많은 부분이 공통 특성을 가지고 있습니다. 예를 들어, 개와 고양이는 모두 동물입니다. 클래스 역시 공통 특성을 가질 수 있습니다. 클래스 간 이러한 관계 유형은 일반화 방법으로 규정할 수 있습니다. 즉, 공통 특성을 해당 클래스에 추출함으로써 비즈니스 모델을 나중에 쉽게 변경할 수 있습니다.

다른 클래스로부터 일반 특성을 상속하는 클래스를 하위(descendant)이라고 하며 하위(descendant)가 상속한 원래 클래스를 상위(ancestor)라고 합니다. 일반화는 하나의 클래스가 다른 클래스에서 상속됨을 표시합니다. 즉, 속성 또는 오퍼레이션을 포함한 상위(ancestor)의 정의는 해당 하위(descendant)에도 유효하며 상위(ancestor)의 관계 또한 상속됩니다.

일반화는 여러 단계로 진행될 수 있으므로 복잡한 다중 레벨의 상속 계층 구조를 모델링할 수 있습니다. 그러나 쉽게 이해하려면 레벨 수를 제한해야 합니다. 일반 특성은 상속 계층 구조의 상부에 표시되며 특수 특성은 계층 구조의 하부에 표시됩니다. 즉, 일반화 관계를 사용하면 보다 일반적인 개념의 전문화를 모델링할 수 있습니다.

예제:

공항 탑승 수속에 도착한 승객은 일반 수화물, 기내 반입 수화물 및 특수 수화물 등 다양한 유형의 수화물을 소지하고 있습니다. 이러한 수화물은 항공사의 관점에서 볼 때 각각 소유자가 있고 특정 중량을 나타내는 등 몇 가지 공통 특성을 갖고 있습니다. 이러한 공통 특성은 수화물이라는 별도 클래스에 속성 및 오퍼레이션으로 모델링할 수 있습니다. 일반 수화물, 기내 반입 수화물 및 특수 수화물은 이 클래스에서 상속됩니다.

함께 표시된 텍스트에서 설명되는 다이어그램.

일반 수화물, 기내 반입 수화물 및 특수 수화물 클래스에는 공통 특성이 있습니다. 즉, 이들은 모두 수화물이라는 일반 개념을 갖고 있습니다.

클래스는 여러 가지 다른 클래스를 상속할 수 있으며 이를 "다중 상속"이라고 합니다. 그러나 일반적으로는 하나의 클래스만 상속합니다. 클래스가 여러 클래스를 상속하는 경우, 상위(ancestor) 클래스에서의 연관, 속성 및 오퍼레이션 이름을 확인해야 합니다. 여러 상위(ancestor)에서 동일한 이름을 사용하는 경우 특정 상속 클래스에 대한 의미를 설명해야 합니다.

구체적 및 추상 클래스

다른 클래스가 상속하기 위해서만 존재하는 클래스를 추상 클래스라고 합니다. 추상 클 래스는 인스턴스화되지 않습니다. 그러나 추상 클래스를 상속하는 클래스의 오브젝트는 해당 설명과 상속된 클래스에 대한 설명을 준수합니다. 비즈니스에서 인스턴스화되는 클래스는 구체적 클래스라고 합니다.

여기서 "추상"은 일반적인 의미와 완전히 다른 의미입니다. 특정 대상은 추상 클래스로 표시하지 않아도 일상적인 의미로 추상의 의미를 가질 수 있습니다. 학교에서 배우는 학과는 형태가 없으므로 추상 현상 또는 개념입니다. 그러나 학교 타스크를 모델링하는 경우 학과는 인스턴스화되는 구체적 클래스와 가장 유사합니다. 마찬가지로 제품 또는 사람과 같은 구체적 현상이 다른 클래스와 공통 특성을 갖게 되면 추상 클래스를 생성할 수 있습니다.

사용

상속을 사용하는 주된 목적은 변경을 수용하는 오브젝트 모델을 달성하기 위해서입니다. 그러나 상속은 다음과 같은 경우에만 유의하여 사용해야 합니다.

  • 상속이 설명을 구조화할 수 있는 "유일한" 방법입니다. 현상별로 공통 특성을 시각화합니다.

실현(realization)을 위해서는 하위(descendant) 클래스를 인스턴스화해야 할 때마다 하위(descendant)와 상위(ancestor)의 작업을 모두 수행할 수 있는 직원을 찾아야 합니다.

  • 일반화는 스테레오타입이 동일한 클래스 간에만 사용합니다.

클래스 스테레오타입마다 목적 또한 다르므로 특정 스트레오타입을 가진 클래스에서 다른 스테레오타입을 가진 클래스로의 일반화는 적합하지 않습니다. 예를 들어, 비즈니스 작업자 클래스가 비즈니스 엔티티를 상속할 수 있는 경우 비즈니스 작업자는 이종 작업자가 됩니다.