Especificação de Requisitos de Software

Ralph Rassweiler
Ralph RassweilerBolsista na PUCRS - Pontifícia Universidade Católica do Rio Grande do Sul em PUCRS - Pontifícia Universidade Católica do Rio Grande do Sul
Especificação de
Requisitos
RALPH J. R. FILHO
Conteúdo
 O que é e para quê serve um requisito?
 Porquê requisitos devem ser gerenciados?
 Como coletar requisitos?
 Como documentar requisitos?
 Como colocar em prática?
 Visualizar exemplos e praticar com exercícios.
 Compartilhar experiências.
Referências
 Rational - "Applying Requirements Management with Use Cases"
(artigo)
 Rational - "Traceabillity Strategies for Managing Requirements with
Use Cases" (artigo)
 IBM - OpenUp Wiki (epf.eclipse.org/wikis/openup/)
 "Best Practices for Agile/Lean Documentation"
(www.agilemodeling.com/essays)
Chaos Report
Cenário
 Os clientes fazem solicitações.
 As solicitações são implementadas e testadas no software.
 Como documentar estas solicitações?
 Quais são os modelos (templates) mais adequados?
 Como manter documentação com pouco tempo disponível?
 Aonde manter a documentação e quem deve fazê-lo ?
 Como estabelecer uma ligação entre as atividades de
desenvolvimento e testes com as requisições?
 Como saber em que versão cada solicitação foi entregue?
 Como podemos rastrear mudanças?
O que é um requisito?
 "Uma condição ou capacidade com a qual o sistema deve estar
em conformidade" (Rational / IBM)
 "Uma capacidade do software necessária para resolver um
problema de um usuário ou cumprir determinado objetivo" (IEEE)
O que é gestão de requisitos?
 "Uma abordagem sistemática para elicitar, organizar e documentar
os requisitos do sistema"
 "Um processo que estabelece e mantém um acordo entre o cliente
e o time do projeto durante a mudança dos requisitos do sistema"
(Rational / IBM)
Desafios
 Requisitos não são sempre óbvios e possuem muitas fontes
 Requisitos não são fáceis de descrever de forma clara
 Existem diversos tipos de requisitos em diferentes níveis de detalhes
 O número de requisitos pode ficar ingerenciável se não for
controlado
 Requisitos devem ser rastreáveis
 Requisitos possuem propriedades únicas
 Os requisitos mudam com frequencia
Atividades Desempenhadas
Artefatos
 Necessidades de usuário
 Funcionalidades do Produto
 Requisitos (funcionaise não-funcionais)
 Regras de Negócio
 Itens de Glossário
 Atores
 Casos de Uso
 Protótipos de Interface
Necessidade de Usuário
 Representa uma função desempenhada por usuário que deve ser
mapeada. Pode ser descrito como "Estória".
Exemplo de Necessidade
1. Processo de Compras
 Em uma empresa de comércio varejista, o usuário responsável pelo
processo de compras, aqui denominado "comprador", necessita
enviar listas de produtos aos seus fornecedores para que estes
possam preencher cotações de preços. As cotações de preços são
comparadas pelo comprador para que o mesmo selecione os
produtos de cada fornecedor naquilo que representa maior
vantagem para a empresa que fará a compra. Um produto pode
ser mais vantajoso quando possuir uma combinação dos fatores:
menor preço, menor prazo de entrega e menor inscidência de
impostos. Depois de selecionados, os produtos são organizados em
pedidos de compra que o comprador envia por e-mail para os
fornecedores.
Funcionalidade do Produto
 Representa uma característica funcional do produto, ou um
conjunto de ações desempenhadas pelo sistema que atende uma
necessidade de usuário
Funcionalidade do Produto
 Exemplos
 Registro de usuário e tela de boas-vindas
 Cadastro e controle de grupos de produtos
 Emissão de notas fiscais
 Emissão de relatórios de contas a receber com diferentes visões
Requisito Funcional
 São características do sistema que transformam-se em
implementações. Devem ser testáveis. Exemplos:
 Auditoria. Deve rastrear quem fez uma ação no sistema e quando fez?
 Autenticação. O acesso ao sistema será controlado?
 Licenciamento. Como será a aquisição e o monitoramento de
licenças?
 Impressão. Deve imprimir arquivos? Como procederá com impressões?
 Relatórios. O sistema irá gerar relatórios? Como irá proceder?
 Agendamento. Algumas ações poderão ser agendadas?
 Segurança. Como será o esquema de acesso a partes do sistema?
Requisito Funcional
 Exemplos
 O software deve permitir que o usuário modifique a ordem das
colunas de cada listagem, salvando esta preferência para acesso
futuro.
 O software deve permitir que o usuário marque telas específicas do
sistema como favoritas, oferecendo um atalho para que o usuário
retorne nesta tela rapidamente.
 O software deve garantir que todo usuário possua uma senha com
nível de complexidade aceitável utilizando um algoritmo para esta
verificação. Além disso, o usuário deve trocar a sua senha a cada
12 meses.
Requisito Não-Funcional
 São atributos ou qualidades do sistema. Devem ser testáveis.
 Usabilidade. Documentação (help), facilidade de apredizado.
 Confiabilidade. Políticas de tolerância a falhas, habilidade de
recuperação de falhas.
 Desempenho. Tempo de resposta de processamento, uso de
recursos.
 Segurança. Privacidade, integridade.
 Distribuição. Políticade versionamento, entrega aos clientes.
 Padronização. Interfaces gráficas, componentes.
 Restrições. Hardware, software (plataformas).
