fbpx
Wikipedia

Entity-control-boundary

The entity-control-boundary (ECB), or entity-boundary-control (EBC), or boundary-control-entity (BCE) is an architectural pattern used in use-case driven object-oriented programming that structures the classes composing high-level object-oriented source code according to their responsibilities in the use-case realization.

Origin and evolution edit

The entity-control-boundary approach finds its origin in Ivar Jacobson's use-case driven object-oriented software engineering (OOSE) method published in 1992.[1][2] It was originally called Entity-Interface-Control (EIC) but very quickly the term "boundary" replaced "interface" in order to avoid the potential confusion with object-oriented programming language terminology.

It is further developed in the Unified Process, which promotes the use of ECB in the analysis and design activities with the support of UML stereotypes.[3] Agile modelling,[4][5] and the ICONIX process[6] elaborated on top of ECB architecture pattern with robustness diagrams.[7]      

Principle edit

The ECB pattern organises the responsibilities of classes according to their role in the use-case realization:

  • an entity represents long-lived information relevant for the stakeholders (i.e. mostly derived from domain objects, usually persistent);   
  • a boundary encapsulates interaction with external actors (users or external systems);
  • a control ensures the processing required for the execution of a use-case and its business logic, and coordinates, sequences controls other objects involved in the use-case.

The corresponding classes are then grouped into service packages, which are an indivisible set of related classes that can be used as software delivery units.

ECB classes are first identified when use-cases are analyzed:  

  • every use case is represented as a control class;
  • every different relation between a use-case and an actor is represented as a boundary class;
  • entities are derived from the use-case narrative.

The classes are then refined and re-structured or reorganized as needed for the design, for example:  

  • Factoring out common behaviors in different use-case controls
  • Identifying a central boundary class for each kind of human actor and for each external system that would provide a consistent interface to the outside world.   

The ECB pattern assumes that the responsibilities of the classes is also reflected in the relations and interactions between the different categories of classes in order to ensure the robustness of the design.[8][9]

Robustness diagram edit

Robustness diagrams allow to visually represent the relation between entities, controls, boundaries and actors.[4] It uses graphical stereotypes introduced in Jacobson's early work:  

Representation Relation with
Role Symbol Actor Boundary Control Entity
Actor   Yes Yes No No
Boundary   Yes Part/whole Yes No
Control   No Yes Yes Yes
Entity   No No Yes Yes

The following robustness constraints apply: 

  • Actors may only know and communicate with boundaries
  • Boundaries may communicate with actors and controls only.
  • Controls may know and communicate with boundaries and entities, and if needed other controls
  • Entities may only know about other entities but could communicate also with controls;

In principle entities should not know about boundaries and controls. In practice however, some variants allow entities, boundaries and controls to subscribe as observer to an entity.

Similarly, the constraint of a boundary class not knowing about other boundary classes only applies at the highest level, and not between classes that cooperate to implement the same boundary.

Relation to other architectural patterns edit

There is some similarity between ECB and model–view–controller (MVC): entities belong to the model, and views belongs to boundaries.  However the role of the ECB-control is very different from MVC-controller, since it encapsulates also use-case business logic whereas the MVC controller processes user input which would be of the responsibility of the boundary in ECB.  The ECB control increases separation of concerns in the architecture by encapsulating business logic that is not directly related to an entity.[2]

The ECB can be used in conjunction with the hexagonal architecture, whenever the boundaries form the outer adapter layer.[10]  

ECB is compatible with the clean architecture which merges ECB principles with other architectural design paradigms.[11][12] Clean architecture places entities at the core, and surround them with a use-case ring (i.e. ECB control) and a ring with gateways and presenters (i.e. ECB boundaries).  However, clean architecture requires a one-way dependency from outside to inside, which requires to split ECB controls into use-case logic and object coordination.

See also edit

Notes and references edit

  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 maint: others (link)
  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: multiple names: authors list (link) CS1 maint: numeric names: authors list (link)
  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". Proceedings of the 2013 ACM workshop on Mobile development lifecycle. Indianapolis, Indiana, USA: ACM Press. pp. 9–14. doi:10.1145/2542128.2542131. ISBN 9781450326032. S2CID 14408662.
  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.{{cite web}}: CS1 maint: multiple names: authors list (link)
  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.

