A questão: quando é aconselhável decompor (ou agregar) um serviço de negócio?
Uma questão recorrente na modelagem da camada de negócios é a identificação do nível de granularidade (demarcação) dos serviços: quando é adequado desagregar um serviço (criando "sub-serviços") ou, de forma similar, quando é aconselhável agregar serviços individuais em um serviço de mais alto nível?A solução para esta questão
Um serviço de negócio é, por definição, "consumido" por diversos consumidores. Isto implica que um serviço só deve ser decomposto em sub-serviços se estes sub-serviços puderem, também, ser consumidos de forma independente uns dos outros.Use as seguintes orientações para distinguir um serviço:
- Distinga o serviço a partir de uma perspectiva de seu consumidor. O serviço deve ser reconhecível e usável pelo consumidor. As convenções de nomeação devem ser estabelecidas a partir da perspectiva do consumidor do serviço.
- Distinga os serviços com base nas atividades que são executadas na camada de serviços, e com base nos produtos que estão sendo entregues.
- Modele os serviços de fora para dentro: definidos pelo seu uso.
- Distinga diferentes serviços de forma ótima para endereçar diferentes preocupações das partes interessadas.
- Previna a sobreposição de serviços: serviços diferentes oferecem comportamentos diferentes. A sobreposição do comportamento é um indicador de que o comportamento sobreposto deve ser modelado como um serviço separado.
- Um serviço é realizado por uma ou mais funções ou processos que representam o comportamento interno da organização. Uma função de negócios pode realizar múltiplos serviços.
- Sempre modele quais as funções ou processos de negócio realizam um serviço de negócio, e quais processos (no caso de serviços internos) consomem o serviço.
- Um serviço de negócio interno sempre é usado por uma função ou processo de negócio.
- Mantenha os serviços coerentes: garanta que comportamento comparável seja oferecido como serviços de uma forma comparável.
- Use serviços para esconder detalhes de implementação. É suficiente para o consumidor do serviço saber que um certo serviço está sendo oferecido, e como o consumidor pode fazer uso do serviço. O consumidor do serviço não precisa saber como o serviço é realizado.
Fonte: ArchiMate Made Pratical, Harmen van der Berg e outros, NAF Working Group "ArchiMate usage"