Requisito Não-Funcional
 Exemplos
 O sistema deve executar tarefas de armazenamento de dados
retornando em até 10 segundos após o comando do usuário. Caso
a operação ainda não tiver sido completada, deve ser executada
em segundo plano.
 O sistema, para ser executado, necessita do Sistema Operacional
Windows versão XP ou 7, 32 bits, com mínimo de 1024 MB de RAM e
processador Dual Core de 2.1 GHz de frequência.
 O sistema deve providenciar uma forma de restrição de acesso aos
usuários à telas específicas, mostrando mensagem de erro caso
ocorra uma tentativa de acesso não-autorizado.
Regra de Negócio
 São políticas com as quais o sistema deve entrar em conformidade.
 Podem conter leis e regulamentos impostos ao negócio.
 Devem ser descritas de maneira tão clara que pode ser
transformada em código-fonte.
 Algumas regras de negócio podem ser aplicáveis a mais de um
caso de uso. Estas regras devem ser centralizadas.
 Exemplo
 O número de componentes da equipe deve ser menor ou igual a
dez.
 team.getMembers() <= 10;
Regra de Negócio
 Exemplos
 Se um pedido é cancelado e se o pedido não tiver sido enviado,
então o pedido deve ser fechado.
 O pedido deve ser enviado ao cliente apenas se o cliente tiver
endereço de entrega cadastrado.
 Um pedido refere-se a um produto, no mínimo.
 Um cliente deve ser considerado "bom" se todas as faturas
enviadas a ele que não foram pagas tem menos do que 30 dias.
 O preço líquido de um produto é igual a: custo do produto * (1 +
porcentagem total de imposto / 100)
Item de Glossário
 Define termos importantes usados no projeto.
 É importante para garantir o entendimento dos conceitos de
negócio de forma uniforme tanto pelo cliente quanto pela equipe.
 Inclui termos, definições, sinônimos e referências
Ator
 São pessoas ou outros sistemas que interagem com o sistema em
questão.
 O termo "ator" é padrão UML e a representação gráfica é como na
imagem abaixo.
Caso de Uso
 Descreve um conjunto de ações que o usuário faz ou que o sistema
executa de forma automática.
 O termo "caso de uso" é padrão UML e a representação gráfica é
feita conforme a figura abaixo.
Diagrama de Caso de Uso
Exemplo
Protótipo de Interface
 Define um modelo que será utilizado para implementar uma "tela"
do sistema.
 Evidentemente,apenas aplicável se a funcionalidade envolve
"telas".
Processo de Elicitação
Processo de Elicitação
 Entender o domínio da aplicação. Investigar detalhes do processo
do cliente descrevendo os processos atuais ("as is") e propôr
mudanças ("to be").
 Identificar fontes de requisitos. Stakeholders, especialistas,
documentação existente, relatórios, manuais, etc.
 Envolver/Analisar Stakeholders. Fazer com que os interessados
participem do projeto em todo seu ciclo de vida.
 Escolher técnicas e ferramentas. Definir técnicas de abordagem
dos usuários.
Técnicas de Elicitação
 Entrevista. Pode ter lista de tópicos ou ser uma conversa informal.
 Questionário. Preparado previamente pode ser enviado para os
usuários.
 Análise de Domínio. Estudar documentação e software existentes.
 Introspecção. Basear-se no que o analista acredita que o cliente
precisa.
 Brainstorming. Reunião com stakeholders para gerar ideias.
 Etnografia. Observação dos usuários durante suas atividades
habituais.
 Aprendizagem. O analista é treinado por um usuário experiente
como se fosse desempenhar um papel dentro do cliente.
RUP - Fluxo de Solicitações
Estratégias
1. Modelo sem caso de uso
2. Apenas modelo de Caso de Uso
3. Funcionalidades norteando modelo de Caso de Uso (RUP)
4. O modelo de Caso de Uso é uma interpretação da Especificação
de Requisitos do Software (ERS / SRS)
Modelo sem casos de uso
Apenas modelo de Caso de uso
Funcionalidades norteiam o
modelo de Caso de Uso (RUP)
O modelo de Caso de Uso é uma
interpretação da SRS
Práticas ágeis
 Prefira especificação executável ao invés de documentos estáticos.
 Documente conceitos estáveis e não ideias especuladas.
 Documente o mais tarde possível.
 Gere a documentação a partir dos fontes.
 Mantenha a documentação simples e clara.
 Mantenha poucos documentos e sem sobreposição.
 Coloque as informações em local apropriado e público.
 Documente com propósitos claros e objetivos.
 Foque na necessidade do usuário do documento.
 Dedique-se a uma escrita eficiente.
Práticas ágeis (news.dice.com)
Práticas ágeis
Boas práticas
 "O faturista deve ser capaz de emitir 10 notas fiscais em menos de
02 horas".
 Este requisito tem um sujeito (ator), um estado mensurável e final (10
notas fiscais) e um critério de performance (02 horas).
 Defina um requisito por vez.
 "O piloto deve poder controlar o ângulo da aeronave usando uma
mão".
 "O piloto deve poder sentir o ângulo de inclinação através do controle
de inclinações da aeronave".
Boas práticas
 Evite conjunções (e, ou) que englobam vários requisitos.
 "O navegador deve poder ver a posição da aeronave relativo à rota
demonstrada pelo radar".
 "O navegador deve poder ver a posição da aeronave conforme
estimado pelo guia de inércia".
 Evite palavras que implicam em exceções (a menos que, exceto
se, se necessário, mas, porém).
 "O design deve providenciar assentos voltados para a parte traseira da
