Baixe o app para aproveitar ainda mais
Prévia do material em texto
Técnicas de Elicitação de Requisitos Cenários Particionamento de requisitos por Cenários – Identificação de requisitos a partir de diferentes cenários de interação entre um usuário e o sistema. – É feita uma simulação de interação do usuário com o sistema na execução de uma tarefa do negócio e os usuários explicam para o engenheiro de requisitos o que eles fazem e como o sistema poderia ajudá-los a executar esta tarefa. – A descoberta de possíveis cenários expõe o conjunto de interações entre os atores e o sistema e revela as facilidades que são requeridas do sistema. – Cenários, portanto, podem ser entendidos como estórias que explicam como o sistema poderia ser usado. Particionamento de requisitos por Cenários – Cenários podem ser identificados a partir de aplicação de técnicas tradicionais de elicitação de requisitos como entrevistas, questionários ou análise etnográfica. O importante é estar atento à descoberta dos cenários! Particionamento de requisitos por Cenários – Cenários podem ser escritos usando diferentes formas e padrões, mas as descrições devem conter pelo menos as seguintes informações: • Uma descrição do estado do sistema antes de entrar no cenário (eventos que ativam o cenário e pré-condições); • O fluxo normal de eventos do cenário; • Exceções e alternativas ao fluxo normal; • Uma descrição do estado do sistema após a finalização do cenário (pós-condições). Particionamento de requisitos por Cenários –Aplicação/utilidade • Útil para facilitar a descoberta de requisitos; • Útil para detalhar requisitos já identificados; • Útil para entender os processos de negócio e como o sistema deverá ser utilizado para suportá- los; • Útil para descobrir as diferentes situações (cenários) em que o sistema deverá atuar; • Útil para orientar as fases seguintes do desenvolvimento do sistema no caso de adoção de estratégias de desenvolvimento incrementais; Particionamento de requisitos por Cenários Exemplo de Aplicação de Cenários Caso de Uso Caso de Uso - Definição • 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 92] • Uma unidade coerente de funcionalidade provida por 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. Objetivos dos Casos de Uso • Descrever a funcionalidade do sistema (Requisitos Funcionais) • Mapear o escopo do sistema, onde explicita a fronteira do sistema. • Facilitar a comunicação com usuário do sistema. • Gerenciar o projeto. • O RUP o utiliza para guiar todo processo de desenvolvimento • Mostram apenas o que o sistema faz, e não como. Caso de uso: representação gráfica -Uma elipse com o nome do caso de uso no centro Nome = Verbo + Substantivo (indicação de ação) Ator • 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 (uma mesma entidade pode desempenhar diferentes papéis) • 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 Ator: representação gráfica Diagramas de Caso de Uso • Introduzida por Jacobson em 1994 para visualização dos casos de uso • Esse diagrama é parte da UML • Mostram um conjunto de casos de uso, atores e seus relacionamentos • Indicam a forma como o sistema interage com as entidades externas Diagrama de Caso de Uso : representação gráfica 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? Como encontrar casos de uso? • Quais são os processos de negócio elementares que deverão ser suportados pelo uso do software? • 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? Cenários • Em UML significa um caminho através de um caso de uso. • Uma instância de um caso de uso • Seqüência de passos que descreve uma interação • Exemplo (Sacar dinheiro): – Saque com sucesso – Tentativa de saque MAS senha incorreta – Tentativa de saque MAS saldo insuficiente Caso de Uso x Cenários • Um caso de Uso não é um cenário, mas um conjunto de cenários associados a execução de um processo elementar de negócio • Cada cenário é uma instância de um caso de uso • Para cada caso de uso temos, no mínimo, um cenário para o fluxo normal (cenário principal) e outros para cada fluxo excepcional (cenários secundários). Tipos de Caso de Uso • Segundo Craig Larman podemos classificar os casos de uso em – Primário Representam os processos principais ou mais comuns (ex.: Vender Produtos) – Secundário Representam processos menos importantes ou mais raros (ex.: Cadastrar Produtos) – Opcional Representam processos que podem ser ignorados ou incluídos em futuras versões do sistema (ex.: Solicitar Estoque para um Novo Produto) Formato de Descrição de Casos de Uso • Não existem padrões na indústria ou na literatura para sua formatação • Deve-se incluir informações que facilitem a comunicação entre os clientes e a equipe de desenvolvimento do sistema Formatos de descrição de Caso de Uso (segundo Craig Larman) • Resumido – Descrição resumida em um parágrafo, geralmente do cenário de sucesso principal. – Criados na fase inicial de requisitos – Exemplo: Processar Venda: um cliente chega em um ponto de venda com itens de produtos que deseja adquirir. O caixa usa o sistema para registrar cada item comprado. O sistema vai apresentando um total parcial e uma linha de detalhes à medida que registra cada item. O cliente fornece ao caixa os dados dado sobre o pagamento que são então validados e registrados pelo sistema. O sistema atualiza o estoque e emite um recibo que é entregue pelo caixa ao cliente. O cliente sai com os itens comprados. Formatos de descrição de Caso de Uso (segundo Craig Larman) • Intermediário – Descrição informal de parágrafos. Múltiplos parágrafos que cobrem vários cenários. – Podem ser usados na fase inicial de requisitos, caso haja interesse em um maior detalhamento. • Completo (Detalhado ou Expandido) – Formato mais elaborado. Todos os passos e variantes são descritos em detalhe. – Durante a fase de requisitos, apenas os casos de uso mais importantes devem ser escritos nesse formato Formatos de descrição de Caso de Uso (segundo Craig Larman) Estilos de descrição de Caso de Uso (segundo Craig Larman) • Essencial – Descrição de um processo em termos de sua motivação e atividades essenciais – Expressos relativamente livres de detalhes de implementação, decisões de projeto, e uso de tecnologias • Concreto – Descrição de um processo em termos de seu projeto real, comprometido com tecnologias de desenvolvimento, interfaces de entrada e saída, etc. Exemplo de formato de descrição de Casos de Uso • Nome do Caso de Uso • Breve descrição • Ator (principal) • Prioridade (ex: Essencial, Importante, Desejável) • Pré-Condições • Pós-Condições • Fluxo de eventos: – Fluxo de evento principal – Fluxos secundários:alternativos e de exceção • Requisitos Não-Funcionais Específicos Fluxo de Eventos • Especifica o comportamento de um caso de uso • É uma seqüência de comandos declarativos que descreve as etapas de execução de um Caso de Uso • Permanece focado no domínio do problema e não em sua solução • Pode conter testes condicionais e iterações • Contém informações relativas: – Às condições de início e término do caso de uso – Quais os atores interessados no sistema – Como o caso de uso interage com esses atores Fluxo de Eventos • O fluxo de eventos de um caso de uso é composto por: – Um Fluxo Básico - descreve a funcionalidade principal do caso de uso, quando nenhum desvio é tomado – Zero ou Mais Fluxos Alternativos - descrevem desvios pré-definidos do fluxo básico • Esses fluxos podem ser especificados através de: – Descrição textual informal – Texto semi-formal (através de pré-condições, pós- condições e invariantes) – Pseudocódigo – Ou uma combinação destes Exemplo: Descrição resumida • Caso de uso Locar Vídeo – Este caso de uso acontece quando um cliente da Locadora chega no balcão de atendimento com um ou mais vídeos que deseja locar. O atendente informa ao sistema o código do cliente. O sistema valida se o cliente está apto a locar e exibe os seus dados (nome, endereço, telefone). O atendente informa o identificador das cópias de vídeo que o cliente deseja locar. Para cada cópia o sistema calcula o valor e a data de devolução, exibe os dados da cópia (código, localização, o nome do filme, a data de devolução, valor da locação). O atendente confirma a locação. O sistema calcula o valor total a ser pago. O atendente informa a opção de pagamento do cliente (na locação ou na devolução). O sistema trata a opção do cliente e emite um recibo de locação contendo os dados do cliente e da locação realizada. Exemplo: Descrição essencial expandida • Caso de Uso: Locar Vídeo – Categoria: Primário – Atores envolvidos: Atendente e Cliente – Pré-condições: • O atendente deve ter sido autenticado • As cópias dos vídeos disponíveis para locação devem estar previamente cadastradas – Pós-condições: • A locação foi registrada com o cliente e cópias locadas • O valor da locação e o prazo de devolução de cada cópia foi calculado • Um recibo de locação foi emitido • A situação das cópias locadas foi definida como “locada” Descrição essencial expandida • Caso de Uso: Locar Vídeo (continuação) – Fluxo Principal de Sucesso (cenário principal) 1.O atendente informa ao sistema o código identificador do cliente 2.O Sistema verifica se o cliente está apto a fazer a locação (se não tem devoluções pendentes) e exibe os dados do cliente (nome, endereço e telefone) 3.O atendente informa o código da cópia de vídeo a ser locado Descrição essencial expandida • Caso de Uso: Locar Vídeo (continuação) – Fluxo Principal de Sucesso (cenário principal) 4.O sistema verifica se a cópia está disponível, calcula o valor da locação, a data de devolução e exibe os dados da cópia (código, o nome do título, o valor e a data da devolução) Os passos 3 e 4 se repetem até que não haja mais cópias 5.O atende informa que a locação pode ser finalizada Descrição essencial expandida • Caso de Uso: Locar Vídeo (continuação) – Fluxo Principal de Sucesso (cenário principal) 6.O sistema exibe o resumo da locação (código do cliente, nome do cliente, cópias locadas com respectivos valores e datas de devolução), calcula e exibe o valor total. 7.O atende informa ao sistema a opção de pagamento. 8.O sistema trata a opção de pagamento. 9.O sistema emite um recibo de locação efetuada. 10.O atendente entrega as cópias locadas para o cliente. Descrição essencial expandida • Caso de Uso: Locar Vídeo (continuação) – Cenários alternativos 1a) o cliente não lembra do seu código 1. O atendente ativa o caso de uso Pesquisar Cliente 2. O sistema executa o caso de uso Pesquisar Cliente 3. O sistema retorna ao passo 1 do cenário principal Descrição essencial expandida • Caso de Uso: Locar Vídeo (continuação) – Cenários alternativos 1b) o cliente ainda não tem código e deseja se cadastrar 1. O atendente ativa o caso de uso Cadastrar Cliente 2. O sistema executa o caso de uso Cadastrar Cliente 3. O sistema retorna ao passo 1 do cenário principal Descrição essencial expandida • Caso de Uso: Locar Vídeo (continuação) – Cenários alternativos 2a) o código do cliente não foi reconhecido 1. O sistema exibe uma mensagem de erro e solicita que o código seja informado novamente 2. O sistema retorna para o passo 1 do cenário principal Descrição essencial expandida • Caso de Uso: Locar Vídeo (continuação) – Cenários alternativos 2b) o cliente tem devoluções pendentes 1. O sistema exibe os dados das locações pendentes (código da cópia, nome do título, data de devolução, valor da locação, valor da multa atualizada) 2. O atendente pergunta ao cliente se ele vai regularizar as pendências. 3. O atendente ativa o caso de uso Devolver Cópias Locadas 3a) O cliente não quer regularizar as pendências 1. O atendente encerra o caso de uso Locar Vídeo Descrição essencial expandida • Caso de Uso: Locar Vídeo (continuação) – Regras de negócio: • Para calcular valor da locação de uma cópia de vídeo: – Determinar a categoria do filme locado (lançamento, catálogo, promoção) – Atribuir o valor da locação de acordo com o valor da categoria – Requisitos vinculados (referenciar o documento ou base de dados de requisitos – matrizes de rastreabilidade) Descrição essencial expandida Caso de Uso: Pesquisar Cliente (caso de uso que pode estender o caso de uso Locar Vídeo) Cenário Principal 1. O atendente informa o nome do cliente. 2. O sistema lista todos os cliente com o nome informado com respectivos endereços e telefones 3. O atendente define qual é o cliente em questão ... Descrição essencial expandida • Caso de Uso: Cadastrar Cliente (caso de uso que pode estender o caso de uso Locar Vídeo) Cenário Principal 1. O atendente informa os dados do cliente ( nome, endereço, telefones, cpf ....) 2. O sistema valida os dados de acordo com as regras de negócio, gera um código identificador do cliente e armazena os dados do cliente. ... Relacionamento entre casos de uso • Os casos de uso podem ser organizados por meio de relacionamentos • A UML disponibiliza três tipos: – Generalização/especialização – inclusão – extensão Generalização • É um relacionamento de generalização / especialização • Os casos de uso especializados herdam a estrutura do caso de uso generalizado • O supertipo contém cenários mais gerais. • Os subtipos contém cenários mais específicos, particulares a cada um deles • Os cenários comuns a mais de um caso de uso são adaptados em um caso de uso generalizado Generalização • Quando usar? Quando você estiver descrevendo comportamentos semelhantes entre casos de uso, mas algum deles faz um pouco mais que o outro. Exemplo: Inclusão • Um caso de uso incorpora explicitamente o comportamento de outro caso de uso, evitando assim repetições de descrição de fluxos. • O cenário comum a mais de um caso de uso é captado em um outro – concentra o serviço em um caso de uso base a ser utilizados por outros – evita-se descrever a mesma seqüência de passos a vários casos de uso • Utiliza o estereótipo <<include>> para expressar esse tipo de relacionamento Inclusão • Quando usar? Quando houver repetição entre casos de uso e você desejar evitar esta repetição Exemplo: Extensão • É usado para descrever cenários opcionais de um caso de uso – os casos de usodescrevem cenários que sempre acontecerão no sistema – os casos de uso estendidos ocorrerão em uma situação específica – concentra-se essa seqüência em um caso de uso público • Utiliza o estereótipo <<extend>>para expressar esse tipo de relacionamento Extensão • Quando usar? Quando quiser descrever uma variação do comportamento normal. • partes opcionais de casos de uso • cursos alternativos e complexos que nem sempre ocorrem Exemplo: Modelagem de Casos de Uso Localizar Atores e Identificar Casos de Uso • Objetivos �Delimitar o sistema �Destacar os atores que irão interagir com o sistema �Destacar os casos de uso do sistema • Processo � Identificar os Atores � Identificar casos de uso �Descrever caso de uso no formato resumido �Criar Diagramas de Caso de Uso Priorizar os Casos de uso • Objetivos �Definir em quais iterações os casos de uso serão desenvolvidos • Processo � Identificar os casos de uso com mais riscos e os mais significantes (primários) �Alocar os Casos de Uso as iterações definindo suas prioridades dentro de cada uma delas. Detalhar Casos de Uso • Objetivos �Descrever o fluxo de eventos de cada caso de uso • Processo � Interagir com os usuários (atores) que estão relacionados com cada um dos casos de uso �Descrever detalhadamente os passos que compõem o fluxo de eventos �Revisar o detalhamento do caso de uso com os usuários �Refinar a descrição dos casos de uso Estruturar o Modelo de Caso de Uso • Objetivos �Otimizar o modelo de caso de uso • Processo � Identificar descrições de funcionalidades comuns. −Extrair tais funcionalidades e criar um caso de uso mais específico que possa ser usado pelos demais <<include>>. �Reutilização de casos de uso −Herança (generalização/especialização) − Incorporação (<<include>>) entre casos de uso. Estruturar o Modelo de Caso de Uso • Processo (continuação) � Identificar descrições de funcionalidades adicionais ou opcionais. �Extrair as extensões adicionais ou opcionais para um caso de uso mais específico <<extend>> Ex:Condições, Erros, Alternativas
Compartilhar