33
Caso de Uso - Definição Um caso de uso é uma descrição narrativa de uma seqüência de eventos que ocorre quando um ator (agente externo) usa um sistema para realizar uma tarefa[Jacobson 92] Uma unidade coerente de funcionalidade provida por um sistema, manifestada por uma seqüência de mensagens trocadas entre o sistema e um ou mais usuários externos (representados como atores), junto com as ações executadas pelo sistema.

Apresentação - Caso de Uso e Cenários

Embed Size (px)

Citation preview

Page 1: Apresentação - Caso de Uso e Cenários

Caso de Uso - Definição

• Um caso de uso é uma descrição narrativa de uma seqüência de eventos que ocorre quando um ator (agente externo) usa um sistema para realizar uma tarefa[Jacobson 92]

• Uma unidade coerente de funcionalidade provida por um sistema, manifestada por uma seqüência de mensagens trocadas entre o sistema e um ou mais usuários externos (representados como atores), junto com as ações executadas pelo sistema.

Page 2: Apresentação - Caso de Uso e Cenários

Objetivos dos Casos de Uso

• Descrever a funcionalidade do sistema (Requisitos Funcionais)

• Mapear o escopo do sistema, onde explicita a fronteira do sistema.

• Facilitar a comunicação com usuário do sistema.• Gerenciar o projeto.• O RUP o utiliza para guiar todo processo de

desenvolvimento• Mostram apenas o que o sistema faz, e não

como.

Page 3: Apresentação - Caso de Uso e Cenários

Caso de uso: representação gráfica

- Uma elipse com o nome do caso de uso no centroNome = Verbo + Substantivo (indicação de ação)

Page 4: Apresentação - Caso de Uso e Cenários

Ponte entre Requisitos e Análise

Page 5: Apresentação - Caso de Uso e Cenários

Ator

• Constituem as entidades que interagem com o ambiente do sistema o Pessoas ou outros sistemas (de hardware ou software)

que interagem com o sistema em desenvolvimento

• Definem um papel particular (uma mesma entidade pode desempenhar diferentes papéis)

• São sempre externos ao sistema• O sistema será descrito através de vários casos de

uso que são executados por um número de atores

Page 6: Apresentação - Caso de Uso e Cenários

Ator: representação gráfica

Page 7: Apresentação - Caso de Uso e Cenários

Diagramas de Caso de Uso

• Introduzida por Jacobson em 1994 para visualização dos casos de uso

• Esse diagrama é parte da UML

• Mostram um conjunto de casos de uso, atores e seus relacionamentos

• Indicam a forma como o sistema interage com as entidades externas

Page 8: Apresentação - Caso de Uso e Cenários

Diagrama de Caso de Uso : representação gráfica

Page 9: Apresentação - Caso de Uso e Cenários

Como encontrar atores ecasos de uso?

Page 10: Apresentação - Caso de Uso e Cenários

Como encontrar atores?

• Quem usa o sistema?

• Quem instala/mantém o sistema?

• Quem inicia/desliga o sistema?

• Que outros sistemas usam o sistema?

• Quem recebe informação do sistema?

• Quem provê informação ao sistema?

Page 11: Apresentação - Caso de Uso e Cenários

Como encontrar casos de uso?

• Que funções o ator vai querer do sistema?• O sistema armazena informações? Que

informações atores irão criar, ler, atualizar ou apagar?

• O sistema precisa notificar o ator sobre mudanças no seu estado interno?

• Existe algum evento externo que o sistema precisa saber? Que ator informa o sistema desses eventos?

Page 12: Apresentação - Caso de Uso e Cenários

Fluxo de Eventos• Especifica o comportamento de um caso de uso• É uma seqüência de comandos declarativos

que descreve as etapas de execução de um Caso de Uso

• Permanece focado no domínio do problema e não em sua solução

• Pode conter testes condicionais e iterações• Contém informações relativas:

– Às condições de início e término do caso de uso– Quais os atores interessados no sistema– Como o caso de uso interage com esses atores

Page 13: Apresentação - Caso de Uso e Cenários

