aula3 casos de uso

55
Casos de Uso Profª Diana F. Adamatti Análise e Projeto de Software Universidade Católica de Pelotas

Upload: diana-adamatti

Post on 06-Jun-2015

15.960 views

Category:

Documents


3 download

DESCRIPTION

Aula

TRANSCRIPT

Page 1: Aula3 casos de uso

Casos de Uso

Profª Diana F. AdamattiAnálise e Projeto de Software

Universidade Católica de Pelotas

Page 2: Aula3 casos de uso

Introdução (1/2)

• Cenários de Uso (Casos de Uso)– Técnica oriunda da dramaturgia– Descrição gráfica ou textual de situações

atuais ou desejadas do sistema– Cenas

• Atores• Ações

Page 3: Aula3 casos de uso

Introdução (2/2)

• Uma forma de estruturar requisitos• Modelos gráficos e linguagem natural baseada;• Representam o que os usuários podem fazer no

sistema;• São independentes do método de análise (OO,

estruturado, etc.).

Page 4: Aula3 casos de uso

Casos de Uso: conceitos

• Também chamado Use Case• “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]

• “Um caso de uso especifica um comportamento de um sistema segundo uma perspectiva externa e é uma descrição de um conjunto de seqüência de ações realizadas pelo sistema para produzir um resultado de valor observável por um ator.” [Grady Booch]

Page 5: Aula3 casos de uso

Casos de Uso

• É uma iteração típica entre sistema e um agente externo chamado ATOR

• Captura função visível ao ATOR

• A funcionalidade do sistema é definida por um conjunto de casos de uso

• Um caso de uso mapeia ATORES em funções. • ATORES não precisam ser pessoas, podem

ser outros sistemas ou dispositivos.

Page 6: Aula3 casos de uso

Casos de Uso: Objetivos

• Caracterizar os requisitos do sistema:• Identificar entidades relevantes, como se

relacionam e como se comportam.• Ser passível de compreensão tanto por

desenvolvedores como por usuários;• Descrever o sistema sob uma perspectiva

externa (o que ele faz, não como faz) – abordagem caixa preta;

• Ser completo, consistente e não ambíguo.

Page 7: Aula3 casos de uso

Casos de Uso: Objetivos

Devem responder (Jacobson):• Quem são os atores?• Quais são seus objetivos?• Que pré-condições existem?• Quais as tarefas principais realizadas?• Que exceções devem ser consideradas?• Que variações são possíveis nas interações?• Que informações do sistema serão adquiridas,

produzidas ou alteradas?

Page 8: Aula3 casos de uso

Casos de Uso: Componentes

• Atores: é um papel que estimula/solicita ações/eventos do sistema e recebe reações

• Casos de Uso: documento narrativo que descreve seqüência de eventos feitos pelo sistema por um ator no uso do sistema

• Sistema: sistema a ser modelado

Page 9: Aula3 casos de uso

Passos

1. Identificação dos atores;2. Captura dos casos de uso;3. Criação de diagramas de casos de uso;4. Elaboração da descrição de cada caso de uso;5. Análise de possíveis associações entre casos

de uso;6. Separação dos casos de uso em subsistemas.

Page 10: Aula3 casos de uso

Identificando Atores (1/2)

• Um ator é um papel específico que um usuário pode desempenhar;

• Um mesmo usuário pode desempenhar vários papéis, cada hora sendo um ator diferente.

• Modela qualquer agente externo que possa interagir com o sistema:– Usuários, outros sistemas, dispositivos, etc.;

• Delimitam o escopo do sistema;

Page 11: Aula3 casos de uso

Identificando Atores (2/2)

• Quem utiliza o sistema?

• Quem instala e mantém o sistema?

• Que outros sistemas/dispositivos utilizam o sistema ou são utilizados por ele?

• Quem obtém informação do sistema?

• Quem provê informação ao sistema?

• O que o sistema faz automaticamente?

Page 12: Aula3 casos de uso

Atores: Exemplo

– Cliente: pessoa que compra produtos– Funcionário: pessoa que realiza operações

específicas na loja e atendimento ao cliente– Transportador: empresa que entrega o produto– Sistema de pagamento: sistema que debita valor da

conta do cartão de crédito do cliente– Sistema de estoque: sistema que controla o estoque

