Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 3 Introdução à Modelagem de Requisitos com Casos de Uso Objetivos • Definir os conceitos-chave da modelagem de Casos de Uso. – Listar os benefícios da modelagem de casos de uso; – Entender os tipos de casos de uso; – Entender os relacionamentos entre casos de uso. • Identificar atores e casos de uso. – Descrever o relacionamento e a interação entre eles. • Definir decomposição funcional. • Ler e desenhar o Diagrama de Casos de Uso. O que é modelagem de casos de uso? • Associar necessidades a requisitos de software. • Definir claramente as fronteiras do sistema. • Capturar e comunicar o comportamento que é desejado do sistema. • Identificar quem ou o que interage com o sistema. Modelo • Validar / Verificar requisitos. Use case 1 • É um instrumento de Ator 2 planejamento. Use case 2 Use case 3 Especificação Caso de Uso 2 Um Modelo de Caso de Uso O Sistema Use case 1 Volta pelo Modelo de UC Ator 1 - Navegue pelos textos - Liste todos os atores - Liste todos os casos de uso Use case 2 Ator 2 Use case 3 Ator 3 Especificação UC 1 - Descrição breve - Fluxo de eventos Especif. UC 2 - Descrição Breve - Fluxo de eventos Espec. UC 3 - Descrição breve - Fluxo de eventos Elementos relevantes da Modelagem de Casos de Uso Ator Caso de Uso Ator Alguém ou alguma coisa externa, que tem o papel de interagir com o sistema Caso de Uso Representa alguma coisa de valor que o sistema fornece para os seus atores O que é um Caso de Uso? Nome do Caso de Uso Define a seqüência de ações realizadas entre o sistema e o ator, que produzem um resultado de valor para o ator. O Caso de Uso realiza os Requisitos de Software • Cada caso de uso – Descreve ações no sistema que entregam algo de valor para um ator. – Apresenta uma funcionalidade do sistema usada pelo ator – Modela o diálogo entre sistema e ator. – É um fluxo de eventos completo e significativo dos eventos da perspectiva de um ator em particular Benefícios dos Casos de Uso • Dá um contexto para os requisitos. – Coloca os requisitos do sistema em seqüência lógica – Ilustra porque o sistema é necessário para o Ator. – Ajuda a verificar se todos requisitos foram atendidos. • São fáceis de entender. – Usa terminologia que clientes e usuários utilizam. – Fala de estórias concretas de uso do sistema – Verifica o entendimento dos stakeholders • Facilita o acordo entre os clientes. • Facilita reuso: teste, documentação, e projeto. Ciclo de Vida de Casos de Uso Fechar Matrículas Descoberto Descrição Breve: Este caso de uso permite ao Digitador Descrito brevemente fechar o processo de matrículas. Ofertas de curso que não possuírem alunos serão canceladas. O sistema de Cobrança é notificado com todos os dados de matrícula para assim efetuar as devidas cobranças. Resumo do Fechar Matrículas Rabiscado Totalmente Descrito -Fluxo de Eventos -Passo-a-Passo Fechar Matrículas Especificação de Caso de Uso - Fluxo de Eventos detalhado Requisitos Especiais -Condições (Pré & Pós) Definir Atores: Foco nos papéis • Um ator representa um papel que um humano, hardware, ou outro sistema desempenha em relação ao sistema. • Os nomes de ator devem representar claramente seu papel. ? Atores e Papéis Charlie: Está empregado como professor de matemática e é aluno de Economia. Jodie: É um aluno de Ciências. Matricular em Curso Charlie e Jodie agem como estudantes. Estudante Submeter grades Charlie também age como Professor. Professor Comunicação-Associação Ator 1 Caso de Uso Ator 2 Ator 3 • Um canal de comunicação entre um ator e um Caso de Uso. • Uma linha é usada para representar uma associação de comunicação. – Uma flecha indica quem inicia cada interação. – Uma linha sem flecha indica que o caso de uso ou o ator podem iniciar a interação. Convenções das setas e linhas Sensor passivo Monitorar Alarmes Supervisor Sensor ativo Sensor híbrido Sensor passivo Monitorar Alarmes Supervisor Sensor ativo Sensor híbrido Cada Associação de Comunicação é o Diálogo Completo O estudante acessa o sistema. O sistema autentica o usuário. Estudante requisita dados do curso. Estudante Matricular em Curso Sistema de Cadastro de Cursos Sistema apresenta a lista de cursos. O sistema transmite a requisição. Estudante seleciona curso. O sistema retorna os dados do curso. Sistema apresenta a agenda do curso. Um cenário de umCaso de Uso Estudante Matricular em Curso Cenário 1 Autenticar no sistema. Aprova o login. Digitar o assunto. Obter lista de cursos. Apresentar lista de cursos. Selecionar Cursos. Confirmar Disponibilidade. Mostrar grade final. Sistema de Cadastro de Cursos Cenário 2 Autenticar no sistema. Aprova o login. Digitar o assunto. Assunto inválido. Entra novamente assunto. Obter lista de cursos. Apresentar lista de cursos. Selecionar Cursos. Confirmar Disponibilidade. Mostrar grade final. Diagrama de Caso de Uso Máquina de Auto Atendimento (ATM) Sacar Fundos Transferir Fundos Cliente Banco Consórcio de Bancos Depositar Fundos Coletar Depósitos Caixa Manter ATM Manutenção Exercício: Sistema de Vendas Externas Sistema de Vendas Vendedor Realizar Pedido Sistema de Estoque Outro caso de uso Ator X Caso de Uso 3 Ator Y Course Registration System Artifacts Como deve ser o nome do caso de uso? • • • • Indicar o significado ou objetivo do UC. Usa a forma ativa; começar com verbo. Imagine uma lista de tarefas. Exemplos de variação: – – – – – Realizar Venda Realizando Venda Confirmar Realização da Venda Venda de Produtos Usar Sistema de Venda Quais variações tem maior significado para o usuário? Quais não tem? Que nome de caso de uso você escolhe? Por que? Passos para criar o Modelo de Casos de Uso 1. Procurar atores e casos de uso. – Identifique e descreva brevemente os atores. – Identifique e descreva brevemente casos de usos. 2. Escreva os casos de uso. – Desenhe todos os casos de uso. – Priorize os fluxos de casos de uso. – Detalhe os fluxos por ordem de prioridade. Procure Atores Quem está operando (interagindo com o sistema)? Estudante Digitador Sistema de Matrículas O sistema nunca digita no sistema; o digitador faz isto. Ou, você está construindo uma aplicação WEB? Estudante Sistema de Matrícula Online Identifique atores • • • • • • Quem / o que usa o sistema? Quem / o que obtêm informação do sistema? Quem / o que fornece informação para o cliente? Onde na empresa o sistema é usado? Quem / o que suporta ou mantêm o sistema? Quais outros sistemas usam o sistema? Descrição de um ator Descrição Textual do Ator. Nome Estudante Descrição Breve Uma pessoa que se registra para um curso. Relacionamento com UCs Matricular em Curso Estudante Checkpoints para Atores • Tem certeza que encontrou todos os atores? • Esclareceu e modelou todos os papéis dentro do ambiente de sistema? • Cada ator está envolvido com pelo menos um caso de uso? • Você poderia identificar pelo menos duas pessoas que realizam o papel do ator? • Alguns atores desempenham as mesmas funções em relação ao sistema? (Se sim, colocá-los em um único ator.) Identificando Casos de Uso Quais objetivos desejo alcançar utilizando o sistema? Objetivo 1 Ator Objetivo 2 Identificando Casos de Uso • Quais são os objetivos de cada ator? – Porque o ator quer utilizar o sistema? – O ator irá criar, guardar, mudar, remover, ou ler dados no sistema? Se sim, porque? – O ator precisa informar ao sistema sobre mudanças ou eventos externos? – O ator precisará ser informado sobre certas circunstâncias do sistema? Descrição do Caso de Uso Descrição Textual do caso de uso. Nome Matricular em curso Descrição Breve O estudante seleciona os cursos que deseja para o próximo semestre. Uma grade dos cursos primários e alternativos são gerados. Relacionamento com atores Matricular em Curso Estudante Checkpoints para Casos de Uso • O modelo de caso de uso apresenta o comportamento do completo sistema? • Todos os casos de uso foram identificados? • Os casos de uso descrevem todos os comportamentos esperados pelo ator com o qual interagem. • O modelo de caso de uso não contêm comportamento supérfluo? • Todos os casos de uso podem ser justificados ao rastreá-los de volta para os requisitos funcionais. • Todos os casos de uso CRUD de tabelas auxiliares (as que não realizam atividades do processo de negócio) foram removidos? Decomposição funcional • È a quebra do problema em partes menores, isoladas. – As partes juntas fornecem a funcionalidade do sistema. • Muitas vezes não fazem sentido se isoladas. • Casos de uso: – Não há decomposição funcional. – Mantém a funcionalidade junta, para descrever o uso completo do sistema. – Fornece o contexto. Decomposição Funcional: Um Exemplo Inserir Cartão Processar Transação Consórcio Bancário Entrar PIN Selecionar Conta Destino Selecionar Transferência de Fundos Cliente Entrar Quantidade Selecionar Conta Origem Selecionar Saque Selecionar Saldo da Conta Evite Decomposição Funcional Sintomas – Casos de uso pequenos – Muitos casos de uso – Casos de uso sem resultado real – Nomes com operações de baixo nível • “Operação” + “objeto” • “Função” + “dados” • Exemplo: “Inserir Cartão” – Dificuldade de entender o contexto geral Ações Corretivas – Procure um contexto maior “Porque está construindo o sistema?” – Coloque-se no papel do usuário “O que o usuário quer obter?” “Qual objetivo o caso de uso deve satisfazer?” “Qual valor o caso de uso adiciona?” “Qual é a história do caso de uso?” Decomposição Funcional: Um exemplo corrigido Sacar Fundos Transferir Fundos Consórcio Bancário Cliente Depositar Fundos Exercício: Identifique atores e casos de uso • Identifique os atores que interagem com o sistema de Vendas Externas. • Identifique os casos de uso para o sistema. – Use como ponto de partida, cada ator. • Desenhe um diagrama de casos de uso. – Revise os casos de uso e atores de acordo com os slides de checkpoints. Exemplo de Solução: Sistema de Matrículas Matricular em Curso Requisitar Catálogo de Cursos Estudante Sistema de Matrículas Alterar Opções de Curso Ver Grades Sistema de Cobrança Fechar Matrículas Professor Digitador Selecionar cursos a lecionar Submeter Grades Obter Lista de Turmas do curso Onde os casos de uso se encaixam na Ger. Req.? Analisar o Problema Entender Necessidades do Stakeholder Descrição Caso de Uso Refinar o Sistema Especificação de Caso de Uso (detalhada) ? Definir o Sistema Gerenciar o Escopo Gerenciar Mudanças de Requisito Revisão 1. 2. 3. 4. 5. 6. Quais benefícios da Modelagem de Casos de Uso? O que é incluído no Modelo de Casos de Uso? Como identificar atores e casos de uso? O que é decomposição funcional? Por que devemos evitar decomposição funcional? Quais questionamentos devemos fazer para testar a qualidade do Modelo de Casos de Uso?