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”.
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)…
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