de produtos na loja

Page 13: Aula3 casos de uso

Passos

1. Identificação dos atores;2. Captura dos casos de uso;3. Criação de diagramas de casos de uso;4. Elaboração da descrição de cada caso de uso;5. Análise de possíveis associações entre casos

de uso;6. Separação dos casos de uso em subsistemas.

Page 14: Aula3 casos de uso

Captura dos Casos de Uso

• Feita durante a concepção (conversas iniciais) e

elicitação (entrevistas, etc.);• Identifique as interações discretas entre

usuários e sistema;• Dê um nome a cada uma delas;• Escreva uma descrição textual pequena.• Geralmente são identificados em paralelo com a

identificação dos atores;

Page 15: Aula3 casos de uso

Identificando Casos de Uso (1/3)

• Em geral, difícil decidir entre um ou vários use cases

• Por exemplo, seriam use cases– Inserir cartão em um Caixa Automático?– Entrar com a senha?– Receber o cartão de volta?

Page 16: Aula3 casos de uso

Identificando Casos de Usos (2/3)

• Representar valor observável para ator

• Pode-se determinar– De interações (seqüência de ações) com o

sistema que resultam valores para atores– Satisfaz um objetivo particular de um ator que

o sistema deve prover

Page 17: Aula3 casos de uso

Passos

1. Identificação dos atores;2. Captura dos casos de uso;3. Criação de diagramas de casos de uso;4. Elaboração da descrição de cada caso de uso;5. Análise de possíveis associações entre casos

de uso;6. Separação dos casos de uso em subsistemas.

Page 18: Aula3 casos de uso

Diagramas de Casos de Uso

• Representam atores, casos de uso e suas associações;• Uma associação entre um ator e um caso de uso significa que estímulos podem ser enviados entre atores e casos de uso, que se comunicam entre si;• Provêem uma visão geral das funcionalidades do sistema.

Page 19: Aula3 casos de uso

Diagrama de Casos de Uso: Elementos (1/5)

• Caso de Uso• Serviço usado por um

ou mais atores• OU Seqüência de

ações, executada pelo sistema, que gera um resultado

Função

Ação: Procedimento computacional/algorítmico atômico

Page 20: Aula3 casos de uso

Diagrama de Casos de Uso: Elementos (2/5)

• Alguém ou alguma coisa (fora do sistema) que interage com o sistema– Estimula/solicita ações/eventos

do sistema e recebe reações

• Agentes externos ao sistema

Emissor/Receptor

Um Ator pode ser um outro sistema que interage com o sistema que está sendo especificado

• Ator

Page 21: Aula3 casos de uso

Diagrama de Casos de Uso: Elementos (3/5)

• Relaciona atores com casos de uso

• Relaciona casos de uso

• Relacionamento / Associação

Relacionamento

Page 22: Aula3 casos de uso

Diagrama de Caso de Uso: Elementos (4/5)

FunçãoEmissor

FunçãoReceptor

Ato

r Part

icu

lar

Resu

ltad

o d

e V

alo

r O

bse

rvável

Page 23: Aula3 casos de uso

Diagrama de Caso de Uso: Elementos (5/5)

Page 24: Aula3 casos de uso

Caso de uso em alto nível para o Powerpoint

Usuário Criar apresentação

Diagrama de Caso de Uso: Exemplo 1

• Embora ele seja um caso de uso válido para o Powerpoint, e ele capture completamente a interação do usuário com o Powerpoint, é muito pouco detalhado.

Page 25: Aula3 casos de uso

Editar

Criar novo

Salvar

Imprimir

Usuário

Abrir existente

Casos de uso mais detalhados para o Powerpoint.

Diagrama de Caso de Uso: Exemplo 2

Page 26: Aula3 casos de uso

Exemplo de Caso de Uso - ATM (1/2)

• Cliente de banco pode usar um caixa automático para– sacar dinheiro, transferir dinheiro ou consultar

o saldo da conta

• Ator: Cliente

• Use cases: Sacar dinheiro, transferir dinheiro e consultar saldo

Page 27: Aula3 casos de uso

Exemplo de Caso de Uso - ATM (2/2)

Cliente

Transferirdinheiro

Sacardinheiro

Consultarsaldo

Valor deresultado

observável