aeronave para cada membro da tripulação".
 Utilize sentenças simples e diretas.
 "O piloto deve ser capaz de ver o indicador de velocidade".
Boas práticas
 Utilize linguagem natural.
 "Para fazer uma ligação de longa distância, o usuário deve tirar o
telefone do gancho. O sistema deve responder com um tom de
discagem. O usuário deve digitar um "9". O sistema deve responder
com um tom de discagem distinto [...]"
 "O sistema consiste em quatro estados: Ocupado, Tom de
Discagem, Tom de Discagem Distinto e Conectado. Para mudar do
status de Ocupado para o status de Tom de Discagem, tire o
telefone do gancho. Para mudar do status de Tom de Discagem
para o Tom de Discagem Distinto, digite um "9"."
 Qual dos dois texto é mais claro para o usuário e para a equipe?
Desafios da Elicitação
Desafios
 Para detalhar os requisitos o analista precisa enfrentar uma série de
desafios.
 Elicitar é tornar explícito, obter o máximo de informações possíveis
para ter o domínio do negócio.
 Os usuários podem não ter uma ideia exata do que necessitam.
 Os usuários tem dificuldade para descrever seu conhecimento
sobre um problema.
 Os usuários tem pontos de vista diferentes dos analistas.
 Os usuários podem dificultar o processo de análise se não forem
favoráveisao novo sistema.
Desafios
 Requisitos devem atender a necessidade do cliente agregando
valor ao mesmo. Deve-se evitar a prática de "gold plating".
 Requisitos devem ser consistentes e completos sem contradições.
 Requisitos devem ser viáveisdentro do orçamento e prazo
disponíveis.
 Requisitos devem ser rastreáveis entre si. Importante para gerenciar
mudanças (inevitáveis) e a evolução do requisito.
 Requisitos devem ser passíveisde priorização. Um bom exemplo é a
técnica EID (Essencial, Importante e Desejável).
Considerações Finais
 Os processos de gestão de requisitos precisam ser adaptados e
adequados de acordo com a realidade da Empresa, a Natureza
dos projetos, o tempo de dedicação para documentação e a
experiência dos envolvidos.
 Quais artefatos serão gerados e gerenciados, deve, portanto, ser
uma decisão da equipe de desenvolvimento.
 Boas fontes de estudos são: RUP / OpenUp, SCRUM, Livros de
Engenharia de Software.
 Os modelos de processos ou frameworks não são doutrinas
ortodoxas. São sim, guias contendo boas práticas.
Considerações Finais
 Escolha com sabedoria.
 Se documentar de menos, pode comprometer o entendimento do
sistema e fazer com que aspectos importantes do negócio sejam
esquecidas ou fiquem na cebeça de quem elicitou / desenvolveu
/ testou.
 Se documentar demais, pode comprometer recursos humanos
valiosos e gerar documentos extensos e confusos que, com o
passar do tempo, serão abandonados. Deixando de ser atualizados
ficam defasados e tornam-se inúteis.
1 de 46

Recomendados

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
Analise de Requisitos Software por
Analise de Requisitos SoftwareAnalise de Requisitos Software
Analise de Requisitos SoftwareRildo (@rildosan) Santos
69.3K visualizações126 slides
Teste de software por
Teste de softwareTeste de software
Teste de softwareCOTIC-PROEG (UFPA)
1.8K visualizações13 slides
Análise e Modelagem de Software por
Análise e Modelagem de SoftwareAnálise e Modelagem de Software
Análise e Modelagem de SoftwareMarcelo Yamaguti
5.1K visualizações15 slides
Analise de Requisitos por
Analise de RequisitosAnalise de Requisitos
Analise de Requisitoselliando dias
9K visualizações52 slides
Modelos de processos de software por
Modelos de processos de softwareModelos de processos de software
Modelos de processos de softwareNécio de Lima Veras
4K visualizações31 slides

Mais conteúdo relacionado

Mais procurados

engenharia-de-requisitos por
engenharia-de-requisitosengenharia-de-requisitos
engenharia-de-requisitosFábio Nogueira de Lucena
2.3K visualizações37 slides
Aula 6 - Qualidade de Software por
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareLeinylson Fontinele
1.2K visualizações39 slides
Banco de questões qualidade de software por
Banco de questões qualidade de softwareBanco de questões qualidade de software
Banco de questões qualidade de softwareBruno Nascimento
7.1K visualizações31 slides
Aula 7 - Modelagem de Software por
Aula 7 - Modelagem de SoftwareAula 7 - Modelagem de Software
Aula 7 - Modelagem de SoftwareLeinylson Fontinele
3.4K visualizações47 slides
Aula - Metodologias Ágeis por
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias ÁgeisMauricio Cesar Santos da Purificação
2.3K visualizações90 slides
Aula 2 - Processos de Software por
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de SoftwareRudson Kiyoshi Souza Carvalho
1.4K visualizações31 slides

Mais procurados(20)

