O conceito de Entity Control Boundary introduz um padrão que define um ponto de início para a distribuição de responsabilidades à um conjunto de elementos de um sistema baseado em três perspectivas de colaboração entre eles.
O ECB relaciona alguns elementos do projeto:
Quando são identificados os elementos de algum cenário, ou comportamento, do sistema, é possível alinhar cada um em uma das perspectivas: Entity, Control, ou Boundary.
Este padrão é similar ao Model View Controller, porém o Entity Control Boundary não é tão adequado para lidar com interfaces de usuário, e provê ao controller (controlador) um papel significativamente diferente.
Uma entity (leia-se "entiti" - entidade) é um elemento passivo que é responsável por alguma quantidade de informação importante.
Um exemplo de entidade para uma aplicação seria uma entidade Cliente (Customer) que gerencia toda a informação sobre o cliente. Um elemento do projeto para esta entidade seria incluir dados do cliente, gerenciar dados, validar informações do cliente e realizar outros funções de negócio, por exemplo: "este cliente pode comprar o produto X?".
A identificação das entidades como parte deste padrão pode ser feita várias vezes em diferentes níveis de abstração, e por diferentes perspectivas de contexto.
Um elemento Control (leia-se "côntrol" - controle) gerencia a ordem de interações no cenário. Um elemento de controle pode gerenciar os comportamentos finais do centário, ou pode gerenciar as comunicações entre um conjunto de elementos. Comportamentos e regras de negócio relacionadas às informações relevantes ao cenário podem ser atribuídas a entidades; os elementos de controle são responsáveis, apenas, pelo andamento do cenário.
Um exemplo de elemento de controle poderia ser CriarCampanha (CreateMarketingCampaign). Este elemento seria responsável por alguns elementos de fronteira e iria colaborar com outras entidades, elementos de controle, e fronteiras de bastidores para permitir a criação da campanha de marketing.
Um elemento boundary (leia-se "baundari" - fronteira) situa-se nas periferias do sistema, ou sub-sistema, porém junto com este. Para qualquer cenário considerado do sistema, ou de algum sub-sistema, alguns elementos boundary serão elementos "front-end" (linha de frente) que aceitarão entradas de fora da área do sistema, e outros elementos farão o "back-end" (bastidores) que gerencia comunicação com os elementos de fora do sistema, ou sub-sistema.
Exemplos de elementos boundary poderiam ser um ele de front-end (MarketingCampaignForm) e um elemento de back-end (BugdetSystem). O boundary MarketingCampaignForm iria gerenciar a troca de informações entre um usuário e o sistema, e o boundary BugdetSystem gerenciaria a troca de informações entre o sistema e o sistema externo que realiza o controle das finanças.
A tabela abaixo mostra os links de comunicação entre os elementos do ECB:
| Entity | Control |
Boundary | |
| Entity |
X | X | |
| Control | X | X | X |
| Boundary | X | X |
Ao aplicar este padrão, um projeto robusto pode ser criado, o qual identifica os elementos, comportamentos, e relacionamentos necessários para realizar um cenário.
Referência: OpenUp Framework
Comentários
Auxilio
Esse material tem grande valor para quem tem interesse em estuda a egenharia de software e é essencial para quem esta iniciando neste ramo. Os elementos apresentados neste artigo compôe o diagrama de classe da UML e me deu grande apoio na faculdade. Obrigado.
Leonardo Lemos