SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
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
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
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
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
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
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
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
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
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
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
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
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
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (13)
Processo de engenharia de
requisitos
Elicitação Especificação Validação
Introdução à Engenharia de Software
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
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
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
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
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
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
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
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
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
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
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
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

Mais conteúdo relacionado

Mais procurados

Aula 05 - Exercício de projeto - Projeto de Redes de Computadores
Aula 05 - Exercício de projeto - Projeto de Redes de ComputadoresAula 05 - Exercício de projeto - Projeto de Redes de Computadores
Aula 05 - Exercício de projeto - Projeto de Redes de Computadores
Dalton Martins
 
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Sérgio Souza Costa
 
Documento de requisitos_-_especificacoes 01
Documento de requisitos_-_especificacoes 01Documento de requisitos_-_especificacoes 01
Documento de requisitos_-_especificacoes 01
gtiprotec
 

Mais procurados (20)

Qualidade de Software: Modelos e normas
Qualidade de Software: Modelos e normasQualidade de Software: Modelos e normas
Qualidade de Software: Modelos e normas
 
Diagramas de casos de uso - aula 2
Diagramas de casos de uso - aula 2Diagramas de casos de uso - aula 2
Diagramas de casos de uso - aula 2
 
Análise de Sistemas - Requisitos (Revisão e Requisitos Suplementares)
Análise de Sistemas - Requisitos (Revisão e Requisitos Suplementares)Análise de Sistemas - Requisitos (Revisão e Requisitos Suplementares)
Análise de Sistemas - Requisitos (Revisão e Requisitos Suplementares)
 
Qualidade de Software: Teste de software
Qualidade de Software: Teste de softwareQualidade de Software: Teste de software
Qualidade de Software: Teste de software
 
Modelos de Engenharia de Software
Modelos de Engenharia de SoftwareModelos de Engenharia de Software
Modelos de Engenharia de Software
 
UML
UMLUML
UML
 
Aula 05 - Exercício de projeto - Projeto de Redes de Computadores
Aula 05 - Exercício de projeto - Projeto de Redes de ComputadoresAula 05 - Exercício de projeto - Projeto de Redes de Computadores
Aula 05 - Exercício de projeto - Projeto de Redes de Computadores
 
Engenharia de requisitos
Engenharia de requisitosEngenharia de requisitos
Engenharia de requisitos
 
Introducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareIntroducao a Arquitetura de Software
Introducao a Arquitetura de Software
 
Gerência de Requisitos
Gerência de RequisitosGerência de Requisitos
Gerência de Requisitos
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
engenharia-de-requisitos
engenharia-de-requisitosengenharia-de-requisitos
engenharia-de-requisitos
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de software
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
 
Minicurso PostgreSQl
Minicurso PostgreSQlMinicurso PostgreSQl
Minicurso PostgreSQl
 
Documento de requisitos_-_especificacoes 01
Documento de requisitos_-_especificacoes 01Documento de requisitos_-_especificacoes 01
Documento de requisitos_-_especificacoes 01
 
Uml
UmlUml
Uml
 
GCS - Aula 02 - Conceitos Principais
GCS - Aula 02 - Conceitos PrincipaisGCS - Aula 02 - Conceitos Principais
GCS - Aula 02 - Conceitos Principais
 

Destaque

Especificacao de requisitos
Especificacao de requisitosEspecificacao de requisitos
Especificacao de requisitos
Alcidemar Lemos
 
Circuito de ciencias 2011 - DRE Santa Maria
Circuito de ciencias  2011 - DRE Santa MariaCircuito de ciencias  2011 - DRE Santa Maria
Circuito de ciencias 2011 - DRE Santa Maria
Jeovany Anjos
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
elliando dias
 
Ap i unidade 3 - levantamento de requisitos
Ap i   unidade 3 - levantamento de requisitosAp i   unidade 3 - levantamento de requisitos
Ap i unidade 3 - levantamento de requisitos
Glauber Aquino
 
Gerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de softwareGerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de software
Roberto Brandini
 

Destaque (20)

Metodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareMetodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de Software
 
Especificação de Requisitos de Software
Especificação de Requisitos de SoftwareEspecificação de Requisitos de Software
Especificação de Requisitos de Software
 
Metodologias de desenvolvimento - Waterfall vs Agile
Metodologias de desenvolvimento - Waterfall vs AgileMetodologias de desenvolvimento - Waterfall vs Agile
Metodologias de desenvolvimento - Waterfall vs Agile
 
Aula4 levantamento requisitos
Aula4 levantamento requisitosAula4 levantamento requisitos
Aula4 levantamento requisitos
 
Metodologias de desenvolvimento de sistemas de informação
Metodologias de desenvolvimento de sistemas de informaçãoMetodologias de desenvolvimento de sistemas de informação
Metodologias de desenvolvimento de sistemas de informação
 
Requisitos De Software
Requisitos De SoftwareRequisitos De Software
Requisitos De Software
 
Fundamentos de Engenharia de Requisitos
Fundamentos de Engenharia de RequisitosFundamentos de Engenharia de Requisitos
Fundamentos de Engenharia de Requisitos
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Definição e classificação dos requisitos
Definição e classificação dos requisitosDefinição e classificação dos requisitos
Definição e classificação dos requisitos
 
Especificacao de requisitos
Especificacao de requisitosEspecificacao de requisitos
Especificacao de requisitos
 