Page 28: Aula3 casos de uso

Exemplo ATM: mais uma versão

Page 29: Aula3 casos de uso

Passos

1. Identificação dos atores;2. Captura dos casos de uso;3. Criação de diagramas de casos de uso;4. Elaboração da descrição de cada caso de uso;5. Análise de possíveis associações entre casos

de uso;6. Separação dos casos de uso em subsistemas.

Page 30: Aula3 casos de uso

Descrição do Caso de Uso

• Define o que o sistema faz quando o caso de uso é realizado

• Cada caso de uso representa um fluxo de eventos específico (seqüência de ações)

FunçãoEmissor

Passo 1Passo 2…Passo N

Descrição

Page 31: Aula3 casos de uso

Descrição dos Casos de Uso

• O diagrama é insuficiente para dizer o que cada caso de uso faz;

• Deve-se descrever textualmente o fluxo de eventos de cada caso separadamente;

• Esta tarefa deve ser iniciada após alguma estabilidade dos casos de uso, para evitar perda de tempo.

Page 32: Aula3 casos de uso

Descrição de Casos de Uso

Deve conter:– Nome do caso de uso;– Descrição breve / objetivos;– Pré-condições e pós-condições;– Entradas e saídas de dados;– Fluxos (normal, alternativos, cenários);– Classes/entidades participantes;– Restrições de domínio;– Requisitos não-funcionais associados;– Outras observações.

Page 33: Aula3 casos de uso

Exemplo de Descrição de Casos de Uso

Um esboço inicial sobre “Sacar dinheiro” seria:

1. O use case inicia quando o Cliente insere um cartão no CA. Sistema lê e valida informação do cartão

2. Sistema pede a senha. Cliente entra com a senha. Sistema valida a senha.

3. Sistema pede seleção do serviço. Cliente escolhe “Sacar dinheiro”.4. Sistema pede a quantia a sacar. Cliente informa.5. Sistema pede seleção da conta (corrente, etc). Cliente informa.

6. Sistema comunica com a rede para validar a conta, senha e o valor a sacar.

7 . Sistema comunica com a rede para validar a conta, senha e o valor a sacar.

8 . Sistema entrega quantia solicitada.

Page 34: Aula3 casos de uso

Descrição de Casos de Uso

• Na descrição do que o sistema faz através de fluxos de eventos completos– Surgem caminhos alternativos– Casos diferentes a considerar– Efeitos/valores diferentes a produzir

• Eventualmente descreve todos esses caminhos possíveis (ou sub-fluxos)

Page 35: Aula3 casos de uso

Fluxo Normal e Fluxo Alternativo

• Curso Normal: mundo perfeito, tudo ocorre como planejado;

• Cursos Alternativos / Excepcionais: exceções, erros, fluxos alternativos, etc.

• Para encontrá-los, análise o curso normal e pergunte, para cada item:– Tem alguma outra ação que pode ser feita?– Tem alguma coisa que pode dar errado?– Existe algum comportamento que pode ocorrer a

qualquer momento?

Page 36: Aula3 casos de uso

Fluxo alternativo: Exemplo

• O ator sai da aplicação;• O ator cancela a operação corrente;• O ator pede ajuda;• O ator provê dados inválidos;• O ator provê dados incompletos;• O ator escolhe uma maneira alternativa de

realizar o caso de uso;• O sistema falha;• O sistema está indisponível.

Page 37: Aula3 casos de uso

Exemplo de Sub-fluxos

Seja o use case Validar usuário– Fluxo principal:

• O use case inicia quando o sistema pede ao Cliente a senha. Cliente entra com senha. Sistema verifica se a senha é válida. Se a senha é válida, sistema confirma e termina o use case.

– Fluxo excepcional:• Cliente pode cancelar a transação a qualquer momento

pressionando a tecla ESC, reiniciando o use case. Nenhuma modificação é feita na conta do Cliente.

– Fluxo excepcional:• Se Cliente entra com senha inválida, o use case reinicia.

Page 38: Aula3 casos de uso

Passos

1. Identificação dos atores;2. Captura dos casos de uso;3. Criação de diagramas de casos de uso;4. Elaboração da descrição de cada caso de uso;5. Análise de possíveis associações entre casos

de uso;6. Separação dos casos de uso em subsistemas.

