CIn-UFPECIn-UFPE 11©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Modelagem de Requisitos com Casos de Uso
CIn-UFPECIn-UFPE 22©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
ObjetivosObjetivos
Descrever em detalhe a técnica de Modelagem de Requisitos com Casos de Uso
Apresentar um modelo de documento de requisitos Discutir o uso do diagrama de atividades na modelagem
de casos de uso
CIn-UFPECIn-UFPE 33©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Conceitos Básicos
CIn-UFPECIn-UFPE 44©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Principais Tipos de RequisitosPrincipais Tipos de Requisitos
Não-Funcionais Atributos ou qualidades do sistema
Funcionais Expressam funcionalidades do sistema
CIn-UFPECIn-UFPE 55©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Alguns Tipos de Requisitos Não-FuncionaisAlguns Tipos de Requisitos Não-Funcionais
Usabilidade (Facilidade de uso) Confiabilidade Desempenho Segurança Distribuição Adequação a Padrões Restrições de Hardware e Software
CIn-UFPECIn-UFPE 66©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Caso de usoCaso de uso
É uma forma específica de uso do sistema através da execução de alguma de suas funcionalidades.
Uma unidade coerente de funcionalidade provida por um 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.
CIn-UFPECIn-UFPE 77©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Caso de uso (continuação)Caso de uso (continuação)
Descrevem o que acontece dentro do sistema. Ajudam muito na comunicação entre clientes e
desenvolvedores. Mostram apenas o que o sistema faz, e não como.
Capturam o comportamento pretendido para um sistema, sem a necessidade de especificar como esse comportamento será implementado.
CIn-UFPECIn-UFPE 88©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Caso de uso: representação gráficaCaso de uso: representação gráfica
Solicitarextrato Solicitar saldo
CIn-UFPECIn-UFPE 99©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
AtoresAtores
Constituem as entidades que interagem com o ambiente do sistema Pessoas ou outros sistemas (de hardware ou software) que
interagem com o sistema em desenvolvimento Definem um papel particular 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
CIn-UFPECIn-UFPE 1010©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Ator: representação gráficaAtor: representação gráfica
Cliente Caixa
CIn-UFPECIn-UFPE 1111©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Atores x usuários do sistemaAtores x usuários do sistema
Uma mesma pessoa pode desempenhar diferentes papéis
Carlos comoprofessor
Professor Estudante
Carlos comoestudante
Carlos
CIn-UFPECIn-UFPE 1212©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
DDiagrama de casos de usoiagrama de casos de uso
Diagrama com os casos de uso do sistema e atores relacionados
Facilitam o entendimento do sistema mostrando a sua “visão externa”.
A coleção de casos de uso deve especificar todas as formas existentes de uso do sistema
Diagrama de casos de uso
CIn-UFPECIn-UFPE 1313©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
DDiagrama de casos de uso:iagrama de casos de uso: representação gráficarepresentação gráfica
Cliente
Sacar dinheiro
Realizar depósito
Transferir entre contas
Uma associação entre um ator e um caso de uso indica que há uma comunicação, possivelmente com envio e recepção de mensagens.
CIn-UFPECIn-UFPE 1414©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
CenáriosCenários
Em UML significa um caminho através de um caso de uso.
Uma instância de um caso de uso Exemplo (Sacar dinheiro):
Saque com sucesso Tentativa de saque MAS senha incorreta Tentativa de saque MAS saldo insuficiente
CIn-UFPECIn-UFPE 1515©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Requisitos Não-Funcionais Requisitos Não-Funcionais xx Casos de Uso Casos de Uso
Requisitos não funcionais podem ser: Específicos: associados a um caso de uso específico Genéricos: associados a vários casos de uso ou ao sistema com
um todo Para serem atendidos podem gerar novos casos de uso
CIn-UFPECIn-UFPE 1616©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Especificação de Caso de UsoEspecificação de Caso de Uso
Identificador do caso de uso Breve Descrição Ator (opcional) Prioridade Pré condições Pós condições Fluxo de eventos:
Fluxo de eventos principal Fluxos secundários: alternativos e de exceção
Requisitos Não-Funcionais Específicos
CIn-UFPECIn-UFPE 1717©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Modelo de casos de uso
AtoresCasos de uso
Especificações de casos de uso
Modelo de casos de usoModelo de casos de uso
CIn-UFPECIn-UFPE 1818©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Pacotes de Casos de UsoPacotes de Casos de Uso
Servem para agrupar casos de uso relacionados
Critérios para agrupamento: ator funcionalidades correlatas processos “um por todos e todos por um”
CIn-UFPECIn-UFPE 1919©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Um Modelo de Documento de RequisitosUm Modelo de Documento de Requisitos Introdução
Objetivos do documento Público ao qual se destina Termos e acrônimos Referências
Descrição geral do sistema Abrangência e sistemas relacionados Descrição dos usuários
Casos de uso Diagrama Especificações
Requisitos não funcionais genéricos
CIn-UFPECIn-UFPE 2020©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Como encontrar atores eComo encontrar atores ecasos de uso?casos de uso?
CIn-UFPECIn-UFPE 2121©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Como encontrar atores?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?
CIn-UFPECIn-UFPE 2222©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Como encontrar casos de uso?Como encontrar casos de uso?
Atores são fundamentais para a descoberta dos casos de uso
Pergunte 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?
CIn-UFPECIn-UFPE 2323©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Especificação Detalhadados Casos de Uso
CIn-UFPECIn-UFPE 2424©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Quando e por que realizá-las? Quando e por que realizá-las?
Quando? após fazer levantamento dos principais casos de uso do sistema
Por que? descrever detalhes dos casos de uso descrever fluxos de eventos e outras propriedades uniformizar entendimento entre clientes, usuários e equipe de
desenvolvimento
CIn-UFPECIn-UFPE 2525©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Identificação do Identificação do ccaso de aso de uusoso
Deve ser única! Não deve mudar nunca Pois casos de uso podem ser referenciados por
seu identificador
CIn-UFPECIn-UFPE 2626©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Breve descrição do caso de usoBreve descrição do caso de uso
Dar uma idéia do propósito do caso de uso, do seu objetivo
Deve ser feita ao se identificar o caso de uso, para evitar mal-entendidos
2 ou 3 linhas!
CIn-UFPECIn-UFPE 2727©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Prioridade de casos de Prioridade de casos de uusoso
Essencial para gerenciar os requisitos É preciso definir prioridade de todos os casos de
uso Exemplos de prioridade:
Essencial Importante Desejável
CIn-UFPECIn-UFPE 2828©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Pré e pós condiçõesPré e pós condições
O que deve ser verdade antes e depois da realização do caso de uso!
CIn-UFPECIn-UFPE 2929©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Pré e pós condições: exemplosPré e pós condições: exemplos
Caso de uso “Entregar pedido” Pré condição: os itens do pedido devem existir em estoque Pós condição: os itens enviados devem ser abatidos do estoque
Caso de uso “Recadastrar CPF” Pré condição: o usuário deve possuir um CPF Pós condição: a situação do contribuinte é atualizada
CIn-UFPECIn-UFPE 3030©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Fluxo de eventos básico/principalFluxo de eventos básico/principal
Série de passos que compõem um caso de uso Concentre-se inicialmente na funcionalidade
básica/central do caso de uso Pense nos fluxos secundários depois!
CIn-UFPECIn-UFPE 3131©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Exemplo de um fluxo básicoExemplo de um fluxo básico
Caso de uso “Sacar dinheiro”1. O cliente passa o seu cartão2. Digita sua senha3. Digita o valor do saque4. O sistema verifica se há saldo suficiente5. O saldo é debitado da conta do cliente6. O dinheiro é entregue ao cliente
CIn-UFPECIn-UFPE 3232©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Exemplo de um fluxo básicoExemplo de um fluxo básico
Caso de uso “Sacar dinheiro”
MAS... E se a senha não conferir? E se não houver saldo? E se não houver dinheiro suficiente na máquina?
CIn-UFPECIn-UFPE 3333©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Fluxos secundáriosFluxos secundários
Só devem ser analisados e descritos após a descrição dos fluxos básicos. situações especiais (ex: desconto para um cliente) situações de erro
CIn-UFPECIn-UFPE 3434©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Uso do diagrama de atividades na especificação dos fluxos de eventos
CIn-UFPECIn-UFPE 3535©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Diagrama de atividadesDiagrama de atividades
Usados para representar graficamente o fluxo de eventos (fluxo básico + fluxos alternativos)
São semelhantes aos antigos fluxogramas. São muito usados para modelar atividades concorrentes.
Às vezes um diagrama fala mais que 1000 palavras!
CIn-UFPECIn-UFPE 3636©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Diagrama de atividadesDiagrama de atividades
É composto de: atividades transições decisões
CIn-UFPECIn-UFPE 3737©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Estado inicial
Verifica senha
Libera dinheiro
Termina transação eImprime recibo
Manipula senha incorreta
[ incorreta ]
[ correta ]
Pede valor
condição deguarda
atividade
[ dinheiro disponível ]
[ dinheiro não disponível ]
Prepara paraImprimir recibo
[ resolvido ]
[ não resolvido ]
Exemplo: diagrama de atividades para o caso de uso Exemplo: diagrama de atividades para o caso de uso Sacar dinheiroSacar dinheiro
transição
concorrência
Estado final
decisão
sincronização de atividades
CIn-UFPECIn-UFPE 3838©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Estruturação do Modelode Casos de Uso
CIn-UFPECIn-UFPE 3939©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Por que estruturar o modelo?Por que estruturar o modelo?
Extrair descrições de funcionalidades genéricas e compartilhadas que podem ser usadas por mais de um caso de uso.
Extrair descrições de funcionalidades adicionais que possam estender descrições específicas
Facilitar o entendimento do modelo
CIn-UFPECIn-UFPE 4040©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Generalização de AtoresGeneralização de Atores
É possível definir tipos gerais de atores e especializá-los usando o relacionamento de especialização
Vendedor Realizar venda
Estabelecer créditoSupervisor
CIn-UFPECIn-UFPE 4141©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Generalização de Atores: outro exemplo Generalização de Atores: outro exemplo
Aluno
Alunotempo integral
Alunotempo parcial
CIn-UFPECIn-UFPE 4242©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Relacionamentos entre Casos de UsoRelacionamentos entre Casos de Uso
Inclusão Extensão Generalização
CIn-UFPECIn-UFPE 4343©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Inclusão de casos de usoInclusão de casos de uso
Use inclusão quando houver repetição entre casos de uso e você desejar evitar esta repetição.
Um caso de uso incorpora explicitamente o comportamento de outro caso de uso, evitando assim repetições de descrição de fluxos.
CIn-UFPECIn-UFPE 4444©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Inclusão de casos de uso: exemploInclusão de casos de uso: exemplo
Efetuar pagamento
Vendedor
Realizar pedido
<<includes>>
CIn-UFPECIn-UFPE 4545©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Inclusão de casos de uso: outro exemploInclusão de casos de uso: outro exemplo
Validar cliente
Cliente
Sacar
<<includes>>
CIn-UFPECIn-UFPE 4646©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Exemplo de inclusão: validação de cliente no Exemplo de inclusão: validação de cliente no sistemasistema
Use Case: SacarO cliente seleciona a opção “sacar”O cliente informa o valor a ser sacadoincludes Validar clienteO cliente recebe o dinheiro
Use Case de Inclusão: Validar ClienteO cliente informa a senha e passa o cartãoO sistema valida a senha e os dados do cartão
CIn-UFPECIn-UFPE 4747©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Extensão de casos de usoExtensão de casos de uso
Use extensão quando quiser descrever uma variação do comportamento normal. partes opcionais de use cases cursos alternativos e complexos que raramente ocorrem
Solicitar catálogo
Vendedor
Realizar pedido
<<extends>>
CIn-UFPECIn-UFPE 4848©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Generalização de casos de usoGeneralização de casos de uso
Relaciona um Use Case especializado a um mais geral O filho herda os atributos, operações e seqüências de
comportamento dos pais O filho pode adicionar e redefinir o comportamento do pai O filho pode substituir o pai em qualquer lugar que ele
aparece
CIn-UFPECIn-UFPE 4949©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Generalização de casos de uso: exemploGeneralização de casos de uso: exemplo
Validar cliente
Verificar password Scan da retina
CIn-UFPECIn-UFPE 5050©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Diagrama de casos de uso estruturado: outro Diagrama de casos de uso estruturado: outro exemploexemplo
Estudante
Secretária
<<estende>> Histórico dosemestre atual
Solicitar histórico dedo curso
Solicitarhistórico
<<estende>>
Verificardependências
Matricularaluno<<inclui>>
Sistema de controlede pre-requisitos
CIn-UFPECIn-UFPE 5151©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Diagrama de casos de uso estruturado: Diagrama de casos de uso estruturado: outro exemplooutro exemplo
Mostrar dados da consulta
Informar dados do Qualiti Card
<<include>>
Operadora do DOC
Operadora cartao de créditoRealizar transferencia
Consultar cheques
Solicitar taloes de cheque
Desbloquear taloes de cheque
Efetuar Login Alterar senha
Consultar saldo
<<include>>
Consultar extrato
<<include>>
Consultar Cartão
<<include>>
Realizar DOC
Efetuar pagamento do Cartão
<<include>>
Habilitar acesso a conta
Cliente