Requisitos de software

713 visualizações

Publicada em

Desenvolvimento de Software - Requisitos de software

Publicada em: Software
  • Seja o primeiro a comentar

Requisitos de software

  1. 1. Prof. Marcelo H. Yamaguti (1) Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Prof. Marcelo H. Yamaguti Introdução à Engenharia de Software DESENVOLVIMENTO DE SOFTWARE Requisitos de Software
  2. 2. PUCRS - FACIN Prof. Marcelo H. Yamaguti (2) Referências • Estude para aprofundamento no conteúdo: – SOMMERVILLE, Ian. Engenharia de Software. 9ª ed. São Paulo: Pearson, 2011. - Capítulo 4 – PFLEEGER, Shari Lawrence. Engenharia de Software: teoria e prática. 2ª ed. São Paulo: Prentice-Hall, 2004. - Capítulo 4 – IEEE. Guide to the Software Engineering Body of Knowledge. SWEBOK. Version 3. IEEE Computer Society. 2014. – Chapter 1 – SEI. CMMI for Development. 2010. – Chapter Requirements Management – SOFTEX. Guia geral MPS de Software. 2012. - Seção 9.1.2 Introdução à Engenharia de Software
  3. 3. PUCRS - FACIN Prof. Marcelo H. Yamaguti (3) Conceito • O que é um “Requisito”? – Declaração abstrata em alto nível de um serviço que o sistema deve oferecer ou uma restrição a um sistema. – Nível de definição abrangente – Requisito de usuário. – Definição detalhada e formal de uma função de um sistema. – Nível de definição detalhado – Requisito de sistema. Introdução à Engenharia de Software
  4. 4. PUCRS - FACIN Prof. Marcelo H. Yamaguti (4) RF, RNF e RN • Requisitos funcionais (RF), requisitos não-funcionais (RNF) e regras de negócio (RN) podem ser confundidos como sinônimos, mas possuem características diferentes. • Uma primeira diferença: – RF e RNF referem-se ao sistema. Ex.: “o sistema deve permitir que um cliente realize a compra de produtos do catálogo”. – RN são independentes do sistema. Ex.: “aqui na empresa só vendemos para clientes adimplentes”. Introdução à Engenharia de Software
  5. 5. PUCRS - FACIN Prof. Marcelo H. Yamaguti (5) Requisitos • Requisitos servem como especificação do que deve ser implementado. • Requisitos são descrições do que o sistema deve fazer, os serviços que oferece e as restrições de seu funcionamento. • Um requisito pode descrever: – uma facilidade encontrada no nível do usuário – uma propriedade geral do sistema – uma restrição do sistema – uma restrição ao desenvolvimento do sistema Introdução à Engenharia de Software
  6. 6. PUCRS - FACIN Prof. Marcelo H. Yamaguti (6) Requisitos • Há várias classificações possíveis de requisitos. • Uma classificação é: – Requisitos de usuário – Requisitos de sistema • Outra classificação é: – Requisitos funcionais – Requisitos não-funcionais Introdução à Engenharia de Software
  7. 7. PUCRS - FACIN Prof. Marcelo H. Yamaguti (7) Requisitos funcionais X não- funcionais • Requisitos funcionais: – São declarações de serviços que o sistema deve fornecer. – Pode-se definir também o que o sistema não deve fazer. • Requisitos não-funcionais: – São restrições aos serviços e funções oferecidos pelo sistema. – Muitas vezes se aplicam por todo o sistema. • Obs.: – Um requisito não-funcional pode gerar novos requisitos funcionais. – Pode haver relacionamento entre os requisitos. Introdução à Engenharia de Software
  8. 8. PUCRS - FACIN Prof. Marcelo H. Yamaguti (8) RF – Requisito Funcional • Um Requisito Funcional define uma funcionalidade ou serviço do sistema. – Descreve como o sistema transforma entradas em saídas – Descreve como o sistema se comporta em situações especiais – Descreve como o sistema NÃO deve se comportar • Exemplo: “O sistema deve emitir relatórios de vendas de cada mês”. Introdução à Engenharia de Software
  9. 9. PUCRS - FACIN Prof. Marcelo H. Yamaguti (9) RF – Requisito Funcional • Características esperadas: – Completeza: todos os serviços requeridos pelo usuário devem ser definidos. – Consistência: as definições não devem ser contraditórias ou ambíguas. • Obs.: – Para sistemas grandes ou complexos garantir a completeza pode ser mais difícil pela amplitude do sistema ou dos stakeholders envolvidos, que também pode gerar inconsistências entre os requisitos. Introdução à Engenharia de Software
  10. 10. PUCRS - FACIN Prof. Marcelo H. Yamaguti (10) RNF – Requisito Não- Funcional • Um Requisito Não-Funcional define restrições ou qualidades do sistema. – Podem afetar vários requisitos funcionais. – Existem várias classificações possíveis. – Uma classificação possível: • Usabilidade • Confiabilidade • Desempenho • Portabilidade • Obs: – Podem afetar a arquitetura do sistema inteiro. Ex.: desempenho. – Podem gerar requisitos funcionais para o seu cumprimento. Introdução à Engenharia de Software
  11. 11. PUCRS - FACIN Prof. Marcelo H. Yamaguti (11) RNF – Requisito Não- Funcional • Exemplos: – “A resposta do sistema deve ser em até 3 segundos após uma solicitação”. – “Os relatórios são gerados em formato PDF não editável”. • Característica esperada: – Verificável/testável: declarar o requisito não-funcional de forma que seja possível identificar uma métrica associada. – Exemplos: • Velocidade: transações/segundo • Facilidade de uso: número de erros na utilização • Portabilidade: percentual de declarações/bibliotecas dependentes da plataforma-alvo Introdução à Engenharia de Software
  12. 12. PUCRS - FACIN Prof. Marcelo H. Yamaguti (12) RN – Requisito ou Regra de Negócio • Uma Regra de Negócio define ou restringe aspectos da organização (empresa). – É independente do sistema. – Define as características próprias de como a organização funciona. • Podem gerar requisitos não-funcionais e funcionais. • Exemplos: “Na nossa empresa só vendemos produtos para clientes adimplentes”. “Na nossa empresa não aceitamos pagamento por cartão de crédito” Introdução à Engenharia de Software
  13. 13. PUCRS - FACIN Prof. Marcelo H. Yamaguti (13) Processo de engenharia de requisitos Elicitação Especificação Validação Introdução à Engenharia de Software
  14. 14. PUCRS - FACIN Prof. Marcelo H. Yamaguti (14) Processo de engenharia de requisitos 1. Elicitação – levantamento de requisitos: 1. Descoberta - identificação de requisitos 2. Classificação e organização - organização de requisitos 3. Priorização e negociação - resolução de conflitos Elicitação Especificação Validação Introdução à Engenharia de Software
  15. 15. PUCRS - FACIN Prof. Marcelo H. Yamaguti (15) Processo de engenharia de requisitos 1. Elicitação – levantamento de requisitos: 1. Descoberta – identificação de requisitos: • Os analistas trabalham com o cliente e usuários para descobrir mais informações sobre o domínio da aplicação, serviços do novo sistema, e restrições operacionais. • Stakeholders: usuários finais, gerentes, engenheiros envolvidos em manutenção, especialistas no domínio, etc. Introdução à Engenharia de Software
  16. 16. PUCRS - FACIN Prof. Marcelo H. Yamaguti (16) Processo de engenharia de requisitos 1. Elicitação – levantamento de requisitos: – Desafios: • As pessoas podem não saber o que realmente querem • Stakeholders expressam requisitos em seus próprios termos • Stakeholders diferentes podem ter requisitos conflitantes • Fatores organizacionais e políticos podem influenciar os requisitos do sistema • Os requisitos mudam durante o processo de análise. Novos stakeholders podem surgir e o ambiente de negócio mudar Introdução à Engenharia de Software
  17. 17. PUCRS - FACIN Prof. Marcelo H. Yamaguti (17) Processo de engenharia de requisitos 1. Elicitação – levantamento de requisitos: 2. Classificação e organização - organização de requisitos • Classificar requisitos identificados por similaridade • Organizar requisitos em grupos (ex.: “módulos”) • Vários requisitos identificados podem se tornar apenas um requisito, com mais de um cenário (conjunto de passos ou atividades para atingir um resultado). Introdução à Engenharia de Software
  18. 18. PUCRS - FACIN Prof. Marcelo H. Yamaguti (18) Processo de engenharia de requisitos 1. Elicitação – levantamento de requisitos: 3. Priorização e negociação - resolução de conflitos • Em caso de requisitos conflitantes é necessário negociar com os stakeholders envolvidos a resolução ou ajuste dos requisitos. • Priorizar requisitos mais importantes. Introdução à Engenharia de Software
  19. 19. PUCRS - FACIN Prof. Marcelo H. Yamaguti (19) Processo de engenharia de requisitos 2. Especificação – descrição de requisitos • Usualmente gera um ‘Documento de Requisitos’, às vezes chamado de ‘Especificação de Requisitos de Software’ ou SRS (Software Requirements Specification). Elicitação Especificação Validação Introdução à Engenharia de Software
  20. 20. PUCRS - FACIN Prof. Marcelo H. Yamaguti (20) Especificação de requisitos • A especificação de requisitos pode ser realizada de diversas formas: – Sentenças em linguagem natural – Linguagem natural estruturada – Diagramas – Tabelas – Especificações matemáticas Introdução à Engenharia de Software
  21. 21. PUCRS - FACIN Prof. Marcelo H. Yamaguti (21) Especificação de requisitos • Sentenças em linguagem natural: – Interessante para a especificação de requisitos do usuário. – Diretrizes: • Busque utilizar uma sintaxe padrão. Ex.: <Sujeito> <ação> <consequência>: “O sistema deve emitir relatório de gastos mensais no início do mês”; “O usuário deve ser capaz de cadastrar um novo produto no sistema.” • Use um subconjunto de verbos para definir requisitos obrigatórios (ex.: “deve”) e opcionais (ex.: “pode”). • Evite jargão de informática. • Sempre que possível associar o ‘racional’ de cada requisito. Ex.: “O sistema deve emitir relatório de gastos mensais no início do mês (O setor contábil precisa dos dados até o final da primeira semana e os gastos podem variar muito de uma semana para outra)” Introdução à Engenharia de Software
  22. 22. PUCRS - FACIN Prof. Marcelo H. Yamaguti (22) Especificação de requisitos • Linguagem natural estruturada: – Interessante para permitir que o usuário consiga ler a especificação e a equipe técnica ter uma base mais detalhada para o desenvolvimento do software. – Ex.: Detalhamento textual de caso de uso. • Diagramas e outras técnicas: – Podem facilitar o entendimento da equipe técnica, mas dificultar para o usuário. – Ex.: Diagrama de Casos de Uso para Requisitos Funcionais. Introdução à Engenharia de Software
  23. 23. PUCRS - FACIN Prof. Marcelo H. Yamaguti (23) Processo de engenharia de requisitos 3. Validação – garantia da validade dos requisitos: 1. Prototipação, geração de casos de teste, revisões, checklists Elicitação Especificação Validação Introdução à Engenharia de Software
  24. 24. PUCRS - FACIN Prof. Marcelo H. Yamaguti (24) Gerenciamento de requisitos • Atividades comuns: – Identificação e entendimento de requisitos – Avaliação e comprometimento com os requisitos – Rastreabilidade bidirecional de requisitos – Revisão do planejamento em relação aos requisitos – Gerenciamento de mudanças de requisitos Introdução à Engenharia de Software
  25. 25. Prof. Marcelo H. Yamaguti (25) Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Prof. Marcelo H. Yamaguti Introdução à Engenharia de Software DESENVOLVIMENTO DE SOFTWARE Requisitos de Software

×