Requisitos de software

Marcelo Yamaguti
Marcelo YamagutiProfessor em Pontifícia Universidade Católica do Rio Grande do Sul
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
1 de 25

Recomendados

Levantamento Ágil de Requisitos por
Levantamento Ágil de RequisitosLevantamento Ágil de Requisitos
Levantamento Ágil de RequisitosPaulo Furtado
5.4K visualizações108 slides
Engenharia de requisitos por
Engenharia de requisitosEngenharia de requisitos
Engenharia de requisitosMailson Queiroz
2.1K visualizações68 slides
1 requisitos funcionais e não funcionais ok por
1  requisitos funcionais e não funcionais ok1  requisitos funcionais e não funcionais ok
1 requisitos funcionais e não funcionais okMarcos Morais de Sousa
1.6K visualizações30 slides
Analise de Requisitos por
Analise de RequisitosAnalise de Requisitos
Analise de Requisitoselliando dias
9K visualizações52 slides
Definição e classificação dos requisitos por
Definição e classificação dos requisitosDefinição e classificação dos requisitos
Definição e classificação dos requisitosETEIT - Escola Técnica da Univale
25.8K visualizações33 slides
Arquitetura de Software por
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Softwareeros.viggiano
3.3K visualizações41 slides

Mais conteúdo relacionado

Mais procurados

Aula 1 requisitos por
Aula 1   requisitosAula 1   requisitos
Aula 1 requisitoslicardino
1.6K visualizações41 slides
Aula - Metodologias Ágeis por
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias ÁgeisMauricio Cesar Santos da Purificação
2.3K visualizações90 slides
Arquitetura de Software Visão Geral por
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geralsergiocrespo
6.4K visualizações65 slides
Engenharia de Requisitos por
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de RequisitosEstêvão Bissoli Saleme
2.3K visualizações72 slides
Engenharia Requisitos - Aula4 06 03 2006 por
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Luís Fernando Richter
3.7K visualizações60 slides
Segurança da Informação - Aula 9 - Introdução a Auditoria de Sistemas por
Segurança da Informação - Aula 9 - Introdução a Auditoria de SistemasSegurança da Informação - Aula 9 - Introdução a Auditoria de Sistemas
Segurança da Informação - Aula 9 - Introdução a Auditoria de SistemasCleber Fonseca
1.1K visualizações18 slides

Mais procurados(20)

Aula 1 requisitos por licardino
Aula 1   requisitosAula 1   requisitos
Aula 1 requisitos
licardino1.6K visualizações
Arquitetura de Software Visão Geral por sergiocrespo
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geral
sergiocrespo6.4K visualizações
Engenharia Requisitos - Aula4 06 03 2006 por Luís Fernando Richter
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006
Luís Fernando Richter3.7K visualizações
Segurança da Informação - Aula 9 - Introdução a Auditoria de Sistemas por Cleber Fonseca
Segurança da Informação - Aula 9 - Introdução a Auditoria de SistemasSegurança da Informação - Aula 9 - Introdução a Auditoria de Sistemas
Segurança da Informação - Aula 9 - Introdução a Auditoria de Sistemas
Cleber Fonseca1.1K visualizações
Testes de Software por Capgemini
Testes de SoftwareTestes de Software
Testes de Software
Capgemini3.2K visualizações
Aps lista de exercícios por Guilherme
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercícios
Guilherme4.7K visualizações
Aula 1 - Introdução a Engenharia de Software por Leinylson Fontinele
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de Software
Leinylson Fontinele1.1K visualizações
Arquitetura de Software por Marcelo Yamaguti
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
Marcelo Yamaguti1.8K visualizações
Fundamentos de Engenharia de Requisitos por Barbara Lima
Fundamentos de Engenharia de RequisitosFundamentos de Engenharia de Requisitos
Fundamentos de Engenharia de Requisitos
Barbara Lima33.2K visualizações
Arquitetura de Software por elliando dias
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
elliando dias3.5K visualizações
Introdução a Gerência de Configuração por Igor Takenami
Introdução a Gerência de ConfiguraçãoIntrodução a Gerência de Configuração
Introdução a Gerência de Configuração
Igor Takenami3.6K visualizações
Qualidade de Software: Modelos e normas por Alex Camargo
Qualidade de Software: Modelos e normasQualidade de Software: Modelos e normas
Qualidade de Software: Modelos e normas
Alex Camargo155 visualizações
Ciclo de vida de software por diha36
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de software
diha362.6K visualizações
Teste de Software por Sérgio Souza Costa
Teste de SoftwareTeste de Software
Teste de Software
Sérgio Souza Costa5.3K visualizações
06 Modelagem de banco de dados: Modelo Lógico por Centro Paula Souza
06  Modelagem de banco de dados: Modelo Lógico06  Modelagem de banco de dados: Modelo Lógico
06 Modelagem de banco de dados: Modelo Lógico
Centro Paula Souza2.9K visualizações
Introdução a Web Services por Fabio Leal
Introdução a Web ServicesIntrodução a Web Services
Introdução a Web Services
Fabio Leal8.9K visualizações

