Post on 06-Jun-2015
description
Casos de Uso
Profª Diana F. AdamattiAnálise e Projeto de Software
Universidade Católica de Pelotas
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
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.).
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]
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.
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.
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?
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
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.
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;
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?
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
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.
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;
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?
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
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.
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.
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
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
Diagrama de Casos de Uso: Elementos (3/5)
• Relaciona atores com casos de uso
• Relaciona casos de uso
• Relacionamento / Associação
Relacionamento
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
Diagrama de Caso de Uso: Elementos (5/5)
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.
Editar
Criar novo
Salvar
Imprimir
Usuário
Abrir existente
Casos de uso mais detalhados para o Powerpoint.
Diagrama de Caso de Uso: Exemplo 2
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
Exemplo de Caso de Uso - ATM (2/2)
Cliente
Transferirdinheiro
Sacardinheiro
Consultarsaldo
Valor deresultado
observável
Exemplo ATM: mais uma versão
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.
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
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.
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.
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.
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)
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?
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.
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.
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.
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)
Inclusão, Extensão e Generalização
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
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). ...
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.
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.
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.
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.
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
Especialização (2/2)
AtendimentoAtendimentode urgência
ClienteClientecomercial
Pode ser aplicada a atores também!
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
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.
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
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.
Exemplos de casos de uso(Relacionamentos em um hospital)
Exemplo 1
Inclusão: Exemplo
Sacardinheiro
Consultarsaldo
Autenticarusuário
<< include >> << include >>