Especificação e Modelagem de Requisitos. Elicitar Requisitos de Produto Especificar casos de uso e...
Transcript of Especificação e Modelagem de Requisitos. Elicitar Requisitos de Produto Especificar casos de uso e...
Especificação e Modelagem de Requisitos
Especificação e Modelagem de Requisitos
Elicitar Requisitos de Produto Especificar casos de uso e validá-los Especificar requisitos não funcionais Analisar e Validar os requisitos
Requisitosp/ Inspeção
Plano e Casos de Teste
Casos de Uso eEsp. Suplementar
Regras de Negócio
GlossárioDocumento de Visão
Analista de Requisitos
Análise dos Requisitos
Trabalha com requisitos incompletosSe preocupa em descobrir problemas Requisitos são enumerados por exemplo, em uma reunião com stakeholders– Quais as inconsistências?– Quais os conflitos?– Tenho que fazer uma nova reunião?
Especificação de Requisitos de Produto
Desenvolvida como uma conseqüência da fase de análise de requisitos– Modelo de Casos de Uso
– Especificação Suplementar
Serve como base para casos de teste– Requisitos funcionais e não funcionais
Modelo de Casos de Uso
O Modelo de Casos de Uso– Especifica em detalhes requisitos do sistema
Emprega – Atores – Casos de Uso
Cliente
Comprar
Ator
Define o que existe do lado de fora do sistema– Ator é uma classe do subsistema mais abrangente que interage
diretamente com o sistema– É algo com comportamento como
• uma pessoa (identificada pelo seu papel)• um sistema computacional• uma organização• um sensor/atuador
Cliente
Caso de Uso
Caso de Uso: – O que deve ser feito pelo sistema– histórias de sucesso e insucesso que suportam o mesmo objetivo– um conjunto de cenários relacionados
Cenário: – uma instância de um Caso de Uso – uma seqüência específica de ações e interações entre atores e sistema
Comprar
Modelo de Casos de Uso
Os atores representam o que interage com o sistemaRepresentam tudo que necessita trocar informação com o sistemaComo estão fora do sistema: não são descritos em detalheAtores são diferentes de usuários: – usuário usa o sistema– ator representa uma certa regra seguida pelo usuário– uma mesma pessoa pode aparecer como instância de
vários atores
Modelo de Casos de Uso
Uma instância de um Ator efetua diversas operações no sistemaQuando um usuário usa o sistema, efetua um seqüência de transações relacionadas em um diálogo com o sistemaEsta seqüência é chamada de Caso de UsoCada Caso de Uso é uma forma específica de usar o sistema Cada execução de um caso de uso pode ser visto como uma instância do Caso de Uso
Modelo de Casos de Uso
Casos de Uso capturam os requisitos funcionaisO conjunto de todos os Casos de Uso especificam a funcionalidade completa do sistemaAgrupar funcionalidades e chamá-las de Casos de Uso facilita o gerenciamento destes requisitos durante ciclo de desenvolvimento
Modelo de Casos de Uso
Caso de Uso– determina um ou mais casos de teste
Do conjunto de casos de uso é possível derivar o Plano de Testes– Garantir adequação do software aos requisitos funcionais
Casos de Uso
Casos de Uso
Discutir com o cliente o que o sistema faráIdentificar quem interage com o sistemaIdentificar que interfaces o sistema terá
Casos de Uso
Tipos e Formatos– Caixa preta– O sistema é descrito em termos de suas responsabilidades– Elementos de software possuem responsabilidades e colaboram com
outros elementos que têm responsabilidades
Casos de Uso
Definindo as responsabilidades do sistema com casos de uso caixa-preta– O que o sistema deve fazer sem decidir como– Estilo caixa-preta
• O sistema deve registrar a venda de cada item– Errado
• O sistema salva no banco de dados.....• O sistema gera um SQL INSERT.......
Casos de Uso
Formato– Breve – um resumo– Casual – formato informal– Totalmente especificado
• Um conjunto de seções que apóiam a sua descrição em detalhe
De posse dos Casos de Uso
Verifique se não há requisitos faltandoVerifique que os desenvolvedores entendem os requisitosVantagem é ter apelo visual dos requisitos mais relevantes do cliente
Elaborando o Modelo de Casos de Uso
Identificando
Nenhum sistema existe isoladamente– interage com atores humanos e/ou autômatos– atores esperam que o sistema se comporte de acordo
com o previsto
Um caso de uso – especifica o comportamento de um sistema (ou de parte
deste)– é a descrição de um conjunto de seqüências de ações– inclui variantes realizadas pelo sistema para produzir um
resultado observável por um ator
Seqüência de ações, executada pelo sistema, que gera um resultado
– De valor observável– E para um ou mais
atoresFunção
Procedimento computacional
Casos de Uso: função – transação/serviço
Caso de Uso: Ator
Alguém ou alguma coisa (fora do sistema) que interage com o sistema
Emissor/Receptor
Caso de Uso
Casos de uso podem ser aplicados para captar o comportamento pretendido – não é necessário especificar como serão implementados– fornecem uma maneira de obter melhor compreensão do sistema– cooperação com usuários e especialistas do domínio da aplicação
Caso de Uso
Executa alguma quantidade tangível de trabalhoSob a perspectiva do ator fornece– um resultado– um novo objeto– alteração de estado de um objeto existente
Caso de Uso
A descrição de um caso de uso define o que o sistema faz quando o caso de uso é realizadoA funcionalidade do sistema é definida por um conjunto de casos de uso, cada um representando um fluxo de eventos específico Além disso, servem para:– verificar o sistema à medida que evolui durante o desenvolvimento
Caso de Uso e Ator
Função
Emissor
Passo 1Passo 2…Passo N
Descrição
Atores
De um modo geral, atores podem ser:– papéis que as pessoas representam nos Casos de
Uso– dispositivos de hardware mecânicos ou elétricos – outros sistemas computacionais– tempo (para representar atividades periódicas)
Atores
Pode-se definir grupos gerais de atores e suas especializações
Funcionários
BoyCaixa
Atores
Os atores estão associados a Casos de Uso
– Ator e Caso de Uso se comunicam
– Enviar e Receber mensagens
Cliente
Caixa
Venda
Casos de Uso
Nomes– Todo caso de uso deve ter um nome que o diferencie dos demais– Expressões verbais ativas– Nomeiam um comportamento do sistema
Exemplo de Caso de Uso
Cliente de banco deseja usar um caixa automático para– sacar dinheiro, transferir dinheiro ou consultar o saldo da conta
Ator: ClienteCasos de Uso: Sacar dinheiro, Transferir dinheiro e Consultar saldo
Exemplo de Caso de Uso
Cliente
Transferirdinheiro
Sacardinheiro
Consultarsaldo
Valor deresultado
observável
Identificando Casos de Uso
Em geral, é difícil decidir entre um ou vários Casos de UsoPor exemplo, seria Caso de Uso:– Inserir cartão em um Caixa Automático?– Digitar a senha?– Receber o cartão de volta?
Casos de Uso devem ser organizados para evitar– Redundância– Conflitos– Ambigüidades
Identificando Casos de Uso
Identificando Casos de Uso
Deve representar valor observável para atorPode-se determinar– Devido a interações Ator x Sistema
• seqüência de ações com o sistema que resultam valores para atores
– Devido a necessidades de um Ator• satisfaz um objetivo particular de um ator que o sistema deve prover
Identificando Casos de Uso
Procedimentos Iniciais– Escolha a fronteira do sistema– Identifique os atores primários
• aqueles cujas necessidades serão supridas pelo sistema
– Defina Casos de Uso que satisfaça as necessidades dos atores primários• um caso de uso para cada necessidade
Identificando Casos de Uso
Traçar fronteira conceitual– Identificar o que está fora e o que está dentro do sistema
Exemplo: ponto de vendas– Fora
• Cliente, Caixa, Agente de Cartão de Crédito
– Dentro• Venda, Emissão Recibo, Estoque, ....
Identificando Casos de Uso
O que está dentro do sistema:– é responsável por executar seu comportamento
O que está fora:– o contexto do sistema– o ambiente onde o sistema existe– determinam as necessidades que o sistema deve atender
Identificando Casos de Uso
Identifique os atores– Quais grupos precisam de ajuda do sistema para realizar suas tarefas?– Quais grupos são necessários para a execução das funções do sistema?– Quais grupos interagem com algum hardware externo ou outros
sistemas?– Quais grupos realizam funções secundárias de administração e de
manutenção?– Existem atividades temporais periódicas?
Identificando Casos de Uso
Atores Primários– necessidades que são supridas pelo sistema
• Caixa, cliente
Atores de suporte– provem serviços para o sistema
• Agente de cartão de crédito
Primeiro temos que encontrar os atores primários– enumere as necessidades para cada ator
Achando Casos de Uso
Que funções o ator requer do sistema?O que o ator necessita fazer?
O ator tem que ler, criar, destruir, modificar ou armazenar algum tipo de informação do sistema?
O ator tem que ser notificado sobre eventos do sistema, ou o ator necessita notificar o sistema sobre alguma coisa?– o que estes eventos representam em termos de
funcionalidade
Achando Casos de Uso
Pode o trabalho diário do ator ser simplificado ou mais eficiente através da incorporação de novas funções?Outras questões– Que entradas/saídas o sistema necessita?
• De onde vem e para onde vão?
– Quais os maiores problemas com a implementação atual (quando existir automática ou a manual)
Identificando Casos de Uso
Defina Casos de Uso– Nomeie os casos de uso como uma necessidade
• Processar venda ( um necessidade do caixa)
– Descreva cada caso de uso• primeiro uma descrição simplificada• complete esta descrição
– analise o conjunto de casos de uso e faça uma organização
– Não considere a Interface Homem-máquina • isto é implementação
– Foco – o que fazer
Caso de Uso: um exemplo 1/8
Caso de Uso: Processar VendaDescrição Breve – O Caixa necessita efetuar a venda de um conjunto de
itens selecionados pelo cliente. Deve atualizar estoque, registrar a venda e emitir o recibo
Descrição Informal– Um cliente chega no caixa com itens a comprar. O Caixa
registra cada item usando o Sistema. O sistema apresenta o total parcial e a descrição de cada item. O cliente entra com a informação de pagamento, que o sistema valida e registra. O sistema atualiza o estoque. O cliente recebe um recibo e parte com os itens adquiridos
Casos de Uso – Detalhado 2/8
Ator primário– o que inicia a ocorrência do caso de uso– Caixa
Interessados– Todos interessados em validar o Caso de Uso– Caixa– Cliente– Gerente
Pré-condições– O que deve ser verdade antes de iniciar o caso de uso– O caixa está identificado e autenticado
Casos de Uso – Detalhado 3/8
Pós-condições– O que deve ser verdade após o término com sucesso do caso de uso– A venda está registrada. O estoque foi atualizado, As comissões foram
calculadas e armazenadas• descrição ainda informal
Casos de Uso - Descrição Detalhada 4/8
Fluxo Normal– Descreve a história principal de sucesso do caso de uso
Fluxos Alternativos ou Extensões– Indicam outros cenários (tanto de sucesso como de
insucesso)
Requisitos Especiais: requisitos não funcionais, atributos de qualidade ou restrições
• Usar um leitor ótico para o código de barras
Casos de Uso – Descrição Detalhada 5/8
Cadastrar Cliente
Fluxo Normal: – Número seqüência. Agente + verbo + complemento
1. O cliente fornece seus dados2. O sistema verifica que o cliente não está
cadastrado3. O sistema adiciona novo cliente4. O sistema informa que o cadastro foi efetuado
com sucesso
Casos de Uso – Descrição Detalhada 6/8
Fluxos Alternativos: Caso <número>: <Descrição do caso alternativo>Número seqüência . Agente + verbo + complemento ;
– Finalizar caso de uso ou retornar ao passo...
Casos de Uso – Descrição Detalhada 7/8
Cadastrar Cliente - Fluxos Alternativos
Caso 1: o cliente já está cadastrado1. O sistema verifica que o cliente está
cadastrado• número da seq. onde se inicia a variante
2. O sistema informa que já está cadastrado
3. Finalizar caso de uso
Casos de Uso – Descrição Detalhada 8/8
VendaFluxo Normal
1. O cliente chega com os itens selecionados no caixa2. O Caixa inicia uma venda3. Para cada item (trazido pelo Cliente)
1. Adicionar Item de venda
4. O caixa finaliza a venda5. O sistema totaliza a compra e informa o total 6. O cliente efetua o pagamento7. O Caixa registra o pagamento 8. O sistema da baixa no estoque dos itens vendidos9. O sistema emite o recibo10. ......................
Exercício
Desenvolver o Diagrama de Casos de Uso e a descrição dos Fluxos para o sistema da Petrobrás.
Organizando o Modelo de Casos de Uso
Organizando
Organize os atores semelhantes em uma hierarquia de generalização/especialização
Especifique as associações de cada ator para os Casos de Uso
Diagrama de Casos de Uso
Pessoa Fisica Pessoa Juridica
ClienteRealizar transacao com Cartao de
CreditoAgente de Cartao
de Credito
Processar Conta do Cliente
Instituicao Financeira
Diagramas de Casos de Uso
São secundáriosO importante é o texto descrevendo os Casos de UsoApóiam a organização– Pacotes de Casos de Uso
• Agregam casos de uso funcionalmente coesos
– Visualizam relacionamentos entre • casos de uso• atores
Revisando Casos de Uso
Todos os atores envolvidos com um Caso de Uso – Estão se comunicando?– Aparecem na sua descrição?– Algum não aparece?
Tem ator ou Caso de Uso sem nenhuma associação? Algo de errado...Tem algum requisito funcional conhecido não tratado pelos Casos de Uso
Revisando Casos de Uso
Estruturar modelo de Casos de UsoEstabelecer relacionamentos entre Casos de Uso– “Inclusão” – “Extensão”– “Generalização”
Tem similaridades descritas em mais de um caso de Uso eliminar redundâncias– Inclusão (<< include>>)
A descrição do Caso de Uso está muito complexa– Extensão (<< extends>>)– Generalização (herança)
Inclusão
Caso de uso Base
Caso de Uso Inclusão
<<include>>
Executando uma instância do Caso de uso Base
Inclusão
Caso de uso base incorpora explicitamente comportamento de outro Caso de Uso em ponto específicoRepresentado como uma dependência (seta tracejada) para o Caso de Uso incluídoSe o Caso de Uso incluído muda o Base, necessita ser revisto<<include>>
Inclusão
Caso de Uso VendaFluxo Normal
1. ........2. .........3. Inclui Pagar4. Finalizar Venda
Inclusão
Venda
Pagar
Cliente
<<include>>
Extensão
Caso de uso Base
Caso de Uso Extensão
<<extend>>
Executando uma instância do Caso de uso Base
Ponto deExtensão
Extensão
Um Caso de Uso incorpora implicitamente o comportamento de outro caso de usoApenas em circunstâncias específicas o caso de uso estendido é incorporado ao caso de uso baseUtilizado para modelar comportamento excepcional do sistema – Exceções
Extensão
Representado como uma dependência – seta tracejada para o Caso de Uso Base
Se o Caso de Uso base muda o Caso de Uso estendido, necessita ser revisto<<extend>>
Extensão
Caso de Uso Devolver ProdutosFluxo Normal
1. O Cliente chega com produto para devolução
2. O Caixa prepara cupom de troca (devolver dinheiro)
3. Reportar ao Estoque4. Finalizar Operação
1. Ponto de extensão – devolver dinheiro
Extensão
Devolver DinheiroEfetuar Troca
<<extends>>
Generalização
Executando uma instância do Caso de uso Filho
Caso de uso Pai
Caso de Uso Filho
Generalização
Similar a generalização entre ClassesO caso de uso filho herda– o significado do caso de uso pai– o comportamento
O comportamento do Caso de Uso filho normalmente é redefinidoO Caso de Uso filho pode ser usado no lugar do pai
Generalização
Pagar a Dinheiro
Pagar com Cartão
Cliente Pagar
base
derivado
GeneralizaçãoAtor: Cliente1. Esse caso de Uso começa quando o cliente
deseja efetuar pagamento2. O Cliente registra o documento de cobrança3. O Cliente informa a opção desejada
1. Se pagto a dinheiro – executar subseção Pagar a dinheiro
2. Se pagto com cartão de crédito- executar subseção Pagar com Cartão
4. O sistema registra o pagamento5. O sistema emite o recibo6. Subseção – Pagar a Dinheiro
1. O Cliente coloca o dinheiro em um envelope e lacra2. O Cliente informa o numero do envelope ao sistema3. O cliente deposita o envelope4. .......
Exercício
- Especifique os Casos de Uso para:1. Sistema da padaria de pequeno porte2. Sistema inteligente de preenchimento do IRPF3. Sistema de abertura automática de porta
Revisando.....
Dicas/Sugestões
Todos os Casos de Uso deverão representar algum comportamento distinto e identificável Nomeie um comportamento que seja único, identificável e razoavelmente atômicoFaça a fatoração de comportamento comum, obtendo-se este comportamento de outros casos de uso (inclusão)Faça a fatoração de variantes, aplicando esse comportamento a outros casos de uso que o estendemDescreva o fluxo de eventos de maneira suficientemente clara para que alguém de fora seja capaz de compreendê-lo com facilidade– Especifique um conjunto mínimo de cenários explicitando a
semântica normal e variante do Caso de Uso
Dicas e Sugestões
Mostre somente – Casos de Uso que são importantes para a compreensão do
comportamento do sistema (ou da parte sendo modelada)– Somente os atores relacionados com esses Casos de Uso
Exercício
Especifique um sistema para uma Agenda Telefônica, que controle aniversário dos contatos:– Elicitar requisitos com o uso das técnicas abordadas
• Requisitos de negócio• Requisitos de produto• Regras de negócio
– Detalhar os Casos de Uso