Destaque

Metodologias de Desenvolvimento de Software por
Metodologias de Desenvolvimento de SoftwareMetodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareÁlvaro Farias Pinheiro
3.6K visualizações16 slides
Especificação de Requisitos de Software por
Especificação de Requisitos de SoftwareEspecificação de Requisitos de Software
Especificação de Requisitos de SoftwareRalph Rassweiler
2.5K visualizações46 slides
Metodologias de desenvolvimento - Waterfall vs Agile por
Metodologias de desenvolvimento - Waterfall vs AgileMetodologias de desenvolvimento - Waterfall vs Agile
Metodologias de desenvolvimento - Waterfall vs AgileMarcelo Murad
13.2K visualizações73 slides
Aula4 levantamento requisitos por
Aula4 levantamento requisitosAula4 levantamento requisitos
Aula4 levantamento requisitosComputação Depressão
1.5K visualizações27 slides
Metodologias de desenvolvimento de sistemas de informação por
Metodologias de desenvolvimento de sistemas de informaçãoMetodologias de desenvolvimento de sistemas de informação
Metodologias de desenvolvimento de sistemas de informaçãoJean Carlos
19.5K visualizações56 slides
Requisitos De Software por
Requisitos De SoftwareRequisitos De Software
Requisitos De SoftwareRobson Silva Espig
12.7K visualizações26 slides

Destaque(20)

Metodologias de Desenvolvimento de Software por Álvaro Farias Pinheiro
Metodologias de Desenvolvimento de SoftwareMetodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de Software
Álvaro Farias Pinheiro3.6K visualizações
Especificação de Requisitos de Software por Ralph Rassweiler
Especificação de Requisitos de SoftwareEspecificação de Requisitos de Software
Especificação de Requisitos de Software
Ralph Rassweiler2.5K visualizações
Metodologias de desenvolvimento - Waterfall vs Agile por Marcelo Murad
Metodologias de desenvolvimento - Waterfall vs AgileMetodologias de desenvolvimento - Waterfall vs Agile
Metodologias de desenvolvimento - Waterfall vs Agile
Marcelo Murad13.2K visualizações
Metodologias de desenvolvimento de sistemas de informação por Jean Carlos
Metodologias de desenvolvimento de sistemas de informaçãoMetodologias de desenvolvimento de sistemas de informação
Metodologias de desenvolvimento de sistemas de informação
Jean Carlos19.5K visualizações
Requisitos De Software por Robson Silva Espig
Requisitos De SoftwareRequisitos De Software
Requisitos De Software
Robson Silva Espig12.7K visualizações
Modelos de processos de software por Nécio de Lima Veras
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
Nécio de Lima Veras25K visualizações
Especificacao de requisitos por Alcidemar Lemos
Especificacao de requisitosEspecificacao de requisitos
Especificacao de requisitos
Alcidemar Lemos448 visualizações
Gerenciamento de Configuração por Marcelo Yamaguti
Gerenciamento de ConfiguraçãoGerenciamento de Configuração
Gerenciamento de Configuração
Marcelo Yamaguti1.1K visualizações
2 - Concepcao por guesta36ce2
2 - Concepcao2 - Concepcao
2 - Concepcao
guesta36ce2764 visualizações
Circuito de ciencias 2011 - DRE Santa Maria por Jeovany Anjos
Circuito de ciencias  2011 - DRE Santa MariaCircuito de ciencias  2011 - DRE Santa Maria
Circuito de ciencias 2011 - DRE Santa Maria
Jeovany Anjos600 visualizações
UAI Test 2014 - Storyboards - dos Requisitos aos Testes por José Correia
UAI Test 2014 - Storyboards - dos Requisitos aos TestesUAI Test 2014 - Storyboards - dos Requisitos aos Testes
UAI Test 2014 - Storyboards - dos Requisitos aos Testes
José Correia1.5K visualizações
Scrum - Profº James Moreira Jr. por James Moreira
Scrum - Profº James Moreira Jr.Scrum - Profº James Moreira Jr.
Scrum - Profº James Moreira Jr.
James Moreira851 visualizações
Introdução à Engenharia de Software por elliando dias
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
elliando dias5K visualizações
Metodologias Ageis por MarcosMaozinha
Metodologias AgeisMetodologias Ageis
Metodologias Ageis
MarcosMaozinha6.1K visualizações
Gerenciamento de equipes no desenvolvimento de software por Roberto Brandini
Gerenciamento de equipes no desenvolvimento de softwareGerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de software
Roberto Brandini6.4K visualizações
Processos de Software - 101 por Lucas Amaral
Processos  de Software - 101Processos  de Software - 101
Processos de Software - 101
Lucas Amaral1.1K visualizações

