엔티티 제어 경계

Entity-control-boundary

ECB(Entity-control-boundary-control) 또는 EBC(Entity-boundary-control-control) 또는 BCE(Boundary-control-entity)는 사용 사례 기반 객체 지향 소프트웨어 설계에 사용되는 아키텍처 패턴으로, 사용 사례 실현에서의 책임에 따라 소프트웨어를 구성하는 클래스를 구조화한다.

기원과 진화

기업-지배-경계 접근법은 1992년에 [2]발표된[1], Ivar Jacobson의 활용사례 중심 OOE 방법에서 그 기원을 찾는다.원래는 엔티티 인터페이스 제어(EIC)라고 불렸지만 객체 지향 프로그래밍 언어 용어와의 혼동을 피하기 위해 "경계"라는 용어가 "인터페이스"를 대체했습니다.

UML 고정관념[3]지원하여 분석 및 설계 활동에서 ECB 사용을 촉진하는 통합 프로세스에서 더욱 개발된다.민첩한 모델링 [4][5]및 견고성 [7]다이어그램과 함께 ECB 아키텍처 패턴 위에 정교하게 기술된 ICONIX 프로세스[6].

원칙

ECB 패턴은 활용 사례 실현에서의 역할에 따라 클래스의 책임을 구성한다.

  • 기업은 이해관계자와 관련된 장기간의 정보를 나타낸다(즉, 주로 도메인 객체에서 파생되며, 일반적으로 지속적이다).
  • 경계는 외부 행위자(사용자 또는 외부 시스템)와의 상호작용을 캡슐화한다.
  • 제어는 사용 사례의 실행에 필요한 처리와 그 비즈니스 로직을 보장하며, 좌표, 시퀀스는 사용 사례와 관련된 다른 객체를 제어합니다.

대응하는 클래스는 서비스 패키지로 그룹화됩니다.서비스 패키지는 소프트웨어 전송 유닛으로 사용할 수 있는 분리할 수 없는 관련 클래스 세트입니다.

ECB 클래스는 사용 사례를 분석할 때 먼저 식별됩니다.

  • 모든 사용 사례는 제어 클래스로 표현된다.
  • 사용 사례와 행위자 사이의 모든 다른 관계는 경계 등급으로 표현된다.
  • 엔티티는 사용 사례 설명에서 파생됩니다.

그런 다음 설계에 필요한 경우 클래스를 세분화하고 재구성하거나 재구성합니다. 예를 들면 다음과 같습니다.

  • 다양한 사용 사례 제어에서 일반적인 동작 배제
  • 인간 행위자의 각 종류와 외부 세계에 일관된 인터페이스를 제공하는 각 외부 시스템에 대한 중앙 경계 클래스를 식별합니다.

ECB 패턴은 클래스의 [8][9]책임 또한 설계의 건전성을 보장하기 위해 클래스의 다른 범주 사이의 관계와 상호작용에 반영된다고 가정한다.

견고도

견고성 다이어그램은 실체, 통제 장치, 경계 및 [4]행위자 간의 관계를 시각적으로 나타낼 수 있도록 한다.Jacobson의 초기 작품에서 소개된 그래픽 고정관념을 사용합니다.

표현 와의 관계
역할. 기호. 배우. 경계 통제 독립체
배우. Robustness Diagram Actor.svg 네. 네. 아니요. 아니요.
경계 Robustness Diagram Boundary.svg 네. 부품/전체 네. 아니요.
통제 Robustness Diagram Control.svg 아니요. 네. 네. 네.
독립체 Robustness Diagram Entity.svg 아니요. 아니요. 네. 네.

다음과 같은 견고성 제약이 적용됩니다.

  • 배우들은 경계를 알고 소통할 수 있다.
  • 경계는 행위자 및 통제자와만 통신할 수 있습니다.
  • 통제는 경계와 실체를 알고 통신할 수 있으며, 다른 통제가 필요한 경우
  • 기업은 다른 실체에 대해서만 알 수 있을 뿐 아니라 지배력과도 소통할 수 있다.

원칙적으로 기업은 경계와 통제에 대해 알지 않아야 한다.그러나 실무적으로 일부 변형은 기업, 경계 및 지배력이 기업의 옵서버로 가입하는 것을 허용한다.

