SUMÁRIO 1 Introdução 27
5.3 T RANSFORMAÇÃO DOS ELEMENTOS DA BPMN PARA CASOS DE USO
5.3.4 T AREFA DE S ERVIÇO
A diferença entre tarefa de serviço e tarefa de usuário da BPMN está no fato de que a tarefa de serviço é executada por um sistema ou webservice sem a intervenção do usuário.
A transformação de uma tarefa de serviço pode seguir a mesma abordagem utilizada na tarefa de usuário, ou seja, essa tarefa dá origem a um caso de uso e o ator do caso de uso é a raia que contém a tarefa. Entretanto em uma tarefa de serviço não há intervenção do usuário, não existindo uma interação entre o ator e o sistema. O ator nesse caso representa apenas o interessado no objetivo do caso de uso ou mesmo quem inicia o caso de uso, mas não interage diretamente com o mesmo. A Figura 27 mostra um exemplo dessa transformação. Nesse exemplo o diagrama BPMN contém duas tarefas. Uma tarefa de usuário Cadastrar Pedido e outra tarefa de serviço Atualizar Ranking de Pedidos. Essa tarefa de serviço representa uma rotina do sistema que atualiza informações da situação dos pedidos nas filiais. A transformação dessa tarefa em caso de uso se torna interessante para identificar quem é o interessado na realização disso ou mesmo quem inicia esse caso de uso.
Nessa situação a transformação nos elementos do metamodelo é a mesma que ocorre para tarefa de usuário, mas nesse caso se utiliza a classe Service Task.
Outra forma de transformar tarefa de serviço em elementos de casos de uso é fazer com que a tarefa seja um passo de um caso de uso. Nessa situação a tarefa se torna um passo, executado pelo sistema, dentro do caso de uso originado por outra tarefa (nesse caso de usuário) que precede essa tarefa de serviço. O exemplo da Figura 28 ilustra essa situação.
Figura 28 - Tarefa de Serviço para passo de um caso de uso
Nesse exemplo a tarefa não aparece no diagrama de casos de uso. Ela é mapeada para um passo do fluxo básico da descrição do caso de uso originado pela tarefa de usuário que precede a tarefa de serviço, no exemplo a tarefa Cadastrar Pedido. O passo do fluxo básico indica a execução da tarefa pelo sistema, por exemplo, “Sistema atualiza ranking de pedidos”. O resultado dessa transformação pode ser conferido na Figura 29 que mostra a descrição obtida para o caso de uso Cadastrar Pedido. Em termos de metamodelo a transformação ocorre entre as classes Service Task da BPMN e Step do metamodelo de casos de uso.
Nome do Caso de Uso: Cadastrar Pedido
Descrição:
Lista de Atores: Atendente
Pré-condições: Acionador: Fluxo básico de
eventos: ... Sistema atualiza ranking de pedidos.
Fluxos alternativos: Pontos de Extensão: Pós-condições:
Figura 29 - Descrição do caso de uso Cadastrar Pedido
É importante observar que a descrição obtida não é completa. Essa descrição contém apenas os elementos que podem ser identificados a partir do diagrama BPMN. As descrições devem ser refinadas com base em outras informações necessárias a esse refinamento. Não é objetivo das transformações propostas nesse trabalho obter a descrição completa de um caso de uso, mas sim auxiliar na identificação desses casos de uso e alguns elementos da sua descrição quando esses estão presentes nos diagramas BPMN.
Existe ainda a situação em que essa tarefa de serviço é algo executado por um sistema externo ao sistema que está sendo analisado. Nessa situação a recomendação é colocar essa tarefa
de serviço em outra raia sendo que essa raia deve representar o sistema externo. Dessa forma a tarefa de serviço se torna um caso de uso que tem como ator o sistema externo.
Com base nas situações descritas acima verifica-se que a transformação do elemento tarefa de serviço da BPMN para elementos de caso de uso da UML possui as seguintes possibilidades:
a) A tarefa de serviço é transformada em um caso de uso. O ator do caso de uso é a raia que contém a tarefa.
b) A tarefa de serviço é transformada em um passo de um caso de uso originado por uma tarefa de usuário que precede a tarefa de serviço.
c) A tarefa de serviço se torna um caso de uso que tem como ator um sistema externo. A primeira alternativa é mais adequada quando se deseja mostrar no diagrama de casos de uso os interessados na realização do objetivo da tarefa de serviço. A segunda alternativa pode ser usada quando não é interessante representar essa tarefa como um caso de uso separado, sendo a mesma um simples passo de outro caso de uso. A terceira é usada quando a tarefa é realizada por um sistema externo.
5.3.5 GATEWAY
Gateways são elementos utilizados para determinar o caminho dos fluxos de seqüência definidos. Um diagrama de casos de uso não apresenta a seqüência de execução dos casos de uso, por esse motivo a transformação de um gateway em BPMN para elementos de caso de uso não é direta, sendo necessária uma verificação de qual o gateway usado e o contexto das tarefas relacionadas com ele no processo modelado.
5.3.5.1 GATEWAY EXCLUSIVO
Um gateway exclusivo é usado em partes do diagrama onde existe a necessidade de seguir um determinado caminho do fluxo quando uma determinada condição for atendida. Essa condição determina qual será o fluxo de seqüência a ser seguido. Apenas um dos caminhos do gateway pode ser seguido. A transformação de um gateway exclusivo para um caso de uso pode ocorrer de diversas formas.
Um gateway exclusivo pode dar origem a relacionamentos de extensão, inclusão e especialização entre os casos de uso originados pelas tarefas envolvidas no gateway. Outra possibilidade é o gateway dar origem a passos de determinado casa de uso. Essa última alternativa é abordada mais adiante na transformação do elemento Grupo.
Possibilidade 1 – Gateway Exclusivo resulta em relacionamentos de extensão de casos