Casos de Uso - include de include

Tenho uma situação que não estou conseguindo resolver na UML. Vocês poderiam me ajudar?
Explicando…:
Caso de Uso Login da estação (concreto)

  1. Solicita usuário e senha
  2. Incluir Caso de Uso Valida Usuario e Senha (o Caso de Uso Valida Usuario e Senha é abstrato)
  3. (Se estação “fechada”, devo realizar Caso de Uso Abertura da estação)
    Obs: Para mim, esse seria um ponto de extensão, mas caso a abertura da estação não seja concluída com sucesso, o login não vai ser concluido com sucesso. Portanto fere a regra que diz que o a extensão não pode contrariar o caminho feliz do Caso de Uso que o extende.
    Portanto, teria que ser um fluxo alternativo que faria um include…(?)
    Mas, esse caso de uso Abertura da estação, é concreto e possui includes dentro dele (por exemplo, Inclui Caso de Uso Solicita Autorização de abertura ao sistema legado)
    Resumindo, nesse caso, teria a seguinte situação:
    Login da estação ——> Abertura da Estação ——> Solicita Autorização de abertura ao sistema legado
    Isso também não é permitido na UML (include de include)
    Vocês podem me dar uma idéia de como isso se resolve na UML?

Mara, tudo isso que você está citando ocorre durante o login, certo? Abertura de estação, validação de senha e etc… Mara, tudo isso é um unico caso de uso chamado “Login” sem include nenhum!

Faça o meu curso on-line grátis sobre casos de uso no site da Aspercom (www.aspercom.com.br).

[quote=rodrigoy]Mara, tudo isso é um unico caso de uso chamado “Login” sem include nenhum!

[/quote]

O usuário interage com o sistema com o alvo/meta/objetivo de fazer “Login”!? Estranho isso hein?

A pergunta é se o include existe… a resposta é: não, não existe.

Existe caso de uso Login? Pode existir pois a técnica serve para demonstrar comportamento de qualquer coisa. É feio? Resposta: Sim, é feio ter caso de uso Login. Eu particularmente prefiro ter o modelo de casos de uso focado no conjunto de serviços que agregam valor de negócios na aplicação.

Relatório é Caso de Uso?

Acho que esqueci de dizer que a Abertura da estação é um Caso de Uso.
Ela pode ocorrer em outro momento, acionada pelo usuário.
Ou seja, ela acontece automaticamente no Login (se certas condições forem satisfeitas para tanto), ou será acionada no menu, en outro momento, após o login.
Portanto, se ela é um caso de uso, ou eu a coloco como include no Login, ou tenho que repetir o mesmo conjunto de passos dentro do Login

Só para complementar… Fico com muitas dúvidas porque na verdade, estou escrevendo os casos de uso de um sistema que já existe. E será refeito.
Leio suas instruções, faço os cursos… Mas algumas perguntas ficam sem respostas…
A literatura diz que somente as interações do usuário com o sistema devem ser representadas nos casos de uso.
Mas tenho uma premissa para os casos de uso que estou escrevendo, que diz: TODAS as mensagens apresentadas ao usuário devem ser referenciadas nos casos de uso. Claro, há um documento de mensagens, mas devem ser citadas nos fluxos dos casos de uso. Não só para demonstrar as respostas do sistema ao usuário, mas principalmente para usos nos planos de testes … Não sei se isso é assim mesmo, mas é uma premissa para sistema que estou desenvolvendo.
Ex:
sistema solicita valor
fluxo de exceção: caso valor maior que limite permitido, sistema apresenta mensagem (“Valor acima do limite”)

Portanto, tenho mensagens que são resultado de ações internas do sistema…
Não vejo como não citar essas ações do sistema, E mais. Muitas vezes, são ações que geram fluxos que devem ser o mesmo para vários casos de uso, principalmente as execções que têm mensagens comuns a serem mostradas ao usuário. Não vejo como não escrevê-los como um caso de uso e incluí-los nos casos de uso base…

[quote=Mara Rodrigues]Só para complementar… Fico com muitas dúvidas porque na verdade, estou escrevendo os casos de uso de um sistema que já existe. E será refeito.
Leio suas instruções, faço os cursos… Mas algumas perguntas ficam sem respostas…
[/quote]

Isso é normal… casos de usos são descritos com muita ambiguidade na literatura e em cursos. Estude (e procure) agilidade (XP, SCRUM, etc) e trabalhe com estórias e verá que sua vida será mais simples.