마찬가지로, 다른 경계 클래스에 대해 알지 못하는 경계 클래스의 제약은 가장 높은 수준에만 적용되며 동일한 경계를 구현하기 위해 협력하는 클래스 간에는 적용되지 않습니다.

다른 아키텍처 패턴과의 관계

ECB와 모델 뷰 컨트롤러(MVC) 사이에는 유사성이 있다. 즉, 엔티티는 모델에 속하고 뷰는 경계에 속한다.그러나 ECB-컨트롤러의 역할은 MVC-컨트롤러와는 매우 다르다.이는 MVC컨트롤러가 유스케이스 비즈니스 로직을 캡슐화하는 반면 MVC컨트롤러는 ECB 경계의 책임이 되는 사용자 입력을 처리하기 때문이다.ECB 통제는 [2]기업과 직접 관련이 없는 비즈니스 논리를 캡슐화함으로써 아키텍처에서 우려의 분리를 증가시킨다.

ECB는 경계가 외부 어댑터 [10]계층을 형성할 때마다 육각형 아키텍처와 함께 사용할 수 있습니다.

ECB는 ECB 원칙을 다른 아키텍처 설계 패러다임과 [11][12]병합하는 클린 아키텍처와 호환된다.클린 아키텍처는 엔티티를 핵심에 배치하고 사용 사례 링(ECB 제어)과 게이트웨이와 발표자가 있는 링(ECB 경계)으로 엔티티를 둘러싼다.그러나, 클린 아키텍처는 외부로부터 내부로의 단방향 의존성을 요구하며, 이는 ECB 제어를 사용 사례 로직과 객체 조정으로 분할해야 한다.

「 」를 참조해 주세요.

주 및 참고 자료

  1. ^ Jacobson, Ivar. (1992). Object-oriented software engineering: a use case driven approach. [New York]: ACM Press. pp. 130–133. ISBN 0201544350. OCLC 26132801.
  2. ^ a b "Reading notice on Object Oriented Software Engineering, Ivar Jacobson, et al. (1992)". tedfelix.com. Retrieved 2019-08-14.
  3. ^ The unified software development process. Jacobson, Ivar., Booch, Grady., Rumbaugh, Jim. Reading, Massachusetts: Addison-Wesley. 1999. pp. 44, 183–188, 202–205, 256–257, 439. ISBN 0201571692. OCLC 636807532.{{cite book}}: CS1 유지보수: 기타 (링크)
  4. ^ a b Scott Ambler. "Robustness Diagrams: An Agile Introduction". agilemodeling.com. Retrieved 2019-08-14.
  5. ^ Ambler, Scott W., 1966- (2004). The object primer : agile modeling-driven development with UML 2.0 (3rd ed.). Cambridge, UK: Cambridge University Press. ISBN 0521540186. OCLC 54081540.{{cite book}}: CS1 maint: 여러 이름: 작성자 목록(링크)
  6. ^ "Close the gap between analysis and design • The Register". www.theregister.co.uk. Retrieved 2019-08-14.
  7. ^ Dugerdil, Philippe (2013). "Architecting mobile enterprise app: a modeling approach to adapt enterprise applications to the mobile". Proceedings of the 2013 ACM Workshop on Mobile Development Lifecycle - MobileDeLi '13. Indianapolis, Indiana, USA: ACM Press: 9–14. doi:10.1145/2542128.2542131. ISBN 9781450326032.
  8. ^ "Guideline: Entity-Control-Boundary Pattern". posomas.isse.de. Retrieved 2019-08-14.
  9. ^ Daschner, Sebastian (2017). Architecting modern Java EE applications : designing lightweight, business-oriented enterprise applications in the age of cloud, containers, and Java EE 8. Packt Publishing. pp. section "Entity Control Boundary". ISBN 9781788397124. OCLC 1008993521.
  10. ^ "The Entity-Control-Boundary Pattern". www.cs.sjsu.edu. Retrieved 2019-08-14.
  11. ^ Martin, Robert, C. (2012-08-12). "The Clean architecture Clean Coder Blog". blog.cleancoder.com. Retrieved 2019-08-12.
  12. ^ Martin, Robert C. (2017). Clean architecture : a craftsman's guide to software structure and design. Prentice Hall. ISBN 978-0-13-449416-6. OCLC 1004983973.