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? �������� • 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 ������������ ��� �� �� • 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). ��������� ��������� • 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) ��������� � ��� ����� � ������� ���� � ���� ��� ��� � ���� � � � ���� �� � ��� � � �� �� �� �� � � � ����� ��� � ����� �� �������� ������ ��� � ���� � ���� ��� � ������� ���� �� ��� � � ����� � � �� � ������������ ���������� ����� � �� ��������� � ���� ��� ������ ������� ��� ��������������� • 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. ��������� � ���� ��� ������ ������� ��� ��������������� • 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 ��������� � ���� ��� ������ ������� ��� ��������������� ��������� �� � ��� ��� ������� ����� �� ������������������� • 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. �������� �� ���� �� �� ��������� �������� ����� • 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 ��������� ���� � ��������� � ����� � ����� �� �� � �� �� ��� � � �� �������� �� ��� ���� ���� ����� ��� ���� ��� � �� � � �� �������� �� �� � �� �� ��� � �� � ���� ��� �� �� ������� �� � ����� � ��� �� �� ������� � ���� ����� ������ ��������� �� � ��� � �� � ����!� ���� � � �� �� ��� �" � ������� ������� � � �������� ����������������� � ��� ������������ ���������������� ����� � ������������������� ������������������������ ��������� ���� � �������� � � � ��� ��������� ������������� �� ���� � ������� � �� � ������������������ ��� ������� �� ���� � ���� ������ ������� ������������ ���� ��� � ��� � ���� ������ ���������� � ������������������ �� ������� � � ��� ����� � �� � � ��� ����������� ��� �� �� ������ ���� ������ � � !���� "# ��������� �� ���� � $��� ���� �� �����%���������������� �� "&�����'�� � �� "&����� ���� �����( � )���� �'� * � +������� � ��"# ������� 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 relacionamentoInclusã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 uso descrevem 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