Aula 6 - Qualidade de Software por Leinylson Fontinele
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
Leinylson Fontinele1.2K visualizações
Banco de questões qualidade de software por Bruno Nascimento
Banco de questões qualidade de softwareBanco de questões qualidade de software
Banco de questões qualidade de software
Bruno Nascimento7.1K visualizações
Aula 7 - Modelagem de Software por Leinylson Fontinele
Aula 7 - Modelagem de SoftwareAula 7 - Modelagem de Software
Aula 7 - Modelagem de Software
Leinylson Fontinele3.4K visualizações
Validação e Testes de software por Rondinelli Mesquita
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de software
Rondinelli Mesquita2.8K visualizações
Teste de software - aula 01 (motivação) por Elmano Cavalcanti
Teste de software - aula 01 (motivação)Teste de software - aula 01 (motivação)
Teste de software - aula 01 (motivação)
Elmano Cavalcanti179 visualizações
Aula UML - Unified Modeling Language por Cloves da Rocha
Aula UML - Unified Modeling LanguageAula UML - Unified Modeling Language
Aula UML - Unified Modeling Language
Cloves da Rocha1K visualizações
Documento de requisitos_-_especificacoes 01 por gtiprotec
Documento de requisitos_-_especificacoes 01Documento de requisitos_-_especificacoes 01
Documento de requisitos_-_especificacoes 01
gtiprotec1.7K visualizações
Descrição formal de Casos de Uso por Natanael Simões
Descrição formal de Casos de UsoDescrição formal de Casos de Uso
Descrição formal de Casos de Uso
Natanael Simões34.9K visualizações
Identificar Requisitos Funcionais.pdf por mmarolla1
Identificar Requisitos Funcionais.pdfIdentificar Requisitos Funcionais.pdf
Identificar Requisitos Funcionais.pdf
mmarolla1304 visualizações
Requisitos de software por Marcelo Yamaguti
Requisitos de softwareRequisitos de software
Requisitos de software
Marcelo Yamaguti2.5K visualizações
Aula 03 - Introdução aos Diagramas de Atividade por Alberto Simões
Aula 03 - Introdução aos Diagramas de AtividadeAula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de Atividade
Alberto Simões3.8K visualizações
Principais Técnicas de Elicitação de Requisitos por Norton Guimarães
Principais Técnicas de Elicitação de RequisitosPrincipais Técnicas de Elicitação de Requisitos
Principais Técnicas de Elicitação de Requisitos
Norton Guimarães2.4K visualizações
Introdução à Engenharia de Software por Nécio de Lima Veras
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
Nécio de Lima Veras5.2K visualizações
Especificação de requisitos por Fernando Palma
Especificação de requisitosEspecificação de requisitos
Especificação de requisitos
Fernando Palma74.5K 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

Destaque

Como especificar requisitos em metodologias ágeis? por
Como especificar requisitos em metodologias ágeis?Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?Priscilla Aguiar
24.7K visualizações18 slides
Aula3 engenharia requisitos por
Aula3 engenharia requisitosAula3 engenharia requisitos
Aula3 engenharia requisitosComputação Depressão
4K visualizações51 slides
JAD e levantamento de requisitos por
JAD e levantamento de requisitosJAD e levantamento de requisitos
JAD e levantamento de requisitosEduardo Castro
13.4K visualizações73 slides
Resumo de Técnicas de elicitação de requisitos por
Resumo de Técnicas de elicitação de requisitosResumo de Técnicas de elicitação de requisitos
Resumo de Técnicas de elicitação de requisitosAlaide Pitombeira de Freitas, CSM
2.8K visualizações21 slides
Levantamento Ágil de Requisitos por
Levantamento Ágil de RequisitosLevantamento Ágil de Requisitos
Levantamento Ágil de RequisitosPaulo Furtado
5.4K visualizações108 slides
Planejamento de Capacidade - Técnicas e Ferramentas por
Planejamento de Capacidade - Técnicas e FerramentasPlanejamento de Capacidade - Técnicas e Ferramentas
Planejamento de Capacidade - Técnicas e FerramentasRodrigo Campos
3.4K visualizações103 slides

Destaque(20)

Como especificar requisitos em metodologias ágeis? por Priscilla Aguiar
Como especificar requisitos em metodologias ágeis?Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?
Priscilla Aguiar24.7K visualizações
JAD e levantamento de requisitos por Eduardo Castro
JAD e levantamento de requisitosJAD e levantamento de requisitos
JAD e levantamento de requisitos
Eduardo Castro13.4K visualizações
Levantamento Ágil de Requisitos por Paulo Furtado
Levantamento Ágil de RequisitosLevantamento Ágil de Requisitos
Levantamento Ágil de Requisitos
Paulo Furtado5.4K visualizações
Planejamento de Capacidade - Técnicas e Ferramentas por Rodrigo Campos
Planejamento de Capacidade - Técnicas e FerramentasPlanejamento de Capacidade - Técnicas e Ferramentas
Planejamento de Capacidade - Técnicas e Ferramentas
Rodrigo Campos3.4K visualizações
Computrace grc por Sébastien Roques
Computrace grcComputrace grc
Computrace grc
Sébastien Roques534 visualizações
Deploy automático em projeto PHP - PHPSPIMA 2016 por Felipe Klerk Signorini
Deploy automático em projeto PHP - PHPSPIMA 2016Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016
Felipe Klerk Signorini467 visualizações
Engenharia Software por Robson Silva Espig
Engenharia SoftwareEngenharia Software
Engenharia Software
Robson Silva Espig2.6K visualizações
Intro to NuGet por wlscaudill
Intro to NuGetIntro to NuGet
Intro to NuGet
wlscaudill1.9K visualizações
Gestão de Decisões e Regras de Negócio por Mauricio Bitencourt
Gestão de Decisões e Regras de NegócioGestão de Decisões e Regras de Negócio
Gestão de Decisões e Regras de Negócio
Mauricio Bitencourt1.4K visualizações
Regra de negócios 0299 por Espaço Allianz
Regra de negócios 0299Regra de negócios 0299
Regra de negócios 0299
Espaço Allianz540 visualizações
Understanding NuGet implementation for Enterprises por J S Jodha
Understanding NuGet implementation for EnterprisesUnderstanding NuGet implementation for Enterprises
Understanding NuGet implementation for Enterprises
J S Jodha931 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
Ap i unidade 3 - levantamento de requisitos por Glauber Aquino
Ap i   unidade 3 - levantamento de requisitosAp i   unidade 3 - levantamento de requisitos
Ap i unidade 3 - levantamento de requisitos
Glauber Aquino3.6K visualizações
Scrum solo por Eriko Morais
Scrum soloScrum solo
Scrum solo
Eriko Morais2.7K visualizações
Developing NuGet por Jeff Handley
Developing NuGetDeveloping NuGet
Developing NuGet
Jeff Handley1.6K visualizações
Aula3 casos de uso por Diana Adamatti
Aula3 casos de usoAula3 casos de uso
Aula3 casos de uso
Diana Adamatti23.8K visualizações

