Fórum Análise Caso de Uso #2278
27/01/2009
0
Boa Tarde,
Gostaria de pedir uma ajuda para a análise da imagem abaixo que se refere a um Caso de Uso de um Cadastro de Pacientes, e no final deste cadastro pode-se, ou não imprimir a carteira dele.
Bom, a minha dúvida é a seguinte, estamos enchendo o caso de uso de INCLUDES e EXTENDS e já vi em muitos artigos que indicam não usar muito essas notações.
Vou dar um exemplo da dúvida sobre o desenho abaixo...
Caso de Uso CADASTRAR PACIENTE ... Para cadastrar um paciente, eu poderia colocar um Extends, pois opcionalmente antes de incluir eu posso consultar, e também para consultar, obrigatório eu tenho que ter o paciente cadastrado. Apesar de eu não ter colocado um EXTENDS apontando para Cadastrar, eu entendo que eu poderia ter. Até aonde eu devo analisar o caso de uso para não encher de include e extends? O desenho abaixo está correto ou tenho que colocar esse extends que relatei que poderia ter colocado.
Obrigado
Winston Costa
Nefrodata Ltda
Curtir tópico
+ 0
Responder
Posts
29/01/2009
Fabio Mans
Antes vamos definir o que é Inclusão e Extensão
Inclusão
A Associação de Inclusão costuma ser utilizada quando existe um serviço, situação ou rotina comum a mais de um Caso de uso. Quando isso ocorre, a documentação dessa rotina é colocada em um Caso de Uso específico para que outros Casos de Uso utilizem-se desse serviço, evitando-se descrever uma mesma seqüência de passos em vários Casos de Uso. Os relacionamentos de Inclusão indicam uma obrigatoriedade, ou seja, quando um Determinado Caso de Uso possui um relacionamento de Inclusão com outro, a execução do primeiro obriga também a execução do segundo. Um relacionamento de Inclusão pode ser comparado à chamada de uma sub-rotina ou função, artifício bastante utilizado na maioria das linguagens de programação.
Exemplo
Cliente (Ator)
Saque
Depósito
Registar Movimento
Sempre que ocorre um saque ou depósito pelo cliente o mesmo deve registar o movimento.
Extensão
Associação de Extensão são utilizadas para descrever cenários opcionais de um caso de Uso. Os Casos de Uso estendidos descrevem cenários que apenas ocorrerão em uma situação específica, se uma determinada condição for satisfeita, Assim, as Associações de Extensão indicam a necessidade de um teste para determinar se é necessário executar também o Caso de Uso estendido ou não. Relacionamentos de Extensão representam eventos que não ocorrem sempre, o que não significa que eles sejam incomuns.
Exemplo
Cliente (Ator)
Encerrar Conta (Caso de Uso)
Saque (Caso de Uso)
Depósito (Caso de Uso)
Funcionário (Ator)
O cliente quer fechar a conta, tenho que fazer um teste para ver se o saldo não está negativo ou ver se não tem nenhum debito. Ou seja existe a necessidade de um teste para determinar se é necessário executar também o Caso de Uso estendido ou não.
=====================================================
Caso de Uso CADASTRAR PACIENTE ... Para cadastrar um paciente, eu poderia colocar um Extends, pois opcionalmente antes de incluir eu posso consultar, e também para consultar, obrigatório eu tenho que ter o paciente cadastrado. Apesar de eu não ter colocado um EXTENDS apontando para Cadastrar, eu entendo que eu poderia ter. Até aonde eu devo analisar o caso de uso para não encher de include e extends? O desenho abaixo está correto ou tenho que colocar esse extends que relatei que poderia ter colocado.
=====================================================
Pela definição acima um Extends cabe no Caso de uso Cadastar Paciente, porque antes de Cadastar você tem que verifcar se ele existe ou não. No Caso de Uso Consultar Paciente eu acho que ficou perfeito o Include, como está na definição (Os relacionamentos de Inclusão indicam uma obrigatoriedade, ou seja, quando um Determinado Caso de Uso possui um relacionamento de Inclusão com outro, a execução do primeiro obriga também a execução do segundo). E como você está incluindo, excluindo e alterando, antes você tem que consultar.
Espero ter ajudado.
Responder
Gostei + 0
30/01/2009
Nefrodata Ltda
ok. Obrigado !
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)