UML 클래스 다이어그램에서 경계 클래스, 제어 클래스 및 엔티티 클래스는 무엇입니까?


85

저는 이제 NetBeans를 IDE-of-choice로 사용하고 있으며 UML 모델링을위한 플러그인이 있습니다. 클래스 다이어그램에서,도 알려진 모델 요소는 Boundary Class, Control Class, 및 Entity Class. 그러나 좋은 정의를 찾을 수는 없지만 UML 클래스 다이어그램 에서이 사이트 를 찾았습니다 .

답변:


202

견고성 다이어그램은 유스 케이스 이후와 클래스 다이어그램 이전에 작성됩니다. 사용 사례 단계의 역할을 식별하는 데 도움이됩니다. 이를 사용하여 구축중인 시스템에 대한 사용 요구 사항을 나타낼 수 있을만큼 사용 사례가 충분히 견고하다는 것을 확인할 수 있습니다.

여기에는 다음이 포함됩니다.

  1. 배우
  2. 사용 사례
  3. 엔티티
  4. 경계
  5. 통제 수단

모델-뷰-컨트롤러 패턴이 사용자 인터페이스에 사용되는 반면, ECB (Entity-Control-Boundary Pattern)는 시스템에 사용됩니다. 도움이되는 경우 ECB의 다음 측면을 MVC의 추상 버전에 비유 할 수 있습니다.

UML 표기법

엔터티 (모델)
종종 도메인 모델에서 시스템 데이터를 나타내는 개체입니다.

경계 (뷰 / 서비스 협력자)
시스템 행위자와 인터페이스하는 객체 (예 : 사용자 또는 외부 서비스 ). 창, 화면 및 메뉴는 사용자와 상호 작용하는 경계의 예입니다.

컨트롤 (컨트롤러)
경계와 엔티티 사이를 중재하는 개체입니다. 이러한 요소는 경계 요소와 엔티티 요소 사이의 접착제 역할을하여 다양한 요소와 해당 상호 작용을 관리하는 데 필요한 논리를 구현합니다. 설계 내에서 객체가 아닌 다른 것으로 컨트롤러를 구현하기로 결정할 수 있음을 이해하는 것이 중요합니다. 많은 컨트롤러는 예를 들어 엔티티 또는 경계 클래스의 메서드로 구현할 수있을만큼 간단합니다.

커뮤니케이션에는 네 가지 규칙이 적용됩니다.

  1. 액터는 경계 객체와 만 대화 할 수 있습니다.
  2. 경계 오브젝트는 컨트롤러 및 액터와 만 통신 할 수 있습니다.
  3. 엔티티 객체는 컨트롤러와 만 통신 할 수 있습니다.
  4. 컨트롤러는 경계 개체 및 개체 개체 및 다른 컨트롤러와 통신 할 수 있지만 액터와는 통신 할 수 없습니다.

통신 허용 :

         Entity    Boundary   Control
Entity     X                     X
Boundary                         X
Control    X          X          X

14
의견으로 판단 할 때이 답변은 사람들이 "엔티티 경계 제어"와 MVC의 차이점을 이해하는 데 도움이되지 않습니다. 그중 하나는 경계가 뷰가 아니라는 것입니다. 설계 영역 외부의 요소와의 통신을 관리하는 시스템의 요소입니다. 예를 들어 시스템 내부의 PayPal REST API 파사드가 경계 요소 일 수 있습니다. 또한 하위 시스템에는 자체 경계가있을 수 있습니다. 이를 항상 모든 관점에서보기이며 항상 사용자를 향하는보기와 비교하십시오.
DavidS 2015-06-26

2
이 대답에는 실제로 "경계 : 시스템 액터 (예 : 사용자 또는 외부 서비스 ) 와 인터페이스하는 객체"라는 동일한 내용이 포함됩니다 . 어쨌든 내 요점은 그것들이 다르다는 것입니다. ECB는 MVC의 "단순화"가 아닙니다.
다비즈

점은, 이러한 관념은 ... UML 사양에 정의 될 것 같지 않습니다
GRANIER

23

OOAD 및 비즈니스 모델링과 함께 /의 일부로 자주 사용됩니다. Neil의 정의는 정확하지만 기본적으로 MVC와 동일하지만 비즈니스를 위해 추상화되었습니다. "좋은 요약"은 잘 작성되었으므로 여기에 복사하지 않겠습니다. 이것은 제 작업이 아니기 때문에 더 자세하지만 Neil의 글 머리 기호와 일치합니다.

좋은 요약-Conceito : Entity-Control-Boundary Pattern

OOAD


3
그러나 MVC는 뷰 레이어 전용입니다.
Alex78191

2
답변은 정보를 포함해야하며 링크뿐만 아니라 정보를 포함해야합니다. 불행히도 링크는 죽었습니다.
Johan

2
@ ted-johnson 업데이트 된 링크에 대한 기회가 있습니까? 감사!
Narshe

콘텐츠가있는 유사한 사이트에 대한 링크를 업데이트했습니다.
Ted Johnson

16

이들은 분석에 사용되는 클래스 고정 관념입니다.

  • 경계 클래스는 사용자 또는 다른 시스템이 상호 작용하는 클래스 인 시스템의 경계에있는 클래스입니다.

  • 엔티티 클래스 클래스는 "사람"및 "은행 계좌"와 같은 일반적인 비즈니스 엔티티입니다.

  • 제어 클래스는 일부 비즈니스 로직 또는 기타를 구현합니다.


5

경계 제어 엔티티 패턴에는 두 가지 버전이 있습니다.
-127에 설명 된 이전 구조 (데이터 모델 요소로서의 엔티티, 기능으로서의 제어, 애플리케이션 인터페이스로서의 경계)
-새 오브젝트 패턴 오브젝트 패턴


으로서 :
-경계는 "에 대한 인터페이스입니다. other world "
-모든 내부 로직의 제어 (DDD 패턴의 서비스와 같은)
-엔티티는 객체 (DDD 패턴의 저장소와 같은)에 대한 지속성 서비스입니다.
모든 클래스에는 작업이 있습니다 (Fowler 빈혈 도메인 모델 안티 패턴 참조)
모두 MVC 패턴의 모델 구성 요소입니다. 규칙 :
-Boundary만이 "다른 세계"에 서비스를 제공합니다.
-Boundary는 Controll에게만
호출 할 수 있습니다.-Control은 누구에게나 호출 할 수 있습니다.
-엔티티는 누구도 호출 할 수 없으며 (!) 호출 만 가능합니다.

jz


4

실제로 견고성 다이어그램 (또는 분석 다이어그램이라고도 함)은 특수한 클래스 다이어그램 일뿐입니다. 이들은 UML의 일부이며 처음부터 사용되었습니다 ( "Three Amigos"시리즈의 일부인 Jacobson의 책 The Unified Software Development Process 참조). 앞서 언급 한 책은 pp 183-185에서이 세 가지 클래스에 대한 좋은 정의를 가지고 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.