Duvida, include - extend

Situação 1.
Tenho um caso de uso Manter Funcionario e tenho um caso de uso chamado Pesquisar (que é um componente de pesquisa generico dentro do sistema e que é incluido em todas as paginas de entidades do sistema). Para o fluxo Basico de Manter Funcionario eu nao uso o componente de Pesquisar, no entanto, quando se eu for excluir (fluxo alternativo do UC) então antes eu preciso fazer a consulta e portanto utilizar o UC Pesquisar. Nesse caso, o relacionamento entre os UCs (Manter Funcionario e Pesquisar) seria de include? Veja que nem sempre o caso de uso incluído (Pesquisar) seria executado. Ele somente seria executado quando o fluxo alternativo de exclusão fosse executado.

Situação 2.
Considere um caso de uso CRUD Manter Cliente. Suponha que o cliente possua vários contatos, e que manterei algumas informações de cada contato. Então eu teria um outro caso de uso CRUD, chamado Manter Contato.
O sistema terá uma tela de cadastro de cliente e nessa tela terá um botão “Contatos”. Esse botão abre uma tela listando os contatos cadastrados. A partir dessa tela, pode-se abrir a tela de cadastro de contato.
Sendo assim, “Manter contato” só pode ser executado após a execução de “manter cliente”.
Eu gostaria de saber qual seria a relação entre esses dois casos de uso. Seria include ou extend? Lembre-se que o caso de uso “manter cliente” sempre poderá ser executado sem executar o “Manter contato”.

Obrigado a todos

Olá Spranta, vamos lá…

Antes de mais nada, gostaria acrescentar que se existe um componente X que faz isso ou aquilo, o caso de uso é completamente cego a esse respeito. Pouco importa para o caso de uso o que acontece dentro do sistema!

O caso de uso é a visão do usuário a respeito do sistema. O caso de uso mapeia o problema e não a solução. O caso de uso mostra [color=red][size=18]o que[/size][/color] o sistema faz, e não [color=red][size=18]como[/size][/color] ele faz. O caso de uso é um objetivo do ator, não tarefas do sistema.

Tendo isso em vista, enxergo que você possui só dois casos de uso:

  • Manter Funcionario
  • Manter Cliente (se o objetivo de Manter Contato só ocorre dentro de Manter Cliente esses dois são um objetivo só).

A ASPERCOM tem um curso on-line grátis sobre Casos de Uso com um estudo de caso, tarefas práticas e muito mais. Se quiser é só acessar:

QUANDO USAR ESTERIOTIPO INCLUDE OU EXTENDS PARA UC?

Temos as funcionalidades (Casos de Uso) A e B, imaginamos que ambos estão relacionados, bom, vamos aos exemplos para cada situação.

A --------<<include>>----------->B
INCLUDE: Uso obrigatório, toda vez que o caso de uso A for executado, obrigatoriamente o B também deverá ser executado. Ex: Cadastro de Pessoa Fisica para financiamento de $$
Durante o cadastramento UC(Cadastrar Pessoa) obrigatoriamente deverá ser consultado o CPF para liberar o crédito, é aonde entra o UC(Consultar Restritivos).

A <--------<<extends>>-----------B
EXTENDS: Facultativo, ao executar o caso de uso A, não se torna obrigatorio a execução do caso de uso B.
Ex: Dar desconto em para uma compra em dinheiro
Na execução do UC(Controlar Venda) posso ou não dar desconto, caso eu queira das desconto executo o UC(Definir Desconto)…

Espero ter ajudado…

falows

Coutinho cara…
eu tava estudando UML e tava meio confuso com relação aos conceitos de include e extends e vc com esses exemplos que deu ma ajudou muito…
não fui eu quem pedi uma explicação aqui nessa página, mas msm assim agradeço…
muito obrigado cara e fica com DEUS

Em ambas situações acho que tem um extend.
Primeira Situação:
UCManterCliente <-- – Pesquisar

Segunda Situação:
UCManterCliente <-- – Manter Contato

Se eu estiver errado, por favor, me corrijam.