Page 39: Aula3 casos de uso

Associações entre Casos de Uso

• Há três possibilidades de Relacionamento entre casos de uso:– Inclusão (include)– Extensão (extend)– Generalização/Especialização

(Generalization)

Page 40: Aula3 casos de uso

Inclusão, Extensão e Generalização

Page 41: Aula3 casos de uso

Inclusão (1/2)

• Um caso de uso incorpora explicitamente o comportamento de outro;

• Funcionalidade comum é separada em um caso que é reutilizado por outros.

Tanto “Efetuar Saque” quanto “Informar saldo” necessitam da senha, então cria-se um novo caso de uso “Validar cliente” e incluí-lo

Page 42: Aula3 casos de uso

Inclusão (2/2)

• Descrição de Consultar saldo– Fluxo de Eventos Principal:

• include (Autenticar usuário). Sistema pede a Cliente que selecione tipo de conta (corrente, etc). ...

Page 43: Aula3 casos de uso

Extensão (1/3)

• Use case pode ser estendido por outro– Extensão de funcionalidade/Caso excepcional

• Um caso de uso base incorpora implicitamente o comportamento de um outro caso de uso em um local especificado;

• Permite capturar os requisitos funcionais de um sistema de forma incremental.

Page 44: Aula3 casos de uso

Extensão (2/3)

• Pode ser usado para modelar:

• Partes opcionais de casos de uso;

• Cursos complexos e alternativos;

• Subseqüências que são executadas apenas em certos casos;

• A inserção de diversos casos de uso diferentes dentro de um outro.

Page 45: Aula3 casos de uso

Extensão (3/3)

AtendimentoAtendimentode urgência

<< extend >>

Descrição de AtendimentoFluxo de Eventos Principal:

Colete os itens do pedido. (urgente). Submeta pedido para processamento.

Page 46: Aula3 casos de uso

Extensão x Inclusão

• Extensão:– Quando estiver descrevendo uma variação de

um curso normal;– O caso estendido conhece o caso base.

• Inclusão:– Quando houver repetição de um mesmo fluxo

em dois ou mais casos de uso e quer se evitar isso;

– O caso base conhece o caso incluído.

Page 47: Aula3 casos de uso

Especialização (1/2)

• Um Caso de Uso pode especializar outro• HERANÇA: Um caso de uso filho herda o

comportamento do caso de uso pai; – Acrescenta ou sobrescreve comportamento do pai e

pode substituir o pai em qualquer lugar que este apareça.

• Especialização permite modelar comportamento de estruturas de aplicação em comum

Page 48: Aula3 casos de uso

Especialização (2/2)

AtendimentoAtendimentode urgência

ClienteClientecomercial

Pode ser aplicada a atores também!

Page 49: Aula3 casos de uso

Exemplo de Caso de Uso

Transação decartão

Clientecorporativo

Clienteindividual

Cliente Instituiçãovendedora

Financeira

Sistema de validação de cartão de crédito

Processafatura

Reconciliatransações

Gerenciaconta

Page 50: Aula3 casos de uso

Separação em Subsistemas

• Facilita o entendimento e a leitura;

• Utiliza-se o ícone de pacote da UML;

• Setas pontilhadas indicam dependência – um pacote solicita serviços de outro.

Page 51: Aula3 casos de uso

Separação em Subsistemas

• Sistema pequeno não demanda estruturação– Exemplo, seis use cases, com dois/três

atores

• Já sistemas maiores requerem princípios de estruturação e organização– Caso contrário, planejamento, atribuição de

prioridades, etc., podem se tornar difíceis

Page 52: Aula3 casos de uso

Ferramenta CASE - UML

• Uma ferramenta CASE (Computer-Aided Software Engineering) auxilia no desenho de diagramas de caso de uso;

• Há várias ferramentas disponíveis;• Recomendamos o Jude UML:• Download em http://jude.change-vision.com;• Versão Community é gratuita.

Page 53: Aula3 casos de uso

Exemplos de casos de uso(Relacionamentos em um hospital)

Page 54: Aula3 casos de uso

Exemplo 1

Page 55: Aula3 casos de uso

Inclusão: Exemplo

Sacardinheiro

Consultarsaldo

Autenticarusuário

<< include >> << include >>