Similar a Requisitos de software

Eng.ª do Software - 2. Requisitos por
Eng.ª do Software - 2. RequisitosEng.ª do Software - 2. Requisitos
Eng.ª do Software - 2. RequisitosManuel Menezes de Sequeira
10.6K visualizações48 slides
Este trabalho trata por
Este trabalho trataEste trabalho trata
Este trabalho trataRoni Reis
173 visualizações10 slides
Prodemge WTQS - Minicurso técnicas de verificação de requisitos por
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 requisitosGustavo Lopes
594 visualizações32 slides
Identificar Requisitos Funcionais.pdf por
Identificar Requisitos Funcionais.pdfIdentificar Requisitos Funcionais.pdf
Identificar Requisitos Funcionais.pdfmmarolla1
303 visualizações27 slides
Análise de Sistemas Orientado a Objetos - 01 por
Análise de Sistemas Orientado a Objetos - 01Análise de Sistemas Orientado a Objetos - 01
Análise de Sistemas Orientado a Objetos - 01Danielle Ballester, PMP,PSM,SFC,SDC,SMC,SPOC,SCT
1.7K visualizações28 slides
Analise sistemas 04 por
Analise sistemas 04Analise sistemas 04
Analise sistemas 04Caroline Raquel Rodrigues
2.2K visualizações37 slides

Similar a Requisitos de software(20)

Este trabalho trata por Roni Reis
Este trabalho trataEste trabalho trata
Este trabalho trata
Roni Reis173 visualizações
Prodemge WTQS - Minicurso técnicas de verificação de requisitos por Gustavo Lopes
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
Gustavo Lopes594 visualizações
Identificar Requisitos Funcionais.pdf por mmarolla1
Identificar Requisitos Funcionais.pdfIdentificar Requisitos Funcionais.pdf
Identificar Requisitos Funcionais.pdf
mmarolla1303 visualizações
Es2 modelo de processo de software por luacal
Es2 modelo de processo de softwareEs2 modelo de processo de software
Es2 modelo de processo de software
luacal1.7K visualizações
sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistema... por Guilherme Veras
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...
Guilherme Veras1.9K visualizações
Modelos e etapas do processo de software.pdf por IvanFontainha
Modelos e etapas do processo de software.pdfModelos e etapas do processo de software.pdf
Modelos e etapas do processo de software.pdf
IvanFontainha134 visualizações
Aula 03 de engenharia de software uespi 2011-1 por Erivelton Silva Rocha
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 Rocha754 visualizações
Engenharia de Requisitos por Tiago Barros
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
Tiago Barros5.8K visualizações
Aula 01 - Introdução Engenharia de requisitos - Prof.ª Cristiane Fidelix por Cris 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
Cris Fidelix182 visualizações
Verificação e Validação por Marcelo Yamaguti
Verificação e ValidaçãoVerificação e Validação
Verificação e Validação
Marcelo Yamaguti291 visualizações
Análise de sistemas análise de requisitos por Má Puia
Análise de sistemas   análise de requisitosAnálise de sistemas   análise de requisitos
Análise de sistemas análise de requisitos
Má Puia480 visualizações
Os aspectos mais relevantes da Engenharia de Requisitos por José Vieira
Os aspectos mais relevantes da Engenharia de RequisitosOs aspectos mais relevantes da Engenharia de Requisitos
Os aspectos mais relevantes da Engenharia de Requisitos
José Vieira52 visualizações
Es capítulo 4 - engenharia de requisitos por Felipe Oliveira
Es   capítulo 4  - engenharia de requisitosEs   capítulo 4  - engenharia de requisitos
Es capítulo 4 - engenharia de requisitos
Felipe Oliveira999 visualizações
Eng.ª do Software - 3. Processos da engenharia de requisitos por Manuel Menezes de Sequeira
Eng.ª do Software - 3. Processos da engenharia de requisitosEng.ª do Software - 3. Processos da engenharia de requisitos
Eng.ª do Software - 3. Processos da engenharia de requisitos
Manuel Menezes de Sequeira5.9K visualizações

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