Expansão dos Casos de Uso
Casos de Uso no Contexto do UP
Atividades de Expansão Descrever o fluxo principal Descrever fluxos alternativos
Níveis de Detalhamento Alto Nível Expandido
Exemplo de Caso de Uso de Alto Nível
Exemplo de Caso de Uso Expandido
Uma Solução para o Problema do Se 4b. Uma fita está danificada e existe outra cópia 4b.1 O funcionário informa que a fita está danificada 4b.2 O funcionário registra que a fita está danificada 4b.3 O funcionário substitui a fita 4b.4 Retorna ao passo 4
Uma Solução para o Problema do Se 4c. Uma fita está danificada e não existe outra cópia 4c.1 O funcionário informa que a fita está danificada 4c.2 O funcionário registra que a fita está danificada 4c.3 Retorna ao passo 4
Uma Solução para o Problema do Se 5a. Não há fitas para emprestar 4a.1 Retorna ao fluxo principal no passo 1 Obs: Esta solução ainda admite que o cliente *sempre* leva fitas. Não tem problema: o importante é descobrir soluções que evitem o emprego do se
O Problema do Se Sossegue! Não vou matá-lo(a) se empregar o se Apenas, peço que esgote todas as suas possibilidades de não usar o se
Passos em um Fluxo Obrigatórios Complementares Não Recomendados
Passos Obrigatórios Indicam as entradas e saídas de informação do sistema necessárias para realizar o caso de uso Não vale ‘informação’ do tipo “OK” Na falta de qualquer um desses passos o caso de uso pode ficar sem sentido, ou não recomendado
Exemplo de caso de uso onde falta uma entrada de informação
Um diálogo impossível baseado no caso de uso anterior
Uma solução mais adequada
Tipos de passos obrigatórios Eventos de sistema – entradas Respostas de sistema – saídas Obs. Não são respostas de sistema retornos do tipo “ok”. Deve ser enviada ao mundo externo algum tipo de informação que o sistema armazena
Identificação de passos obrigatórios em um Caso de Uso
Passos Complementares Não possuem uma entrada ou saída do sistema, mas ajudam a compreender o contexto Estes passos têm pouca ou nenhuma influência na complexidade do software a ser desenvolvido
Exemplos de passos complementares “o cliente chega ao balcão com as fitas que deseja locar” “o cliente vai embora com as fitas” “o funcionário pergunta o nome do cliente” “o sistema informa que a reserva foi concluída com sucesso”
Passos Não Recomendados Passos com Informação incompleta ‘Informação’ do tipo “OK” Passos que descrevem processos internos ao sistema O caso de uso deve descrever a interação entre o sistema e os atores externos, não o processamento interno Passos do fluxo principal que descrevem exceções Exceções devem ser tratadas somente em fluxos alternativos
Mais exemplos de passos que não deveriam constar em um caso de uso “o sistema registra o nome do cliente no banco de dados” (processo interno) “o sistema calcula a média das vendas” (processo interno)
Um exemplo de caso de uso com passos não recomendados
Tratamento de Exceções no Caso de Uso Depois de descrever o fluxo principal do caso de uso, deve-se imaginar o que poderia dar errado em cada um dos passos descritos Uma exceção é um evento que se não for devidamente tratado impede o prosseguimento do caso de uso A exceção em um processo não é necessariamente algo que impede que o processo seja iniciado, mas normalmente algo que impede que ele seja concluído
Partes de um tratamento de exceção Identificador – número da linha no FP e código da exceção Descrição da exceção – uma frase Ações corretivas – um fluxo alternativo Finalização – como retorna-se ao FP
Formas de Finalizar um Fluxo Alternativo Voltar ao início do passo que causou a exceção Ir para algum passo posterior Voltar ao início do caso de uso Abortar o caso de uso
Forma a ser evitada no Fluxo Principal Se o cliente possui cadastro então o funcionário registra...
Abortar o Caso de Uso Quando não for possível ou desejável realizar um passo, o caso de uso é abortado Não é necessário indicar isso como exceção, pois idealmente pode ocorrer a qualquer momento e em qualquer passo
Variantes Não são exceções, mas cenários distintos dentro de um passo de um caso de uso Outra forma de evitar o uso do Se
Variantes de Outros Casos de Uso
Quando usar variantes? Quando uma mesma seqüência de passos é repetida em diferentes casos de uso Quando um caso de uso é demasiadamente complexo, e a divisão dele em variantes ajuda na sua compreensão Diagrama UML de caso de uso: relacionamento is_a
Leituras no caso de uso Evite: Prefira: “o sistema verifica se o usuário está cadastrado” Isto não é entrada, nem saída Prefira: “o funcionário informa a identificação do cliente” Entrada “o sistema informa os dados do cadastro do cliente” Saída
Outras seções de um Caso de Uso Atores Interessados Larman: atores secundários Pré-condições Sem elas, o caso de uso intrinsecamente aborta, desde o início Pós-condições Os efeitos (mudança de estado) no sistema Requisitos Correlacionados, ou referências cruzadas Variações Tecnológicas Questões em Aberto Indicam a necessidade de refinar o caso de uso, ao longo das iterações
Diagramas de Caso de Uso Decomposição em Sub-casos de Uso
Construção de Diagramas Variantes Relacionamentos is_a Fluxos Alternativos Relacionamentos extend Fluxo Principal Relacionamentos include, se o fluxo tiver passos suficientes