Similar a Especificação de Requisitos de Software

requisitos de software.pptx por
requisitos de software.pptxrequisitos de software.pptx
requisitos de software.pptxAlanCunha14
1 visão28 slides
Análise de Sistemas - Requisitos (Revisão e Requisitos Suplementares) por
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)Rosanete Grassiani dos Santos
12K visualizações46 slides
Este trabalho trata por
Este trabalho trataEste trabalho trata
Este trabalho trataRoni Reis
173 visualizações10 slides
06 Requisitos por
06 Requisitos06 Requisitos
06 RequisitosWaldemar Roberti
1.4K visualizações46 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
Engenharia Requisitos por
Engenharia RequisitosEngenharia Requisitos
Engenharia Requisitoselliando dias
4.9K visualizações109 slides

Similar a Especificação de Requisitos de Software(20)

requisitos de software.pptx por AlanCunha14
requisitos de software.pptxrequisitos de software.pptx
requisitos de software.pptx
AlanCunha141 visão
Análise de Sistemas - Requisitos (Revisão e Requisitos Suplementares) por Rosanete Grassiani dos Santos
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)
Rosanete Grassiani dos Santos12K visualizações
Este trabalho trata por Roni Reis
Este trabalho trataEste trabalho trata
Este trabalho trata
Roni Reis173 visualizações
06 Requisitos por Waldemar Roberti
06 Requisitos06 Requisitos
06 Requisitos
Waldemar Roberti1.4K 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
Engenharia Requisitos por elliando dias
Engenharia RequisitosEngenharia Requisitos
Engenharia Requisitos
elliando dias4.9K visualizações
Analise de Requisitos de Software por Robson Silva Espig
Analise de Requisitos de SoftwareAnalise de Requisitos de Software
Analise de Requisitos de Software
Robson Silva Espig1.5K visualizações
ALM - Testes Exploratórios por Alan Carlos
ALM - Testes ExploratóriosALM - Testes Exploratórios
ALM - Testes Exploratórios
Alan Carlos3.8K visualizações
Naked Objects por elliando dias
Naked ObjectsNaked Objects
Naked Objects
elliando dias1.1K visualizações
Specificationby example por Laís Berlatto
Specificationby example Specificationby example
Specificationby example
Laís Berlatto511 visualizações
Caso De Uso E Use Case Point por Marcelo Schumacher
Caso De Uso E Use Case PointCaso De Uso E Use Case Point
Caso De Uso E Use Case Point
Marcelo Schumacher6.4K visualizações
Especificação requisitos por Luis Fernandes
Especificação requisitosEspecificação requisitos
Especificação requisitos
Luis Fernandes340 visualizações
Técnicas de Análise Contextual - Livro de Walter Cybis por Luiz Agner
Técnicas de Análise Contextual - Livro de Walter CybisTécnicas de Análise Contextual - Livro de Walter Cybis
Técnicas de Análise Contextual - Livro de Walter Cybis
Luiz Agner3.2K visualizações
Princípios Fundamentais da Análise de Requisitos por elliando dias
Princípios Fundamentais da Análise de RequisitosPrincípios Fundamentais da Análise de Requisitos
Princípios Fundamentais da Análise de Requisitos
elliando dias2.5K visualizações
Metodologia de desenvolvimento de sistemas por Priscila Stuani
Metodologia  de desenvolvimento de sistemasMetodologia  de desenvolvimento de sistemas
Metodologia de desenvolvimento de sistemas
Priscila Stuani3.7K visualizações
ApresentaçãO Metodologia por Marcos Yonamine
ApresentaçãO MetodologiaApresentaçãO Metodologia
ApresentaçãO Metodologia
Marcos Yonamine525 visualizações
Mpn apoio requisitos_sistema 2 por gtiprotec
Mpn apoio requisitos_sistema 2Mpn apoio requisitos_sistema 2
Mpn apoio requisitos_sistema 2
gtiprotec459 visualizações

Mais de Ralph Rassweiler

