El " Entity-Control-Boundary ( ECB )" o " Entity-Boundary-Control ( EBC )", o " Boundary-Control-Entity ( BCE )", que podría traducirse al francés como " Entité-Contrôle-Frontière ", es un patrón de arquitectura utilizado para el diseño de software orientado a objetos. Tiene como objetivo estructurar las clases según sus responsabilidades en la implementación de casos de uso .
El enfoque del BCE tiene su origen en el método OOSE de Ivar Jacobson publicado en 1992. Este método está impulsado por casos de uso y busca un enfoque sistémico para transformarlos en un diseño. Originalmente el enfoque se llamaba "Entidad-Interfaz-Control (EIC)", pero muy rápidamente el término " borde " reemplazó a " interfaz " debido a la posible confusión de este concepto con la terminología de los lenguajes de programación orientados a objetos .
Luego, ECB se desarrolló en el contexto del Proceso Unificado , que fomenta el uso del enfoque ECB para actividades de análisis y diseño, utilizando estereotipos UML . Los métodos ágiles basados en el modelado como el “ Modelado ágil ” de Scott Ambler o ICONIX también han utilizado el patrón de arquitectura ECB que es la base de los diagramas de robustez recomendados por estos métodos.
El patrón de arquitectura ECB organiza las responsabilidades de las clases de acuerdo con su rol en la realización de casos de uso:
A continuación, las clases correspondientes se agrupan en paquetes de servicios . Estos son conjuntos indivisibles de clases relacionadas que proporcionan funcionalidad. Se pueden utilizar como unidades de distribución de software independientes.
Primero, las clases ECB se identifican durante el análisis de los casos de uso :
Luego, las clases se refinan y reestructuran o reorganizan de acuerdo con las necesidades del diseño, por ejemplo:
El patrón de arquitectura del BCE implica que las responsabilidades de las clases también se reflejan en las interacciones entre las diferentes categorías de clases para garantizar la solidez del diseño.
El diagrama de robustez permite representar visualmente la relación entre entidades, controles, fronteras y actores sin pasar necesariamente por los casos de uso. Utiliza estereotipos gráficos introducidos por Jacobson desde sus primeros trabajos:
Representación | Una relación con | ||||
---|---|---|---|---|---|
Papel | símbolo | Actor | Frontera | Control | Entidad |
Actor | sí | sí | No | No | |
Frontera | sí | Parte / Todo | sí | No | |
Control | No | sí | sí | sí | |
Entidad | No | No | sí | sí |
Se aplican las siguientes restricciones de robustez:
En principio, no existe una relación navegable entre las entidades y las fronteras y los controles. Sin embargo, en la práctica, algunas variaciones del patrón del BCE permiten que las entidades, las fronteras y los controles se suscriban como observadores a una entidad.
Asimismo, la restricción de que una clase de frontera no está vinculada a otras clases de frontera solo se aplica al nivel más alto. Esta restricción no se aplica a las clases que cooperan para implementar el mismo límite.
Existen algunas similitudes entre ECB y el patrón Modelo-Vista-Controlador (MVC): las entidades pertenecen al modelo y las vistas son elementos de borde. Sin embargo, la función del control ECB es muy diferente a la del controlador MVC, ya que también abarca la lógica empresarial de los casos de uso, mientras que el controlador MVC procesa la entrada del usuario que sería responsabilidad de la frontera en el esquema ECB. . El control de esquema ECB aumenta la separación de preocupaciones en la arquitectura de software al encapsular la lógica empresarial cuando no está directamente vinculada a una entidad.
ECB se puede utilizar junto con la arquitectura hexagonal , donde las clases de límite forman la capa exterior de los adaptadores de la arquitectura hexagonal.
ECB es compatible con la “ arquitectura limpia ” de Robert C. Martin, que fusiona los principios de ECB con otros diseños arquitectónicos. La arquitectura de Martin coloca a las entidades en el centro de la aplicación y las rodea con un anillo para la lógica de casos de uso (control en la terminología ECB) y un anillo con puertas de enlace y presentadores (límites en el ECB lógico). Sin embargo, la llamada arquitectura limpia requiere que todas las dependencias sean unidireccionales desde un anillo exterior a un anillo interior, lo que requiere romper los controles del BCE separando la lógica empresarial de las otras responsabilidades.