Dúvida sobre Casos de Uso

Olá pessoal, estava aqui estudando sobre diagramas de casos de uso, quando me surgiu uma dúvida.

Minha dúvida é sobre os relacionamentos de Casos de uso, mas especificamente sobre a Dependência entre casos de uso.

Vamos aos exemplos:

Tenho 2 casos de uso, Vender CDS e Calcular Desconto. O relacionamento desses casos de uso é [i]<> /i. Pelo que eu entendi, quando meu caso de uso base (Vender CDs) for “executado”, o caso de uso estendido(Calcular Desconto) poderá ou não entrar no fluxo de execução do caso base (opcional). Até ai tudo bem, mas não faz sentido eu calcular um desconto se não for realizada a venda vocês concordam?

Portanto , há uma dependência forte entre os casos de uso ([color=red] COMPOSIÇÃO[/color]). O caso de uso estendido só existirá se o caso de uso base existir.

Outro exemplo:
Tenho um caso de uso MANTER CLIENTES e outro FAZER LOGIN. O relacionamento deles é <> (Inclusão). Nesse caso, há uma dependência fraca entre os casos de uso, para eu “executar” o Manter Clientes eu preciso estar logado no sistema, mas eu posso logar no sistema e não manter nenhum cliente. ([color=red] AGREGAÇÃO[/color])

Conclusão:

( <<extend>> == COMPOSIÇÃO) && ( <<include>> == AGREGAÇÃO) ) 

É isso mesmo ou estou equivocado? Alguém concorda/discorda?

Nos dois casos eu usaria <>. E acho que nada tem a ver se ele vai ser ou não executado, isso aí já é regra de negócio.

No primeiro caso, se fosse usado <>, ao vender um cd, um ator teria OBRIGATORIAMENTE que calcular um desconto. Não acho muito legal, já que o desconto é opcional.

Então, não está correto usar o <> ??
Estou estudando use case tb, fiquei com dúvida quando você falou sobre “agregação” pois não vi isso ainda…

gRoOve: Sim, o <> é mais apropriado nesse primeiro caso.

A questão da agregação e composição são outros conceitos, eu não sei se existe no contexto de casos de uso, por isso fiz um comparativo e queria a opinião da galera pra ver se isso faz sentido ou não.

Se para Manter clientes você precisa estar logado, onde então isso é uma dependẽncia fraca ??? ficou confuso pra mim, perdoe-me se eu entendi errado.

Quanto ao outro caso o extends está correto, avaliando seu Caso de Uso pelo o que eu entendi. O include também se encaixou bem… a idéia está correta, só essa sua afirmação que não sei se compreendi corretamente.

Abs []

É uma dependência fraca, pois o caso de uso FAZER LOGIN pode ser executado sem que o caso de uso MANTER CLIENTES seja executado.

Já no primeiro caso, é uma dependência forte pois o caso de uso CALCULAR DESCONTO não pode ser executado enquanto o caso de uso VENDER CDS não for executado

Você esceveu:

note que o Caso de Uso em questão é o MANTER CLIENTES, para o MANTER CLIENTES o FAZER LOGIN é uma dependência fortíssima…

Não vejo um cenário onde você de fato precisará descrever o Login…

Mas o include se encaixou perfeitamente no cenário e descreve dependência forte.

Abs [] e bons estudos.