Diagrama de casos de uso

Os Casos de Uso são utilizados para os seguintes fins:
 * Para chegar a um entendimento comum sobre o comportamento do sistema;
 * Para projetar elementos que suportam o comportamento exigido;
 * Para identificar casos de teste;
 * Para planejar e avaliar o trabalho;
 * Para escrever uma documentação do usuário em um diagrama;

 Objetivo:   O Diagrama de Casos de Uso tem o objetivo de auxiliar a comunicação entre os analistas e o cliente.

 Um diagrama de Caso de Uso descreve um cenário que mostra as funcionalidades do sistema do ponto de vista do usuário.

 O cliente deve ver no diagrama de Casos de Uso as principais funcionalidades de seu sistema.

 Notação:   O diagrama de Caso de Uso é representado por:

 Estes relacionamentos podem ser:
 * Atores;
 * Casos de uso;
 * Relacionamentos entre estes elementos.


 * Associações entre atores e casos de uso;
 * Generalizações entre os atores;
 * Generalizações, extends e includes entre os casos de uso.


 * casos de uso podem opcionalmente estar envolvidos por um retângulo que representa os limites do sistema. 

 Em maiores detalhes: 


 *  Atores: 

 Um ator é representado por um boneco e um rótulo com o nome do ator. Um ator é um usuário do sistema, que pode ser um usuário humano ou um outro sistema computacional.



   Um caso de uso é representado por uma elipse e um rótulo com o nome do caso de uso. Um caso de uso define uma grande função do sistema. A implicação é que uma função pode ser estruturada em outras funções e, portanto, um caso de uso pode ser estruturado.
 *  Caso de uso: 




 *  Relacionamentos: 
 * Entre um ator e um caso de uso:

     -Associação







<p style="margin: 0cm 0cm 0.0001pt 72pt; text-indent: -18pt;">

<p style="margin: 0cm 0cm 0.0001pt 72pt; text-indent: -18pt;">- Define uma funcionalidade do sistema do ponto de vista do usuário;

<p style="margin: 0cm 0cm 0.0001pt 72pt; text-indent: -18pt;">


 * Entre atores:

<p style="margin: 0cm 0cm 0.0001pt 72pt; text-indent: -18pt;">- Generalização

<p style="margin: 0cm 0cm 0.0001pt 72pt; text-indent: -18pt;">

<p style="margin: 0cm 0cm 0.0001pt 72pt; text-indent: -18pt;">

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:         auto">

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:         auto"> - Os casos de uso de B são também casos de uso de "A";

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:         auto"> - "A" tem seus próprios casos de uso:

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:         auto">

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:         auto">

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:         auto">

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:         auto"> Entre casos de uso :

<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:         auto">Include:  Um relacionamento include de um caso de uso A para um caso de uso B indica que B é essencial para o comportamento de A. Pode ser dito também que B is_part_of A. </li><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:          auto">

</li> </li>

<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:         auto"> Extend:  Um relacionamento extend de um caso de uso B para um caso de uso A indica que o caso de uso B pode ser acrescentado para descrever o comportamento de A (não é essencial). A extensão é inserida em um ponto de extensão do caso de uso A.</li><p style="margin-left:108.0pt"> Ponto de extensão em um caso de uso é uma indicação de que outros casos de uso poderão ser adicionados a ele. Quando o caso de uso for invocado, ele verificará se suas extensões devem ou não serem invocadas.

<p style="margin-left:108.0pt"> Você entendeu?! Provavelmente, não. É que extend é unanimemente considerado um conceito obscuro.

<p style="margin-left:108.0pt"> Vamos a novas explicações.

<p style="margin-left:108.0pt"> Quando se especifica B extends A, a semântica é:

<p style="margin-left:153.0pt;text-indent:-18.0pt;mso-list:l10 level1 lfo9; tab-stops:list 153.0pt"> ·           Dois casos de uso são definidos: A e A extended by B;

<p style="margin-left:153.0pt;text-indent:-18.0pt;mso-list:l10 level1 lfo9; tab-stops:list 153.0pt"> ·           B é uma variação de A. Contém eventos adicionais, para certas condições;

<p style="margin-left:153.0pt;text-indent:-18.0pt;mso-list:l10 level1 lfo9; tab-stops:list 153.0pt"> ·           Tem que ser especificado onde B é inserido em A.  <p style="margin-left:108.0pt"> caso de uso  B é_um caso de uso A (A é uma generalização de B, ou B é uma especialização de A).

<p style="margin-left:36.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo11; tab-stops:list 36.0pt"> </li> </li> <p style="margin-left:36.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo11; tab-stops:list 36.0pt"> ​ ​     Sistema:  </li>
 * Um relacionamento entre um caso de uso genérico para um mais específico, que herda todas as características de seu pai.

<p style="margin-left:36.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo11; tab-stops:list 36.0pt"> <p style="margin-left:36.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo11; tab-stops:list 36.0pt">

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:            auto;mso-list:l2 level1 lfo12;tab-stops:list 36.0pt">  Exemplo 1: 

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:            auto;mso-list:l2 level1 lfo12;tab-stops:list 36.0pt">  

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:            auto;mso-list:l2 level1 lfo12;tab-stops:list 36.0pt">

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:            auto;mso-list:l2 level1 lfo12;tab-stops:list 36.0pt">

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:            auto;mso-list:l2 level1 lfo12;tab-stops:list 36.0pt">

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:            auto;mso-list:l2 level1 lfo12;tab-stops:list 36.0pt">

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:            auto;mso-list:l2 level1 lfo12;tab-stops:list 36.0pt">

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:            auto;mso-list:l2 level1 lfo12;tab-stops:list 36.0pt">

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:            auto;mso-list:l2 level1 lfo12;tab-stops:list 36.0pt">

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:            auto;mso-list:l2 level1 lfo12;tab-stops:list 36.0pt">

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:            auto;mso-list:l2 level1 lfo12;tab-stops:list 36.0pt">

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:            auto;mso-list:l2 level1 lfo12;tab-stops:list 36.0pt">

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:            auto;mso-list:l2 level1 lfo12;tab-stops:list 36.0pt">

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:            auto;mso-list:l2 level1 lfo12;tab-stops:list 36.0pt">

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:            auto;mso-list:l2 level1 lfo12;tab-stops:list 36.0pt">

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:            auto;mso-list:l2 level1 lfo12;tab-stops:list 36.0pt">

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:            auto;mso-list:l2 level1 lfo12;tab-stops:list 36.0pt">

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:            auto;mso-list:l2 level1 lfo12;tab-stops:list 36.0pt">

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:            auto;mso-list:l2 level1 lfo12;tab-stops:list 36.0pt">

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:            auto;mso-list:l2 level1 lfo12;tab-stops:list 36.0pt">

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:            auto;mso-list:l2 level1 lfo12;tab-stops:list 36.0pt">

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:            auto;mso-list:l2 level1 lfo12;tab-stops:list 36.0pt">  Exemplo 2: 

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:            auto;mso-list:l2 level1 lfo12;tab-stops:list 36.0pt">  

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:         auto">