Gerenciamento de Configuração
Gerenciamento de ConfiguraçãoGerenciamento de Configuração
Gerenciamento de Configuração
 
Modelagem 16102006
Modelagem 16102006Modelagem 16102006
Modelagem 16102006
 
2 - Concepcao
2 - Concepcao2 - Concepcao
2 - Concepcao
 
Circuito de ciencias 2011 - DRE Santa Maria
Circuito de ciencias  2011 - DRE Santa MariaCircuito de ciencias  2011 - DRE Santa Maria
Circuito de ciencias 2011 - DRE Santa Maria
 
UAI Test 2014 - Storyboards - dos Requisitos aos Testes
UAI Test 2014 - Storyboards - dos Requisitos aos TestesUAI Test 2014 - Storyboards - dos Requisitos aos Testes
UAI Test 2014 - Storyboards - dos Requisitos aos Testes
 
Scrum - Profº James Moreira Jr.
Scrum - Profº James Moreira Jr.Scrum - Profº James Moreira Jr.
Scrum - Profº James Moreira Jr.
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
 
Metodologias Ageis
Metodologias AgeisMetodologias Ageis
Metodologias Ageis
 
Ap i unidade 3 - levantamento de requisitos
Ap i   unidade 3 - levantamento de requisitosAp i   unidade 3 - levantamento de requisitos
Ap i unidade 3 - levantamento de requisitos
 
Gerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de softwareGerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de software
 

Semelhante a Requisitos de software

Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trata
Roni Reis
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006
Luís Fernando Richter
 
Es2 modelo de processo de software
Es2 modelo de processo de softwareEs2 modelo de processo de software
Es2 modelo de processo de software
luacal
 
Aula 03 de engenharia de software uespi 2011-1
Aula 03 de engenharia de software uespi 2011-1Aula 03 de engenharia de software uespi 2011-1
Aula 03 de engenharia de software uespi 2011-1
Erivelton Silva Rocha
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
Tiago Barros
 

Semelhante a Requisitos de software (20)

Eng.ª do Software - 2. Requisitos
Eng.ª do Software - 2. RequisitosEng.ª do Software - 2. Requisitos
Eng.ª do Software - 2. Requisitos
 
Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trata
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006
 
Prodemge WTQS - Minicurso técnicas de verificação de requisitos
Prodemge WTQS - Minicurso técnicas de verificação de requisitosProdemge WTQS - Minicurso técnicas de verificação de requisitos
Prodemge WTQS - Minicurso técnicas de verificação de requisitos
 
Identificar Requisitos Funcionais.pdf
Identificar Requisitos Funcionais.pdfIdentificar Requisitos Funcionais.pdf
Identificar Requisitos Funcionais.pdf
 
Análise de Sistemas Orientado a Objetos - 01
Análise de Sistemas Orientado a Objetos - 01Análise de Sistemas Orientado a Objetos - 01
Análise de Sistemas Orientado a Objetos - 01
 
Analise sistemas 04
Analise sistemas 04Analise sistemas 04
Analise sistemas 04
 
Es2 modelo de processo de software
Es2 modelo de processo de softwareEs2 modelo de processo de software
Es2 modelo de processo de software
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Análise de Sistemas Orientado a Objetos - 02
Análise de Sistemas Orientado a Objetos - 02Análise de Sistemas Orientado a Objetos - 02
Análise de Sistemas Orientado a Objetos - 02
 
sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistema...
sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistema...sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistema...
sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistema...
 
Modelos e etapas do processo de software.pdf
Modelos e etapas do processo de software.pdfModelos e etapas do processo de software.pdf
Modelos e etapas do processo de software.pdf
 
Aula 03 de engenharia de software uespi 2011-1
Aula 03 de engenharia de software uespi 2011-1Aula 03 de engenharia de software uespi 2011-1
Aula 03 de engenharia de software uespi 2011-1
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Aula 01 - Introdução Engenharia de requisitos - Prof.ª Cristiane Fidelix
Aula 01 - Introdução Engenharia de requisitos - Prof.ª Cristiane FidelixAula 01 - Introdução Engenharia de requisitos - Prof.ª Cristiane Fidelix
Aula 01 - Introdução Engenharia de requisitos - Prof.ª Cristiane Fidelix
 
Verificação e Validação
Verificação e ValidaçãoVerificação e Validação
Verificação e Validação
 
Análise de sistemas análise de requisitos
Análise de sistemas   análise de requisitosAnálise de sistemas   análise de requisitos
Análise de sistemas análise de requisitos
 
Os aspectos mais relevantes da Engenharia de Requisitos
Os aspectos mais relevantes da Engenharia de RequisitosOs aspectos mais relevantes da Engenharia de Requisitos
Os aspectos mais relevantes da Engenharia de Requisitos
 
Es capítulo 4 - engenharia de requisitos
Es   capítulo 4  - engenharia de requisitosEs   capítulo 4  - engenharia de requisitos
Es capítulo 4 - engenharia de requisitos
 
Engenharia de software i 3 - processos de engenharia de requisitos
Engenharia de software i   3 - processos de engenharia de requisitosEngenharia de software i   3 - processos de engenharia de requisitos
Engenharia de software i 3 - processos de engenharia de requisitos
 

Requisitos de software

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. PUCRS - FACIN Prof. Marcelo H. Yamaguti (13) Processo de engenharia de requisitos Elicitação Especificação Validação Introdução à Engenharia de Software
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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