Fluxo de Eventos• O fluxo de eventos de um caso de uso é

composto por:– Um Fluxo Básico - descreve a funcionalidade

principal do caso de uso, quando nenhum desvio é tomado

– Zero ou Mais Fluxos Alternativos - descrevem desvios pré-definidos do fluxo básico

• Esses fluxos podem ser especificados através de:– Descrição textual informal– Texto semi-formal (através de pré-, pós-

condições e invariantes)– Pseudo-código– Ou uma combinação destes

Page 14: Apresentação - Caso de Uso e Cenários

Exemplo (Fluxo Básico do caso de uso Comprar

Produtos)Descrito em pseudo-código:1. O cliente chega ao ponto de vendas com os

produtos da compra2. Para cada produto trazido pelo cliente:

a) O atendente registra o código e a quantidade do produtob) O sistema determina o preço do produto e o adiciona à

compra

3. O atendente finaliza a compra 4. O sistema calcula e apresenta o total...

Page 15: Apresentação - Caso de Uso e Cenários

Exemplo (Fluxo Básico de Eventos – Cont...)

...5. O atendente informa ao cliente sobre o total da

compra e pergunta qual a forma de pagamento6. Se (dinheiro) forma de pagamento = “dinheiro”7. O atendente registra a quantia recebida8. O sistema mostra o troco e gera o recibo9. O atendente deposita o dinheiro, devolve o troco e

entrega o recibo de compra10. O sistema registra o final da transação

Page 16: Apresentação - Caso de Uso e Cenários

Exemplo (Fluxos Alternativos de Eventos)Descrições textuais:

1. No passo 2 do fluxo básico, pode haver um produto com um código inválido. Nesse caso, o sistema avisará que o código fornecido é inválido e pede que o atendente registre o próximo produto. Vá para o passo 2 do fluxo básico.

2. No passo 6, o cliente pode escolher pagar com cartão de crédito ou débito.Neste caso, o atendente passa o cartão e o cliente digita a senha.Se houver, vá para o passo 6 do fluxo básico.

3. A qualquer momento, o atendente pode cancelar a transação. Nesse caso, as informações referentes à compra são descartadas.

Page 17: Apresentação - Caso de Uso e Cenários

Cenários• Em UML significa um caminho através de um

caso de uso.• Uma instância de um caso de uso• Seqüência de passos que descreve uma interação

• Exemplo (Sacar dinheiro):– Saque com sucesso– Tentativa de saque MAS senha incorreta– Tentativa de saque MAS saldo insuficiente

Page 18: Apresentação - Caso de Uso e Cenários

Caso de Uso x Cenários• Um caso de Uso não é um cenário,

mas pode encapsular um conjunto de cenários

• Cada cenário é uma instância de um caso de uso

• Para cada caso de uso temos, no mínimo, um cenário para o fluxo normal (cenário principal) e outros para cada fluxo excepcional (cenários secundários).

Page 19: Apresentação - Caso de Uso e Cenários

Formato de Documentação de Casos

de Uso• Não existem padrões na indústria

ou na literatura para sua formatação

• Deve-se incluir informações que facilitem a comunicação entre os clientes e a equipe de desenvolvimento do sistema

Page 20: Apresentação - Caso de Uso e Cenários

Formato de Documentação de Casos

de Uso (Modelo mais usado)• Nome do Caso de Uso

• Breve descrição• Ator (principal)• Prioridade (ex: Essencial, Importante, Desejável)• Pré-Condições• Pós-Condições• Fluxo de eventos:

– Fluxo de evento principal– Fluxos secundários: alternativos e de exceção

• Requisitos Não-Funcionais Específicos

Page 21: Apresentação - Caso de Uso e Cenários

Relacionamento entre casos de uso

• Os casos de uso podem ser organizados por meio de relacionamentos

• A UML disponibiliza três tipos:

• generalização

• inclusão

• extensão

Page 22: Apresentação - Caso de Uso e Cenários

Generalização

• É um relacionamento de generalização/especialização• Os casos de uso especializados herdam a estrutura do caso

de uso generalizado• O supertipo contém cenários mais especializado, particular

