Análise e Projeto de Sistemas OO Análise e Projeto de Sistemas OO
Diagrama
Diagrama de de Casos
Casos de de Uso Uso
e e Especificações Especificações
227
Use Case (Casos de Uso)
Tipicamente representa uma interação entre um usuário e um sistema computacional
Pode ser utilizado para capturar os contextos de utilização do sistema
Tem a capacidade de representar os requisitos do sistema em alto nível de abstração
É um padrão de comportamento que o sistema exibe
Use Case (Casos de Uso)
Fator importante = criar casos de uso está relacionado ao fato de você criá-los sem especificar o modo como os casos de uso são implementados;
Os casos de uso especificam o comportamento desejado; eles não determinam como esse
comportamento será executado;
Vantagem comunicação entre usuário final e desenvolvedores sem preocupação com detalhes.
229
Cenários
Cenário é uma seqüência de passos que descreve uma interação entre um usuário e um sistema. Portanto, se você tem uma loja on-line baseada na web, (loja virtual), podemos ter um cenário de Compra de um Produto que diria:
O cliente navega no catálogo de itens e adiciona
itens desejados à sua cesta de compras. Quando o
cliente deseja pagar, descreve o endereço de
entrega, fornece as informações do cartão de
crédito e confirma a venda. O sistema verifica a
autorização do cartão de crédito e confirma a
Cenários
Este cenário é uma alternativa que pode acontecer.
No entanto, a autorização do cartão de crédito pode falhar, o que seria um outro cenário.
Um caso de uso, então, é um conjunto de cenários amarrados por um objetivo comum de um usuário. Na situação do exemplo, você teria um caso de uso de Compras com uma compra bem-sucedida e uma falha na autorização de cartão de crédito como dois cenários do caso de uso.
231
Casos de Uso - Aplicação
Proporciona aos especialistas de domínio uma maneira de especificar sua visão externa em um grau suficiente para que os desenvolvedores construam sua visão interna;
Fornecem um fórum para que os especialistas de domínios, usuários finais e desenvolvedores se comuniquem uns com os outros;
Permitem que o autor de um elemento comunique sua intenção a respeito de como o elemento deverá ser utilizado.
Poderá validar continuamente sua implementação, à
medida que é desenvolvida, testando-a cada elemento
em relação aos seus casos de uso.
Casos de Uso : Elementos
Elementos que compõem um diagrama de
Ator: representa um papel que um usuário desempenha com respeito ao sistema
Situação ( ): representa as funcionalidades externas do sistema Extensões: representam extensões à situações pré-definidas
Usos: demonstram a reutilização de situações pré-definidas
233
Atores
Atores
Um Ator é alguém ou alguma coisa que deve interagir com o sistema a ser desenvolvido
Cada caso de uso é uma seqüência de transações
relacionadas executadas por um ator e o sistema, em um
diálogo
Definindo melhor Atores
Um usuário pode desempenhar mais de um papel. Por exemplo, um analista comercial mais experiente pode desempenhar o papel de Gerente de Negócios e também ser um analista comercial regular; um Analista Comercial também pode ser um Vendedor.
Os atores desempenham os casos de uso. Um único ator pode desempenhar muitos casos de uso; um caso de uso pode ter reciprocamente vários atores desempenhando-o.
235
Definindo melhor Atores
Na prática, os atores são mais úteis quando se está propondo os casos de uso. Em face de um grande sistema, freqüentemente pode ser difícil propor uma lista de casos de uso. Nestas situações, é mais fácil chegar primeiro a lista de atores, e, então, tentar estabelecer os casos de uso para cada ator.
Esteja ciente de que alguns casos de uso não
aparecem como resultado do processo de considera-los
para cada ator. Se isso acontecer, não se preocupe
muito. O importante é compreender casos de uso e os
objetivos dos usuários que eles atingem.
Atores
Atores são examinados para determinar suas necessidades
Coordenador: manter o curriculum Professor: solicitar lista de cursos Aluno: efetuar matrícula
Sistema Cobrança: recebe informações sobre cobranças
237
Diagramas de Casos de Uso
Diagramas de são criados para se
visualizar a relação entre atores e casos de uso
Diagramas de Casos de Uso
À medida em que casos de uso são documentados, outras relações entre casos de uso poderão ser descobertas
Uma relação de uso (usa) mostra comportamento que é comum a um ou mais casos de uso
Uma relação de extensão (extende) mostra comportamento opcional
239
Casos de Uso - Generalização
Semelhante à generalização existente entre classes;
Caso de uso filho herda o comportamento e o significado do caso de uso pai; o filho deverá sobrescrever o comportamento de seu pai; e o filho pode ser substituído em qualquer local no qual o pai apareça;
Exemplo: Valida Usuário Checar Password & Leitura de Retina
Casos de Uso - Inclusão
Ocorre quando há uma parte do comportamento que é semelhante em mais de um caso de uso e você não quer ficar copiando a
descrição deste comportamento;
241
Casos de Uso - Extensão
Incorpora implicitamente o comportamento de um outro caso de uso em um local especificado indiretamente pelo caso de uso estendido;
Caso de uso estendido envia um comportamento para o caso de uso base;
É utilizado na modelagem de parte de um caso de uso que o usuário poderá considerar como um comportamento opcional do sistema;
É executado somente sob determinadas condições;
Mais sobre Inclusão
O caso de uso A inclui o caso de uso B, quando:
B representa uma atividade complexa, comum a vários casos de uso;
Alternativa para subfluxos complexos e comuns a vários casos de uso.
O caso de uso “incluído” é referenciado no fluxo do caso de uso “incluidor”.
243
Mais sobre Inclusão
Exemplo de relacionamento “inclui”:
Mais sobre Extensão
O caso de uso B estende o caso de uso A, quando:
B representa uma situação opcional ou de
extensão, que normalmente não ocorre durante a execução de A.
Alternativa para fluxos alternativos ou anormais complexos.
O caso de uso “estendido” é referenciado nas pré- condições do caso de uso “extensor”.
245
Mais sobre Extensão
O relacionamento “estende” é usado para representar:
Comportamento opcional;
Comportamento que só ocorre sob certas condições (por exemplo, alarmes);
Fluxos alternativos cuja realização depende de escolha
de um ator;
Mais sobre Inclusão
Exemplo de relacionamentos “estende” e
“inclui”:
247
Regras para modelagem
Identifique os atores que interagem com o elemento. Candidatos a atores incluem grupos que exigem determinado comportamento para a realização de suas tarefas ou que são necessários direta ou indiretamente para a realização de funções do elemento;
Organize os atores, identificando papéis gerais e mais especializados.
Para cada ator, considere as formas primárias em que o ator interage com o elemento. Considere também as interações que alteram o estado do elemento ou seu ambiente ou que envolvam uma resposta a algum evento;
Considere também as formas excepcionais em que cada ator interage com o elemento;
Organize esses comportamentos como casos de us, aplicando
relacionamentos de inclusão e estendidos com a finalidade de fazer a
fatoração do comportamento comum e diferenciar o comportamento
excepcional.
Caso de Uso ( )
249
Concluindo
Um caso de uso descreve um conjunto de
seqüências, cada uma representando a
interação de itens externos ao sistema (seus
atores) com o próprio sistema (e suas principais
abstrações). Esses comportamentos, na
verdade, são funções em nível de sistema, que
se utiliza para visualizar, especificar, construir e
documentar o comportamento pretendido do
sistema durante a captação e análise de
requisitos.
Ao definir um diagrama de caso de uso:
Dê-lhe um nome capaz de comunicar seu propósito;
Distribua seus elementos para minimizar o cruzamento de linhas;
Organize seus elementos espacialmente, de maneira que os comportamentos e papéis semanticamente relacionados apareçam próximos fisicamente;
Use notas e cores como indicações visuais e chamar atenção para características importantes do diagrama;
Tente não mostrar muitos tipos de relacionamentos. Em geral, se você tiver relacionamentos de inclusão e estendido complicados, coloque esses elementos em outro diagrama.
251
Especificação de Casos de Uso
No diagrama de casos de uso não consta a especificação de cada caso, nele apenas está representado qual ator interage com qual caso de uso.
Essa especificação é desenvolvida em um documento a parte
ESPECIFICAÇÕES DE CASOS DE USO.
De forma geral, a especificação dos
casos de uso segue o mesmo padrão.
Especificação de Casos de Uso
Caso de Uso
Sumário Atores
Pré-Condições Curso Normal
Cursos Alternativos Cursos de Exceção Pós-Condições
Requisitos Não Funcionais
Requisitos de Interface com o Usuário Regras do Negócio
253
Especificação de Casos de Uso
Caso de Uso : nome do referido caso de uso.
Sumário: uma breve descrição do seu propósito e qual seu objetivo.
Atores: listados os atores com base no diagrama de casos de uso.
Pré-Condições: Condições pré-determinadas para que
o caso de uso ocorra. O sistema irá verificar se cada pré-
condição é verdadeira para então dar continuidade ao
processo.
Especificação de Casos de Uso
Curso Normal : passo-a-passo das interações realizadas pelo ator e pelo sistema, desde o início até o fim da tarefa, denominado fluxo de eventos.
É o fluxo principal, ou seja, não se descreve aqui quando ocorre erros nem cancelamentos.
Cursos Alternativos : ocorrem quando o usuário abandona a operação ou adota outro caminho para a realização da mesma tarefa.
Cursos de Exceção : que ocorre quando um erro é constatado pelo sistema.
Pós-Condições : indicam em qual estado a conclusão do caso de uso vai deixar o sistema.
255