entity, control, boundary, confused, with, stereotype, entity, control, boundary, entity, boundary, control, boundary, control, entity, architectural, pattern, used, case, driven, object, oriented, programming, that, structures, classes, composing, high, level. Not to be confused with Stereotype UML The entity control boundary ECB or entity boundary control EBC or boundary control entity BCE is an architectural pattern used in use case driven object oriented programming that structures the classes composing high level object oriented source code according to their responsibilities in the use case realization Contents 1 Origin and evolution 2 Principle 3 Robustness diagram 4 Relation to other architectural patterns 5 See also 6 Notes and referencesOrigin and evolution editThe entity control boundary approach finds its origin in Ivar Jacobson s use case driven object oriented software engineering OOSE method published in 1992 1 2 It was originally called Entity Interface Control EIC but very quickly the term boundary replaced interface in order to avoid the potential confusion with object oriented programming language terminology It is further developed in the Unified Process which promotes the use of ECB in the analysis and design activities with the support of UML stereotypes 3 Agile modelling 4 5 and the ICONIX process 6 elaborated on top of ECB architecture pattern with robustness diagrams 7 Principle editThe ECB pattern organises the responsibilities of classes according to their role in the use case realization an entity represents long lived information relevant for the stakeholders i e mostly derived from domain objects usually persistent a boundary encapsulates interaction with external actors users or external systems a control ensures the processing required for the execution of a use case and its business logic and coordinates sequences controls other objects involved in the use case The corresponding classes are then grouped into service packages which are an indivisible set of related classes that can be used as software delivery units ECB classes are first identified when use cases are analyzed every use case is represented as a control class every different relation between a use case and an actor is represented as a boundary class entities are derived from the use case narrative The classes are then refined and re structured or reorganized as needed for the design for example Factoring out common behaviors in different use case controls Identifying a central boundary class for each kind of human actor and for each external system that would provide a consistent interface to the outside world The ECB pattern assumes that the responsibilities of the classes is also reflected in the relations and interactions between the different categories of classes in order to ensure the robustness of the design 8 9 Robustness diagram editRobustness diagrams allow to visually represent the relation between entities controls boundaries and actors 4 It uses graphical stereotypes introduced in Jacobson s early work Representation Relation withRole Symbol Actor Boundary Control EntityActor nbsp Yes Yes No NoBoundary nbsp Yes Part whole Yes NoControl nbsp No Yes Yes YesEntity nbsp No No Yes YesThe following robustness constraints apply Actors may only know and communicate with boundaries Boundaries may communicate with actors and controls only Controls may know and communicate with boundaries and entities and if needed other controls Entities may only know about other entities but could communicate also with controls In principle entities should not know about boundaries and controls In practice however some variants allow entities boundaries and controls to subscribe as observer to an entity Similarly the constraint of a boundary class not knowing about other boundary classes only applies at the highest level and not between classes that cooperate to implement the same boundary Relation to other architectural patterns editThere is some similarity between ECB and model view controller MVC entities belong to the model and views belongs to boundaries However the role of the ECB control is very different from MVC controller since it encapsulates also use case business logic whereas the MVC controller processes user input which would be of the responsibility of the boundary in ECB The ECB control increases separation of concerns in the architecture by encapsulating business logic that is not directly related to an entity 2 The ECB can be used in conjunction with the hexagonal architecture whenever the boundaries form the outer adapter layer 10 ECB is compatible with the clean architecture which merges ECB principles with other architectural design paradigms 11 12 Clean architecture places entities at the core and surround them with a use case ring i e ECB control and a ring with gateways and presenters i e ECB boundaries However clean architecture requires a one way dependency from outside to inside which requires to split ECB controls into use case logic and object coordination See also editArchitectural patterns Use case Unified process Object oriented analysis and designNotes and references edit Jacobson Ivar 1992 Object oriented software engineering a use case driven approach New York ACM Press pp 130 133 ISBN 0201544350 OCLC 26132801 a b Reading notice on Object Oriented Software Engineering Ivar Jacobson et al 1992 tedfelix com Retrieved 2019 08 14 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 a href Template Cite book html title Template Cite book cite book a CS1 maint others link a b Scott Ambler Robustness Diagrams An Agile Introduction agilemodeling com Retrieved 2019 08 14 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 a href Template Cite book html title Template Cite book cite book a CS1 maint multiple names authors list link CS1 maint numeric names authors list link Close the gap between analysis and design The Register www theregister co uk Retrieved 2019 08 14 Dugerdil Philippe 2013 Architecting mobile enterprise app Proceedings of the 2013 ACM workshop on Mobile development lifecycle Indianapolis Indiana USA ACM Press pp 9 14 doi 10 1145 2542128 2542131 ISBN 9781450326032 S2CID 14408662 Guideline Entity Control Boundary Pattern posomas isse de Retrieved 2019 08 14 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 The Entity Control Boundary Pattern www cs sjsu edu Retrieved 2019 08 14 Martin Robert C 2012 08 12 The Clean architecture Clean Coder Blog blog cleancoder com Retrieved 2019 08 12 a href Template Cite web html title Template Cite web cite web a CS1 maint multiple names authors list link 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 Retrieved from https en wikipedia org w index php title Entity control boundary amp oldid 1176997761, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.