Introdução à sistemas de recomendação por
Introdução à sistemas de recomendaçãoIntrodução à sistemas de recomendação
Introdução à sistemas de recomendaçãoRalph Rassweiler
826 visualizações78 slides
Sistemas de Recomendação - Parte 2 por
Sistemas de Recomendação - Parte 2Sistemas de Recomendação - Parte 2
Sistemas de Recomendação - Parte 2Ralph Rassweiler
676 visualizações118 slides
Sistemas de Recomendação - Parte 1 por
Sistemas de Recomendação - Parte 1Sistemas de Recomendação - Parte 1
Sistemas de Recomendação - Parte 1Ralph Rassweiler
297 visualizações104 slides
Produtividade & elegância com linux por
Produtividade & elegância com linuxProdutividade & elegância com linux
Produtividade & elegância com linuxRalph Rassweiler
648 visualizações65 slides
Estruturas organizacionais e comportamentos profissionais por
Estruturas organizacionais e comportamentos profissionaisEstruturas organizacionais e comportamentos profissionais
Estruturas organizacionais e comportamentos profissionaisRalph Rassweiler
1.1K visualizações47 slides
Arquitetura web para sistemas de negócio por
Arquitetura web para sistemas de negócioArquitetura web para sistemas de negócio
Arquitetura web para sistemas de negócioRalph Rassweiler
1K visualizações64 slides

Mais de Ralph Rassweiler(10)

Introdução à sistemas de recomendação por Ralph Rassweiler
Introdução à sistemas de recomendaçãoIntrodução à sistemas de recomendação
Introdução à sistemas de recomendação
Ralph Rassweiler826 visualizações
Sistemas de Recomendação - Parte 2 por Ralph Rassweiler
Sistemas de Recomendação - Parte 2Sistemas de Recomendação - Parte 2
Sistemas de Recomendação - Parte 2
Ralph Rassweiler676 visualizações
Sistemas de Recomendação - Parte 1 por Ralph Rassweiler
Sistemas de Recomendação - Parte 1Sistemas de Recomendação - Parte 1
Sistemas de Recomendação - Parte 1
Ralph Rassweiler297 visualizações
Produtividade & elegância com linux por Ralph Rassweiler
Produtividade & elegância com linuxProdutividade & elegância com linux
Produtividade & elegância com linux
Ralph Rassweiler648 visualizações
Estruturas organizacionais e comportamentos profissionais por Ralph Rassweiler
Estruturas organizacionais e comportamentos profissionaisEstruturas organizacionais e comportamentos profissionais
Estruturas organizacionais e comportamentos profissionais
Ralph Rassweiler1.1K visualizações
Arquitetura web para sistemas de negócio por Ralph Rassweiler
Arquitetura web para sistemas de negócioArquitetura web para sistemas de negócio
Arquitetura web para sistemas de negócio
Ralph Rassweiler1K visualizações
Mobilidade inova ti_em_saude por Ralph Rassweiler
Mobilidade inova ti_em_saudeMobilidade inova ti_em_saude
Mobilidade inova ti_em_saude
Ralph Rassweiler432 visualizações
Scrum no contexto de processos de desenvolvimento por Ralph Rassweiler
Scrum no contexto de processos de desenvolvimentoScrum no contexto de processos de desenvolvimento
Scrum no contexto de processos de desenvolvimento
Ralph Rassweiler889 visualizações
Cinco tecnicas uteis para gerenciamento de projetos por Ralph Rassweiler
Cinco tecnicas uteis para gerenciamento de projetosCinco tecnicas uteis para gerenciamento de projetos
Cinco tecnicas uteis para gerenciamento de projetos
Ralph Rassweiler586 visualizações
Processos de Desenvolvimento de Software - teoria e prática por Ralph Rassweiler
Processos de Desenvolvimento de Software - teoria e práticaProcessos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e prática
Ralph Rassweiler14.3K visualizações

