Especificao e Modelagem de Requisitos Especificao e Modelagem

  • Slides: 75
Download presentation
Especificação e Modelagem de Requisitos

Especificação e Modelagem de Requisitos

Especificação e Modelagem de Requisitos Regras de Negócio Ø Ø Glossário Documento de Visão

Especificação e Modelagem de Requisitos Regras de Negócio Ø Ø Glossário Documento de Visão Elicitar Requisitos de Produto Especificar casos de uso e validá-los Especificar requisitos não funcionais Analisar e Validar os requisitos Casos de Uso e Esp. Suplementar Plano e Casos de Teste Analista de Requisitos p/ Inspeção

Análise dos Requisitos Trabalha com requisitos incompletos Se preocupa em descobrir problemas Requisitos são

Análise dos Requisitos Trabalha com requisitos incompletos Se 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

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

Modelo de Casos de Uso O Modelo de Casos de Uso – Especifica em detalhes requisitos do sistema Emprega – Atores – Casos de Uso

Ator Define o que existe do lado de fora do sistema – Ator é

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 comportamento como • • uma pessoa (identificada pelo seu papel) um sistema computacional uma organização um sensor/atuador

Caso de Uso: – O que deve ser feito pelo sistema – histórias de

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

Modelo de Casos de Uso Os atores representam o que interage com o sistema

Modelo de Casos de Uso Os atores representam o que interage com o sistema Representam tudo que necessita trocar informação com o sistema Como estão fora do sistema: não são descritos em detalhe Atores 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

Modelo de Casos de Uso Uma instância de um Ator efetua diversas operações no sistema Quando um usuário usa o sistema, efetua um seqüência de transações relacionadas em um diálogo com o sistema Esta seqüência é chamada de Caso de Uso Cada 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 capturam os requisitos funcionais O conjunto de todos os

Modelo de Casos de Uso capturam os requisitos funcionais O conjunto de todos os Casos de Uso especificam a funcionalidade completa do sistema Agrupar 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

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

Casos de Uso Discutir com o cliente o que o sistema fará Identificar quem

Casos de Uso Discutir com o cliente o que o sistema fará Identificar quem interage com o sistema Identificar que interfaces o sistema terá

Casos de Uso Tipos e Formatos – Caixa preta – O sistema é descrito

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 –

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

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 faltando Verifique os

De posse dos Casos de Uso Verifique se não há requisitos faltando Verifique os desenvolvedores entendem os requisitos Vantagem é ter apelo visual dos requisitos mais relevantes do cliente

Elaborando o Modelo de Casos de Uso

Elaborando o Modelo de Casos de Uso

Identificando Nenhum sistema existe isoladamente – interage com atores humanos e/ou autômatos – atores

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

Casos de Uso: função – transação/serviço Seqüência de ações, executada pelo sistema, que gera

Casos de Uso: função – transação/serviço Seqüência de ações, executada pelo sistema, que gera um resultado – De valor observável – E para um ou mais atores Função Procedimento computacional

Caso de Uso: Ator Alguém ou alguma coisa (fora do sistema) que interage com

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

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 trabalho Sob a perspectiva do ator

Caso de Uso Executa alguma quantidade tangível de trabalho Sob 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

Caso de Uso A descrição de um caso de uso define o que o sistema faz quando o caso de uso é realizado A 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 Descrição Passo 1 Passo 2 … Passo N Emissor

Caso de Uso e Ator Descrição Passo 1 Passo 2 … Passo N Emissor Função

Atores De um modo geral, atores podem ser: – – papéis que as pessoas

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

Atores Pode-se definir grupos gerais de atores e suas especializações

Atores Os atores estão associados a Casos de Uso – Ator e Caso de

Atores Os atores estão associados a Casos de Uso – Ator e Caso de Uso se comunicam – Enviar e Receber mensagens

Casos de Uso Nomes – Todo caso de uso deve ter um nome que

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

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: Cliente Casos de Uso: Sacar dinheiro, Transferir dinheiro e Consultar saldo

Exemplo de Caso de Uso Valor de resultado observável Transferir dinheiro Sacar dinheiro Consultar

Exemplo de Caso de Uso Valor de resultado observável Transferir dinheiro Sacar dinheiro Consultar saldo Cliente

Identificando Casos de Uso Em geral, é difícil decidir entre um ou vários Casos

Identificando Casos de Uso Em geral, é difícil decidir entre um ou vários Casos de Uso Por 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

Identificando Casos de Uso Deve representar valor observável para ator Pode-se determinar – Devido

Identificando Casos de Uso Deve representar valor observável para ator Pode-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

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

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

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

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 •

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

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

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

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 Venda Descrição Breve –

Caso de Uso: um exemplo 1/8 Caso de Uso: Processar Venda Descriçã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

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

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

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: – 1. 2.

