비즈니스 엔티티는 비즈니스 작업자가 비즈니스 유스 케이스를 실행할 때 사용 또는 처리하는 "대상"을 나타냅니다. 비즈니스 엔티티는 일반적으로 여러 비즈니스 유스 케이스 또는 유스 케이스 인스턴스에 중요한 대상을
나타내므로 비즈니스 엔티티 오브젝트의 수명이 깁니다. 일반적으로 비즈니스 엔티티에는 사용 방법과 사용자에 대한 정보가 포함되지 않는 것이 바람직합니다.
일반적으로, 비즈니스 엔티티는 제품의 핵심 파트 또는 문서를 나타냅니다. 때때로 시장 또는 고객에 대한 중요한 지식과 같은 무형의 정보를 나타내기도 합니다. 음식점에서의 비즈니스 엔티티 예로는 메뉴와 음료가 있으며
공항의 경우 항공권과 탑승권이 중요한 비즈니스 엔티티입니다.
비즈니스 모델링에서는 일반적으로 비즈니스 엔티티를 중요하고 지속적인 정보로 간주하하며 아티팩트 설명에서도 똑같이 나타냅니다. 그러나 일반적으로 비즈니스 작업자가 사용 또는 처리하는
"대상"은 실제 오브젝트입니다. 즉, 원료 플로우가 해당 경계를 벗어나는 복잡한 실제 시스템에서 비즈니스 작업자를 인식하는 경우, 비즈니스 엔티티로 해당 오브젝트에 대한 정보 아날로그를 나타내는
것이 바람직합니다. 비즈니스 작업자는 이러한 방식으로 해당 조치를 나머지 비즈니스와 커뮤니케이션합니다. 그런 다음 비즈니스 모델링 컨텍스트와 별도로 비즈니스 작업자에 대한 실제 고려사항을 처리할 수
있습니다(비즈니스 작업자를 시스템으로 처리하는 경우).
비즈니스 도메인 모델의 다른 클래스가 참조해야 하는 현상만 비즈니스 엔티티로 모델링해야 합니다. 다른 "대상"은 관련 클래스의 속성으로 모델링하거나 이 클래스에서 텍스트로 설명할 수 있습니다.
클래스의 속성은 해당 클래스의 오브젝트에 대한 정보를 나타냅니다. 각 속성에는 속성 유형이 있습니다. 속성과 속성 유형에는 각각 이름이 있습니다.
오브젝트는 일반적으로 일부 해당 특성에 대해 설명하는 여러 정보를 포함합니다. 해당 정보는 오브젝트 클래스의 텍스트 설명을 통해 암묵적으로 설명하거나 클래스 속성으로서 명시적으로 모델링될 수 있습니다.
속성은 특정 유형을 갖습니다. 또한 속성에는 특정 이름이 있어 클래스와 관련된 속성의 역할에 대해 설명합니다. 이름은 명사를 사용하는 것이 좋습니다. 속성 유형은 더 기본적이거나 더 복잡할 수 있으며, 하나의
단순한 숫자 또는 문자열로 시작합니다. 클래스는 달라도 속성 구조는 같을 수 있습니다. 이러한 속성은 설명이 동일해야 하며, 즉 속성 유형이 동일해야 합니다.
참고: 속성은 클래스를 보다 쉽게 이해할 수 있도록 하기 위해서만 모델링해야 합니다.
때때로 개념을 클래스 속성 또는 개별 비즈니스 엔티티 클래스로 설명해야 하는지 여부를 알 수 없는 경우가 있습니다. 이 때 사용할 수 있는 일반 규칙은 단지 하나의 오브젝트만 직접 액세스해야 하거나 정상적인 액세스
방법이 오브젝트를 통하는 방법뿐인 경우 현상을 속성으로 모델링하는 것입니다. 다른 경우에는 개념을 자체 클래스에 별도로 모델링합니다.
공항 탑승 수속 유스 케이스에서는 항공권이 중요합니다. 각 항공권에는 승객 이름과 항공기 편명이 기재되어 있습니다. 여기서 Name 및 Flight 속성이 식별됩니다. Flight 속성은 항공사, 목적지, 출발
시간 및 도착 시간으로 구성되므로 더 복잡합니다.
같은 항공기를 타는 모든 승객은 해당 항공기를 공유하는 것입니다. 항공사는 여러 항공기에 동일합니다. 따라서 가장 효과적인 대안은 항공기와 항공사를 클래스로 모델링하는 것입니다.
특정 개념이 유스 케이스에 중요하여 모델링해야 하는지 여부를 결정한 후, 해당 개념을 별도 클래스 또는 단지 클래스 속성으로 모델링해야 하는지 여부를 결정하는 것은 실제로 중요하지 않습니다. 대신 모델링 방법을
결정하는 것은 해당 개념 액세스에 대한 비즈니스 요구입니다. 따라서 일부 개념은 비즈니스에 따라 다르게 모델링할 수 있습니다.
예제: 공항에서 항공기 운항 계획 유스 케이스 업무를 수행하는 직원에게는 항공기가 가장 중요한 개념입니다. 즉, 출발 시간, 항공사 및 목적지를 각 항공기에 따라 정의해야 합니다. 이러한 경우 Flight 클래스를
사용하고 출발 시간, 항공사 및 목적지 속성을 지정할 수 있습니다.
항공기는 공항에서 항공기 운항 계획 유스 케이스 업무를 수행하는 직원에게 중요한 개념입니다.
반면에 여행사에 근무하는 직원의 경우는 상황이 다릅니다. 이들 역시 출발 시간, 항공사 및 목적지가 필요하지만 이 밖에 추가 요구사항이 있습니다. 즉, 여행사에 있어 가장 중요한 업무는 특정 목적지로 운항하는
항공기를 찾는 것이므로 Destination을 별도 클래스로 작성해야 합니다. 물론 Flight 클래스와 Destination 클래스는 상대 클래스를 인식해야 하며 이는 양방향 연관으로 가능합니다.
여행사 유스 케이스에서 업무를 수행하는 직원에게는 항공기 출발지와 도착지가 모두 중요합니다.
이론적으로는 모든 개념을 클래스로 모델링할 수 있습니다. 그러나 적합한 경우 속성을 사용함으로써 유지보수해야 하는 클래스 수를 줄이고 오브젝트 모델을 쉽게 이해할 수 있습니다.
비즈니스 작업자의 책임을 수행하려면 비즈니스 작업자 역할을 수행하는 사용자가 하나 이상의 도구를 사용하여 비즈니스 엔티티를 처리해야 합니다. 이러한 도구는 사용되는 도구 또는 액세스 방법을 나타내는 메시지와
오퍼레이션을 통해 명시적으로 또는 일반적으로 정의할 수 있습니다. 오퍼레이션은 비즈니스 엔티티를 처리하는 도구를 정의합니다. 액세스는 메시지로 시작됩니다. 비즈니스 엔티티 오브젝트를 처리하기 위해 사용할 수 있는
도구는 비즈니스 엔티티 클래스의 오퍼레이션으로 표시되며, 이름 및 선택적으로 매개변수가 함께 표시됩니다. 비즈니스 엔티티 단위의 액세스는 비즈니스 엔티티 오브젝트로 보내는
메시지로서 표시됩니다.
예를 들어, "항공권" 비즈니스 엔티티에 대한 "수화물 연관" 오퍼레이션에는 항공권에 수화물표를 부착하는 작업이 포함됩니다. 이 때 매개변수에는 수화물표가 포함됩니다.
각 오퍼레이션은 해당 목적을 나타내는 이름과 선택적으로 여러 매개변수로 정의됩니다. 매개변수는 지원을 요청하거나 액세스하는 오브젝트로부터 클래스 오브젝트가 받아야 하는 내용과 오퍼레이션 수행 시 오브젝트가 제공할
내용을 지정합니다. 예를 들어, 비즈니스 작업자가 특정 오퍼레이션 단계를 수행해야 하는 시점, 또는 해당 비즈니스 작업자가 비즈니스 엔티티의 특정 오퍼레이션을 시작하여 특정 비즈니스 엔티티에 액세스해야 하는 시점을
반영하는 매개변수를 지정할 수 있습니다. 매개변수는 또한 전달할 무형 또는 유형의 대상을 나타낼 수 있습니다.
오퍼레이션은 유스 케이스의 세부사항에 대한 중요성 또는 필요 레벨에 따라 비공식적으로 또는 자세하게 정의할 수 있습니다. "자세한" 설명은 수행 중 처리되는 속성과 관계를 보여주는 동작 시퀀스, 다른 클래스
오브젝트의 접속 방식 및 종료 방식에 대해 설명합니다.
-
해당 이름과 설명이 명확하여 이해할 수 있습니다.
-
비즈니스 엔티티 관계가 서로 종속되지 않습니다.
-
각 관계를 하나 이상의 비즈니스 유스 케이스의 워크플로우에서 사용합니다.
-
비즈니스의 모든 "대상"(예: 제품, 문서, 계약 등)이 비즈니스 엔티티로서 모델링됩니다.
-
하나 이상의 비즈니스 유스 케이스에 참여합니다.
-
특정 소유자(예: 비즈니스 엔티티를 담당하는 비즈니스 작업자 또는 비즈니스 액터)가 있습니다.
비즈니스 이벤트는 이해 관계자(기타 비즈니스 엔티티 포함)에게 비즈니스 엔티티 상태의 변화를 알려주는 데 사용할 수 있습니다. 따라서 비즈니스 엔티티의 작성과 파기가 중요합니다. 상태 머신을 정의한 경우, 비즈니스
엔티티의 상태를 점검하십시오. 각 전이는 잠재적인 비즈니스 이벤트입니다. 또한 비즈니스 엔티티의 속성과 오퍼레이션을 검사하십시오. 자주 사용하지 않아도 중요한 오퍼레이션은 비즈니스 이벤트와 연관될 수 있습니다.
중요한 속성이 변경되면 이벤트가 트리거될 수 있습니다. 비즈니스 프로세스 패턴 및 비즈니스 엔티티 패턴을 통해서도 유용한 비즈니스 이벤트를 파악할 수 있습니다. 예를 들어, 비즈니스 엔티티를 승인한 후 사용해야
하는 경우, <대상> 승인 비즈니스 이벤트를 사용하여 해당 비즈니스 이벤트를 사용할 수 있는 다른 관계자에게 알릴 수 있습니다. 비즈니스 이벤트 찾기에 대한 자세한 정보는 가이드라인: 비즈니스 이벤트를 참조하십시오.
|