Especificação de Requisitos de Software

  • 2. Conteúdo  O que é e para quê serve um requisito?  Porquê requisitos devem ser gerenciados?  Como coletar requisitos?  Como documentar requisitos?  Como colocar em prática?  Visualizar exemplos e praticar com exercícios.  Compartilhar experiências.
  • 3. Referências  Rational - "Applying Requirements Management with Use Cases" (artigo)  Rational - "Traceabillity Strategies for Managing Requirements with Use Cases" (artigo)  IBM - OpenUp Wiki (epf.eclipse.org/wikis/openup/)  "Best Practices for Agile/Lean Documentation" (www.agilemodeling.com/essays)
  • 5. Cenário  Os clientes fazem solicitações.  As solicitações são implementadas e testadas no software.  Como documentar estas solicitações?  Quais são os modelos (templates) mais adequados?  Como manter documentação com pouco tempo disponível?  Aonde manter a documentação e quem deve fazê-lo ?  Como estabelecer uma ligação entre as atividades de desenvolvimento e testes com as requisições?  Como saber em que versão cada solicitação foi entregue?  Como podemos rastrear mudanças?
  • 6. O que é um requisito?  "Uma condição ou capacidade com a qual o sistema deve estar em conformidade" (Rational / IBM)  "Uma capacidade do software necessária para resolver um problema de um usuário ou cumprir determinado objetivo" (IEEE)
  • 7. O que é gestão de requisitos?  "Uma abordagem sistemática para elicitar, organizar e documentar os requisitos do sistema"  "Um processo que estabelece e mantém um acordo entre o cliente e o time do projeto durante a mudança dos requisitos do sistema" (Rational / IBM)
  • 8. Desafios  Requisitos não são sempre óbvios e possuem muitas fontes  Requisitos não são fáceis de descrever de forma clara  Existem diversos tipos de requisitos em diferentes níveis de detalhes  O número de requisitos pode ficar ingerenciável se não for controlado  Requisitos devem ser rastreáveis  Requisitos possuem propriedades únicas  Os requisitos mudam com frequencia
  • 10. Artefatos  Necessidades de usuário  Funcionalidades do Produto  Requisitos (funcionaise não-funcionais)  Regras de Negócio  Itens de Glossário  Atores  Casos de Uso  Protótipos de Interface
  • 11. Necessidade de Usuário  Representa uma função desempenhada por usuário que deve ser mapeada. Pode ser descrito como "Estória".
  • 12. Exemplo de Necessidade 1. Processo de Compras  Em uma empresa de comércio varejista, o usuário responsável pelo processo de compras, aqui denominado "comprador", necessita enviar listas de produtos aos seus fornecedores para que estes possam preencher cotações de preços. As cotações de preços são comparadas pelo comprador para que o mesmo selecione os produtos de cada fornecedor naquilo que representa maior vantagem para a empresa que fará a compra. Um produto pode ser mais vantajoso quando possuir uma combinação dos fatores: menor preço, menor prazo de entrega e menor inscidência de impostos. Depois de selecionados, os produtos são organizados em pedidos de compra que o comprador envia por e-mail para os fornecedores.
  • 13. Funcionalidade do Produto  Representa uma característica funcional do produto, ou um conjunto de ações desempenhadas pelo sistema que atende uma necessidade de usuário
  • 14. Funcionalidade do Produto  Exemplos  Registro de usuário e tela de boas-vindas  Cadastro e controle de grupos de produtos  Emissão de notas fiscais  Emissão de relatórios de contas a receber com diferentes visões
  • 15. Requisito Funcional  São características do sistema que transformam-se em implementações. Devem ser testáveis. Exemplos:  Auditoria. Deve rastrear quem fez uma ação no sistema e quando fez?  Autenticação. O acesso ao sistema será controlado?  Licenciamento. Como será a aquisição e o monitoramento de licenças?  Impressão. Deve imprimir arquivos? Como procederá com impressões?  Relatórios. O sistema irá gerar relatórios? Como irá proceder?  Agendamento. Algumas ações poderão ser agendadas?  Segurança. Como será o esquema de acesso a partes do sistema?
  • 16. Requisito Funcional  Exemplos  O software deve permitir que o usuário modifique a ordem das colunas de cada listagem, salvando esta preferência para acesso futuro.  O software deve permitir que o usuário marque telas específicas do sistema como favoritas, oferecendo um atalho para que o usuário retorne nesta tela rapidamente.  O software deve garantir que todo usuário possua uma senha com nível de complexidade aceitável utilizando um algoritmo para esta verificação. Além disso, o usuário deve trocar a sua senha a cada 12 meses.
  • 17. Requisito Não-Funcional  São atributos ou qualidades do sistema. Devem ser testáveis.  Usabilidade. Documentação (help), facilidade de apredizado.  Confiabilidade. Políticas de tolerância a falhas, habilidade de recuperação de falhas.  Desempenho. Tempo de resposta de processamento, uso de recursos.  Segurança. Privacidade, integridade.  Distribuição. Políticade versionamento, entrega aos clientes.  Padronização. Interfaces gráficas, componentes.  Restrições. Hardware, software (plataformas).
  • 18. Requisito Não-Funcional  Exemplos  O sistema deve executar tarefas de armazenamento de dados retornando em até 10 segundos após o comando do usuário. Caso a operação ainda não tiver sido completada, deve ser executada em segundo plano.  O sistema, para ser executado, necessita do Sistema Operacional Windows versão XP ou 7, 32 bits, com mínimo de 1024 MB de RAM e processador Dual Core de 2.1 GHz de frequência.  O sistema deve providenciar uma forma de restrição de acesso aos usuários à telas específicas, mostrando mensagem de erro caso ocorra uma tentativa de acesso não-autorizado.
  • 19. Regra de Negócio  São políticas com as quais o sistema deve entrar em conformidade.  Podem conter leis e regulamentos impostos ao negócio.  Devem ser descritas de maneira tão clara que pode ser transformada em código-fonte.  Algumas regras de negócio podem ser aplicáveis a mais de um caso de uso. Estas regras devem ser centralizadas.  Exemplo  O número de componentes da equipe deve ser menor ou igual a dez.  team.getMembers() <= 10;
  • 20. Regra de Negócio  Exemplos  Se um pedido é cancelado e se o pedido não tiver sido enviado, então o pedido deve ser fechado.  O pedido deve ser enviado ao cliente apenas se o cliente tiver endereço de entrega cadastrado.  Um pedido refere-se a um produto, no mínimo.  Um cliente deve ser considerado "bom" se todas as faturas enviadas a ele que não foram pagas tem menos do que 30 dias.  O preço líquido de um produto é igual a: custo do produto * (1 + porcentagem total de imposto / 100)
  • 21. Item de Glossário  Define termos importantes usados no projeto.  É importante para garantir o entendimento dos conceitos de negócio de forma uniforme tanto pelo cliente quanto pela equipe.  Inclui termos, definições, sinônimos e referências
  • 22. Ator  São pessoas ou outros sistemas que interagem com o sistema em questão.  O termo "ator" é padrão UML e a representação gráfica é como na imagem abaixo.
  • 23. Caso de Uso  Descreve um conjunto de ações que o usuário faz ou que o sistema executa de forma automática.  O termo "caso de uso" é padrão UML e a representação gráfica é feita conforme a figura abaixo.
  • 26. Protótipo de Interface  Define um modelo que será utilizado para implementar uma "tela" do sistema.  Evidentemente,apenas aplicável se a funcionalidade envolve "telas".
  • 28. Processo de Elicitação  Entender o domínio da aplicação. Investigar detalhes do processo do cliente descrevendo os processos atuais ("as is") e propôr mudanças ("to be").  Identificar fontes de requisitos. Stakeholders, especialistas, documentação existente, relatórios, manuais, etc.  Envolver/Analisar Stakeholders. Fazer com que os interessados participem do projeto em todo seu ciclo de vida.  Escolher técnicas e ferramentas. Definir técnicas de abordagem dos usuários.
  • 29. Técnicas de Elicitação  Entrevista. Pode ter lista de tópicos ou ser uma conversa informal.  Questionário. Preparado previamente pode ser enviado para os usuários.  Análise de Domínio. Estudar documentação e software existentes.  Introspecção. Basear-se no que o analista acredita que o cliente precisa.  Brainstorming. Reunião com stakeholders para gerar ideias.  Etnografia. Observação dos usuários durante suas atividades habituais.  Aprendizagem. O analista é treinado por um usuário experiente como se fosse desempenhar um papel dentro do cliente.
  • 30. RUP - Fluxo de Solicitações
  • 31. Estratégias 1. Modelo sem caso de uso 2. Apenas modelo de Caso de Uso 3. Funcionalidades norteando modelo de Caso de Uso (RUP) 4. O modelo de Caso de Uso é uma interpretação da Especificação de Requisitos do Software (ERS / SRS)
  • 33. Apenas modelo de Caso de uso
  • 34. Funcionalidades norteiam o modelo de Caso de Uso (RUP)
  • 35. O modelo de Caso de Uso é uma interpretação da SRS
  • 36. Práticas ágeis  Prefira especificação executável ao invés de documentos estáticos.  Documente conceitos estáveis e não ideias especuladas.  Documente o mais tarde possível.  Gere a documentação a partir dos fontes.  Mantenha a documentação simples e clara.  Mantenha poucos documentos e sem sobreposição.  Coloque as informações em local apropriado e público.  Documente com propósitos claros e objetivos.  Foque na necessidade do usuário do documento.  Dedique-se a uma escrita eficiente.
  • 39. Boas práticas  "O faturista deve ser capaz de emitir 10 notas fiscais em menos de 02 horas".  Este requisito tem um sujeito (ator), um estado mensurável e final (10 notas fiscais) e um critério de performance (02 horas).  Defina um requisito por vez.  "O piloto deve poder controlar o ângulo da aeronave usando uma mão".  "O piloto deve poder sentir o ângulo de inclinação através do controle de inclinações da aeronave".
  • 40. Boas práticas  Evite conjunções (e, ou) que englobam vários requisitos.  "O navegador deve poder ver a posição da aeronave relativo à rota demonstrada pelo radar".  "O navegador deve poder ver a posição da aeronave conforme estimado pelo guia de inércia".  Evite palavras que implicam em exceções (a menos que, exceto se, se necessário, mas, porém).  "O design deve providenciar assentos voltados para a parte traseira da aeronave para cada membro da tripulação".  Utilize sentenças simples e diretas.  "O piloto deve ser capaz de ver o indicador de velocidade".
  • 41. Boas práticas  Utilize linguagem natural.  "Para fazer uma ligação de longa distância, o usuário deve tirar o telefone do gancho. O sistema deve responder com um tom de discagem. O usuário deve digitar um "9". O sistema deve responder com um tom de discagem distinto [...]"  "O sistema consiste em quatro estados: Ocupado, Tom de Discagem, Tom de Discagem Distinto e Conectado. Para mudar do status de Ocupado para o status de Tom de Discagem, tire o telefone do gancho. Para mudar do status de Tom de Discagem para o Tom de Discagem Distinto, digite um "9"."  Qual dos dois texto é mais claro para o usuário e para a equipe?
  • 43. Desafios  Para detalhar os requisitos o analista precisa enfrentar uma série de desafios.  Elicitar é tornar explícito, obter o máximo de informações possíveis para ter o domínio do negócio.  Os usuários podem não ter uma ideia exata do que necessitam.  Os usuários tem dificuldade para descrever seu conhecimento sobre um problema.  Os usuários tem pontos de vista diferentes dos analistas.  Os usuários podem dificultar o processo de análise se não forem favoráveisao novo sistema.
  • 44. Desafios  Requisitos devem atender a necessidade do cliente agregando valor ao mesmo. Deve-se evitar a prática de "gold plating".  Requisitos devem ser consistentes e completos sem contradições.  Requisitos devem ser viáveisdentro do orçamento e prazo disponíveis.  Requisitos devem ser rastreáveis entre si. Importante para gerenciar mudanças (inevitáveis) e a evolução do requisito.  Requisitos devem ser passíveisde priorização. Um bom exemplo é a técnica EID (Essencial, Importante e Desejável).
  • 45. Considerações Finais  Os processos de gestão de requisitos precisam ser adaptados e adequados de acordo com a realidade da Empresa, a Natureza dos projetos, o tempo de dedicação para documentação e a experiência dos envolvidos.  Quais artefatos serão gerados e gerenciados, deve, portanto, ser uma decisão da equipe de desenvolvimento.  Boas fontes de estudos são: RUP / OpenUp, SCRUM, Livros de Engenharia de Software.  Os modelos de processos ou frameworks não são doutrinas ortodoxas. São sim, guias contendo boas práticas.
  • 46. Considerações Finais  Escolha com sabedoria.  Se documentar de menos, pode comprometer o entendimento do sistema e fazer com que aspectos importantes do negócio sejam esquecidas ou fiquem na cebeça de quem elicitou / desenvolveu / testou.  Se documentar demais, pode comprometer recursos humanos valiosos e gerar documentos extensos e confusos que, com o passar do tempo, serão abandonados. Deixando de ser atualizados ficam defasados e tornam-se inúteis.