a cada um deles• Os subtipos contém cenários mais especializados, particular

a cada um deles• Os cenários comuns a mais de um caso de uso é adaptado

em um caso de uso generalizado

Page 23: Apresentação - Caso de Uso e Cenários

Generalização• Quando usar?

Quando você estiver descrevendo comportamentos semelhantes entrecasos de uso, mas algum deles faz um pouco mais que o outro.

Exemplo:

Page 24: Apresentação - Caso de Uso e Cenários

Inclusão• Um caso de uso incorpora explicitamente o

comportamento de outro caso de uso, evitando assimrepetições de descrição de fluxos.

• O cenário comum a mais de um caso de uso é captado em um outro– concentra o serviço em um caso de uso base a ser utilizados por

outros– evita-se descrever a mesma seqüência de passos a vários casos de

uso

• Utiliza o estereótipo <<include>> para expressar esse tipo de relacionamento

Page 25: Apresentação - Caso de Uso e Cenários

Inclusão• Quando usar?

Quando houver repetição entre casos de uso e você desejar evitar esta repetição

Exemplo:

Page 26: Apresentação - Caso de Uso e Cenários

Extensão• É usado para descrever cenários opcionais de um

caso de uso– os casos de uso descrevem cenários que sempre

acontecerão no sistema– os casos de uso estendidos ocorrerão em uma situação

específica– concentra-se essa seqüência em um caso de uso público

• Utiliza o estereótipo <<extend>>para expressar esse tipo de relacionamento

Page 27: Apresentação - Caso de Uso e Cenários

Extensão• Quando usar?

Quando quiser descrever uma variação do comportamento normal.• partes opcionais de casos de uso• cursos alternativos e complexos que raramente ocorrem

Exemplo:

Page 28: Apresentação - Caso de Uso e Cenários

Fluxo de Requisitosno RUP

Page 29: Apresentação - Caso de Uso e Cenários

Atividades e Responsáveis

Page 30: Apresentação - Caso de Uso e Cenários

Localizar Atores e Casos de Uso• Objetivos

Delimitar o sistemaDestacar os atores que irão interagir com o sistemaDestacar os casos de uso do sistemaDefinir glossário com os principais termos

• Processo Identificar os Atores Identificar Casos de UsoDescrever Caso de Uso de forma resumidaCriar Diagramas de Caso de UsoDescrever os diagramas (Descrição Analítica)

Page 31: Apresentação - Caso de Uso e Cenários

Priorizar os Casos de uso• Objetivos

Definir em quais iterações os Casos de Uso serão desenvolvidos

Definir quais Casos de Uso participarão da visão arquitetural do Modelo de Caso de Uso

• Processo Identificar os Casos de Usos com mais riscos e os mais

significantesAlimentar a Visão Arquitetural dos diagramas de Caso de

Uso, com os casos de usos mais importantesAlocar os Casos de Uso as iterações definindo suas

prioridades dentro de cada uma delas.

Page 32: Apresentação - Caso de Uso e Cenários

Detalhar Casos de Uso

• ObjetivosDescrever o fluxo de eventos de cada caso de uso

• ProcessoEntrevistar os usuários (atores) que estão relacionados com

cada um dos casos de usoDescrever detalhadamente os passos que compõem o fluxo

de evento do use case (Cada passo deve ter um objetivo claro)

Revisar o detalhamento do caso de uso com os usuáriosRefinar a descrição dos casos de uso

Page 33: Apresentação - Caso de Uso e Cenários

Estruturar o Modelo de Caso de Uso

• ObjetivosOtimizar o modelo de caso de uso

• Processo Identificar descrições de funcionalidades comuns.

– Extrair tais funcionalidades e criar um use case mais específico que possa ser usado pelos demais <<include>>.

Reuso de use cases – Herança(<<Generalization>>) ou Factoring(<<include>>)

entre casos de uso. Identificar descrições de funcionalidades adicionais ou

opcionais.Extrair as extensões adicionais ou opcionais para um use case

mais específico <<extend>> Ex:Condições, Erros, Alternativas