1 / 77

Engenharia de Requisitos Marcela Santos

Engenharia de Requisitos Marcela Santos. Apresentação baseada no material do professor Alexandre Vasconcelos (amlv@cin.ufpe.br). “Todos os projetos são viáveis, desde que tenham ilimitados recursos e tempo infinito!”. Objetivos.

azizi
Download Presentation

Engenharia de Requisitos Marcela Santos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Engenharia de RequisitosMarcela Santos Apresentação baseada no material do professor Alexandre Vasconcelos (amlv@cin.ufpe.br)

  2. “Todos os projetos são viáveis, desde que tenham ilimitados recursos e tempo infinito!”

  3. Objetivos • Descrever as principais atividades da engenharia de requisitos • Introduzir técnicas para a elicitação e análise de requisitos • Descrever validação de requisitos • Discutir o gerenciamento de requisitos

  4. Elicitação de requisitos e análise Estudo de viabilidade Especificação de requisitos Validação de requisitos Relatório de viabilidade Requisitos do usuário e do sistema Modelos do sistema Documento de requisitos O Processo da Engenharia de Requisitos

  5. O Processo da Engenharia de Requisitos Elicitação de requisitos e análise Estudo de viabilidade Especificação de requisitos Validação de requisitos Relatório de viabilidade Requisitos do usuário e do sistema Modelos do sistema Documento de requisitos

  6. Elicitação de requisitos e análise • Esta atividade divide-se em dois esforços maiores: • Elicitação dos requisitos em si • Técnicas de elicitação • Análise do que foi elicitado • Processo de análise

  7. Que é um requisito? • Tanto pode ser • Uma declaração abstrata de alto nível de um serviço • Como uma restrição do sistema • Quanto uma especificação funcional matemática detalhada

  8. Elicitação de Requisitos • Também denominada de descoberta de requisitos • Envolve pessoal objetivando descobrir o domínio de aplicação, serviços que devem ser fornecidos bem como restrições • Deve envolver usuários finais, gerentes, pessoal envolvido na manutenção, especialistas no domínio, etc. (Stakeholders).

  9. Visão dos Requisitos • Requisitos do Usuário • Declarações em linguagem natural com diagramas de serviços que o sistema deve oferecer e suas restrições operacionais. Escrito para os clientes • Requisitos do Sistema • Documento estruturado com descrições detalhadas sobre os serviços do sistema. Contrato entre cliente e fornecedor

  10. Tipos de Requisitos • Requisitos Funcionais • Requisitos Não-Funcionais • Requisitos de Domínio

  11. Requisitos Funcionais • Descreve funcionalidade e serviços do sistema • Depende do • Tipo do software • Usuários esperados • Tipo do sistema onde o software é usado

  12. Exemplos de R.F. • [RF001] Usuário pode pesquisar todo ou um sub-conjunto do banco de dados • [RF002] Sistema deve oferecer visualizadores apropriados para o usuário ler documentos armazenados • [RF003] A todo pedido deve ser associado um identificador único (PID), o qual o usuário pode copiar para a área de armazenamento permanente da conta

  13. Requisitos Não-Funcionais • Definem propriedades e restrições do sistema (tempo, espaço, etc) • Requisitos de processo também podem especificar o uso de determinadas linguagens de programação, método de desenvolvimento • Requisitos não-funcionais podem ser mais críticos que requisitos funcionais. Não satisfaz, sistema inútil.

  14. Requisitos Não-Funcionais • Devido à sua própria definição, requisitos não-funcionais são esperados mensuráveis • Assim, deve-se associar forma de medida/referência a cada requisito não-funcional elicitado

  15. Medidas de Requisitos(Não-Funcionais) Propriedade Medida Velocidade Transações processadas/seg Tempo de resposta do usuário/evento Tamanho K bytes No de chips de RAM Facilidade de uso Tempo de treinamento No de quadros de ajuda Confiabilidade Tempo médio de falhas Probabilidade de indisponibilidade Taxa de ocorrência de falhas Robustez Tempo de reinício após falha Percentual de eventos causando falhas Probabilidade de corrupção de dados após falha Portabilidade Percentual de declarações dependentes do destino No de sistemas destino

  16. Classificação de R. N. F. • Requisitos do Produto • Produto deve comportar-se de forma particular (velocidade de execução, confiabilidade, etc.) • Requisitos Organizacionais • Conseqüência de políticas e procedimentos organizacionais (padrões de processo usados, requisitos de implementação, etc.) • Requisitos Externos • Conseqüência de fatores externos ao sistema e ao processo de desenvolvimento (legislação, etc.)

  17. Exemplos de R. N. F. • Requisitos do Produto • [RNF001] Toda consulta ao B.D., baseada em código de barras, deve resultar em até 5 s • Requisitos Organizacionais • [RNF002] Todos os documentos entregues devem seguir o padrão de relatórios XYZ-00 • Requisitos Externos • [RNF003] Informações pessoais do usuário não devem ser vistas pelos operadores do sistema

  18. Requisitos de Domínio • Derivados do domínio da aplicação e descrevem características do sistema e qualidades que refletem o domínio • Podem ser requisitos funcionais novos, restrições sobre requisitos existentes ou computações específicas • Se requisitos de domínio não forem satisfeitos, o sistema pode tornar-se impraticável

  19. Requisitos de Domínio (Problemas) • Entendimento • Requisitos são descritos na linguagem do domínio da aplicação • Não é entendido pelos engenheiros de software que vão desenvolver a aplicação • Implicitude • Especialistas no domínio entendem a área tão bem que não tornam todos os requisitos de domínio explícitos

  20. Requisitos Requisitos Usuário Sistema  Domínio Funcionais Não-funcionais Produto Externo Organização

  21. Técnicas de Elicitação • Entrevistas • Questionários • Casos de Uso • Jogo de Funções • Brainstorming • Workshop de Requisitos

  22. Análise de Requisitos Definição e especificação de requisitos Documento de requisitos 7 8 Validação dos requisitos Entendimento do domínio 6 Atrib. Prioridade Entrada do processo 1 5 4 2 Coleta de requisitos Resolução de conflito 3 Classificação

  23. Entendimento do Domínio • Desenvolver sistemas envolve domínios além de software e hardware • Podemos ter que entender sobre • Contabilidade • Saúde • Supermercados • Etc.

  24. Coleta de Requisitos • Como vimos anteriormente, a coleta de requisitos é feita através de técnicas • Nesta etapa, os requisitos são simplesmente documentados à medida que são coletados • Resulta em documento preliminar (draft)

  25. Classificação dos Requisitos • Esta etapa consiste basicamente em agrupar os diversos requisitos coletados em categorias (clusters) bem-definidos • Por exemplo • Deve ser possível consultar o preço de uma mercadoria • A consulta deve retornar uma resposta em no máximo 5s

  26. Problema da Análise de Requisitos • Stakeholders em geral não sabem o que querem • Stakeholders expressam requisitos em sua terminologia • Stakeholders diferentes podem gerar requisitos conflitantes

  27. Problema da Análise de Requisitos • Fatores políticos e organizacionais podem influenciar os requisitos do sistema • Requisitos mudam durante o processo de análise. Stakeholders novos podem surgir e o ambiente de trabalho mudar

  28. Resolução de Conflitos • É normal que ocorram requisitos conflitantes • Por exemplo • R-23: O sistema deve ... • R-45: O sistema não deve ... • Cliente/usuário deve ser consultado para resolver conflitos (ambigüidades)

  29. Atribuição de Prioridade • Alguns requisitos são mais urgentes que outros • É essencial determinar a prioridade dos requisitos junto ao cliente • Requisitos de maior prioridade são considerados em primeiro lugar

  30. Prioridade • Requisitos podem ser vistos em três classes distintas • Essenciais • Importantes • Desejáveis • Em princípio, sistema deve resolver todos os requisitos de essenciais para desejáveis

  31. Exemplo de Prioridade • [RF001] Consulta X ao B.D. deve retornar dados A, B, C • Prioridade: Essencial • [RNF001] Consulta X ao B.D. deve visualizar dados segundo padrão Y • Prioridade: Importante • [RNF010] Consulta X ao B.D. deve usar cores azuis nos resultados • Prioridade: Desejável

  32. Validação dos Requisitos • Será que realmente entendi o que o cliente deseja? • Devo me certificar de que não houve falha em nossa interação (comunicação) • Há diversas técnicas de validação

  33. Validação de Requisitos • Demonstrar que os requisitos definem o sistema que o cliente realmente deseja • Custos com erros de requisitos são altos • Consertar um erro de requisitos após entrega do sistema pode custar mais de 100 vezes o custo de um erro de implementação

  34. Técnicas de Validação de Requisitos • Revisões de Requisitos • Análise manual sistemática dos requisitos • Prototipação • Uso de modelo executável do sistema para avaliar requisitos • Geração de Casos de Teste • Desenvolver testes específicos para os requisitos para avaliá-los • Análise de Consistência Automática • Avaliar uma especificação dos requisitos

  35. Gerenciamento de Requisitos • Gerenciamento de requisitos é o processo de controlar as mudanças dos requisitos durante • O processo da engenharia de requisitos • E desenvolvimento do sistema

  36. Gerenciamento de Requisitos • Requisitos são inevitavelmente incompletos e inconsistentes • Requisitos novos surgem durante o processo de acordo com mudanças nas necessidades do negócio e um entendimento melhor do sistema é desenvolvido • Diferentes pontos de vista têm diferentes requisitos e esses geralmente são contraditórios

  37. Rastreamento • Responsável por dependências entre requisitos, suas origens e projeto do sistema • Rastreamento de Origem • Associação entre requisitos e stakeholders que propuseram tais requisitos

  38. Rastreamento • Rastreamento de Requisitos • Associação entre requisitos dependentes • Rastreamento de Projeto • Associação dos requisitos com o projeto • Usar hipertexto ou referência cruzada • Ou matriz de rastreamento

  39. 1.Rastrear requisitos do usuário nos do sistema 2.Rastrear requisitos no projeto 3.Rastrear requisitos nos procedimentos de teste 4.Rastrear requisitos do usuário no plano Rastreamento Requisitos Produto (Características) Req A 1 Requisitos Detalhados(Casos de Uso) Req B 3 4 2 Projeto Teste Doc. Usuário Modelos Suítes Teste Plano

  40. Req A antes Req A depois “if return value > $2” “if return value > $5” Req B Req B Req C Req C Rastreamento: Análise de Impacto • Links dos requisitos devem ser marcados como “revisar” • Links “revisar” devem ser analisados

  41. Documento de Requisitos • Fonte: IEEE/ANSI (830-1998) • 1. Introdução • 1.1 Propósito do documento • 1.2 Escopo do sistema • 1.3 Definições, acrônimos e abreviaturas • 1.4 Referências • 1.5 Descrição do resto do documento

  42. Documento de Requisitos • Fonte: IEEE/ANSI (830-1998) • 2. Descrição geral • 2.1 Perspectiva do produto • 2.2 Funções do produto • 2.3 Características dos usuários • 2.4 Restrições gerais • 2.5 Assertivas e dependências

  43. Documento de Requisitos • Fonte: IEEE/ANSI (830-1998) • 3. Requisitos específicos • requisitos funcionais, não-funcionais, GUI com o usuário: • funcionalidade, interfaces externas, desempenho, restrições, atributos do sistema, caract. qualidade, ... • Apêndices • Índice

  44. Diagramas de Casos de Uso

  45. Objetivos • Introduzir conceitos de use case, ator e fluxo de eventos • Apresentar sub-fluxos de eventos • Discutir sobre identificação, evolução e organização de use cases • Apresentar notação UML para reusar atores e use cases

  46. Procedimento computacional/algorítmico atômico Use Case • Seqüência de ações, executada pelo sistema, que gera um resultado • De valor observável • E para ator particular Função

  47. Use Case e Ator • Alguém ou alguma coisa (fora do sistema) que interage com o sistema Emissor/Receptor

  48. Use Case e Ator • A descrição de um use case define o que o sistema faz quando o use case é realizado • A funcionalidade do sistema é definida por um conjunto de use cases, cada um representando um fluxo de eventos específico

  49. Descrição Use Case e Ator Passo 1 Passo 2 … Passo N Emissor Função

  50. Exemplo de Use Case e Ator • Cliente de banco pode usar um caixa automático para • sacar dinheiro, transferir dinheiro ou consultar o saldo da conta • Ator: Cliente • Use cases: Sacar dinheiro, transferir dinheiro e consultar saldo

More Related