Casos de Uso – Descrição Detalhada 5/8 Cadastrar Cliente Fluxo Normal: – 1. 2. 3. 4. Número seqüência. Agente + verbo + complemento O cliente fornece seus dados O sistema verifica que o cliente não está cadastrado O sistema adiciona novo cliente 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

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:

Casos de Uso – Descrição Detalhada 7/8 Cadastrar Cliente - Fluxos Alternativos Caso 1: o cliente já está cadastrado 1. 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 Venda Fluxo Normal 1. O cliente chega

Casos de Uso – Descrição Detalhada 8/8 Venda Fluxo Normal 1. O cliente chega com os itens selecionados no caixa 2. O Caixa inicia uma venda 3. Para cada item (trazido pelo Cliente) 1. Adicionar Item de venda 4. 5. 6. 7. 8. 9. 10. O caixa finaliza a venda O sistema totaliza a compra e informa o total O cliente efetua o pagamento O Caixa registra o pagamento O sistema da baixa no estoque dos itens vendidos O sistema emite o recibo. . . . .

Exercício Desenvolver o Diagrama de Casos de Uso e a descrição dos Fluxos para

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 o Modelo de Casos de Uso

Organizando Organize os atores semelhantes em uma hierarquia de generalização/especialização Especifique as associações de

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

Diagrama de Casos de Uso

Diagramas de Casos de Uso São secundários O importante é o texto descrevendo os

Diagramas de Casos de Uso São secundários O importante é o texto descrevendo os Casos de Uso Apó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 –

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 Uso Estabelecer relacionamentos entre Casos

Revisando Casos de Uso Estruturar modelo de Casos de Uso Estabelecer 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 Executando uma instância do Caso de uso Base <<include>> Caso de Uso Inclusão

Inclusão Executando uma instância do Caso de uso Base <<include>> Caso de Uso Inclusão

Inclusão Caso de uso base incorpora explicitamente comportamento de outro Caso de Uso em

Inclusão Caso de uso base incorpora explicitamente comportamento de outro Caso de Uso em ponto específico Representado como uma dependência (seta tracejada) para o Caso de Uso incluído Se o Caso de Uso incluído muda o Base, necessita ser revisto <<include>>

Inclusão Caso de Uso Venda Fluxo Normal 1. 2. 3. 4. . . .

Inclusão Caso de Uso Venda Fluxo Normal 1. 2. 3. 4. . . . Inclui Pagar Finalizar Venda

Inclusão <<include>>

Inclusão <<include>>

Extensão uma instância do Caso de uso Base Executando Caso de uso Base <<extend>>

Extensão uma instância do Caso de uso Base Executando Caso de uso Base <<extend>> Ponto de Extensão Caso de Uso Extensão

Extensão Um Caso de Uso incorpora implicitamente o comportamento de outro caso de uso

Extensão Um Caso de Uso incorpora implicitamente o comportamento de outro caso de uso Apenas em circunstâncias específicas o caso de uso estendido é incorporado ao caso de uso base Utilizado para modelar comportamento excepcional do sistema – Exceções

Extensão Representado como uma dependência – seta tracejada para o Caso de Uso Base

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 Produtos Fluxo Normal 1. O Cliente chega com produto

Extensão Caso de Uso Devolver Produtos Fluxo Normal 1. O Cliente chega com produto para devolução 2. O Caixa prepara cupom de troca (devolver dinheiro) 3. Reportar ao Estoque 4. Finalizar Operação 1. Ponto de extensão – devolver dinheiro

Extensão <<extends>>

Extensão <<extends>>

Generalização Executando uma instância do Caso de uso Filho Caso de uso Pai Caso

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 Classes O caso de uso filho herda – o

Generalização Similar a generalização entre Classes O caso de uso filho herda – o significado do caso de uso pai – o comportamento O comportamento do Caso de Uso filho normalmente é redefinido O Caso de Uso filho pode ser usado no lugar do pai

Generalização derivado base

Generalização derivado base

Generalização Ator: Cliente 1. Esse caso de Uso começa quando o cliente deseja efetuar

Generalização Ator: Cliente 1. Esse caso de Uso começa quando o cliente deseja efetuar pagamento 2. O Cliente registra o documento de cobrança 3. 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 pagamento 5. O sistema emite o recibo 6. Subseção – Pagar a Dinheiro 1. 2. 3. 4. O Cliente coloca o dinheiro em um envelope e lacra O Cliente informa o numero do envelope ao sistema O cliente deposita o envelope. . . .

Exercício - Especifique os Casos de Uso para: 1. 2. 3. Sistema da padaria

Exercício - Especifique os Casos de Uso para: 1. 2. 3. Sistema da padaria de pequeno porte Sistema inteligente de preenchimento do IRPF Sistema de abertura automática de porta

Revisando. . .

Revisando. . .

Dicas/Sugestões Todos os Casos de Uso deverão representar algum comportamento distinto e identificável Nomeie

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ômico Faç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 estendem Descreva 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

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: –

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