Requisitos de Software
Prof. Adriano Nakamura
Objetivos
Compreender os conceitos dos
requisitos do usuário e dos requisitos de
sistema;
Compreender as diferenças entre
requisitos funcionais e não funcionais;
Compreender como os requisitos
podem ser organizados em um
documento de requisitos de software.
Motivação
No início da computação
Os programadores
não havia nenhuma
sentavam-se e
processo para a
começavam a codificar.
descoberta dos requisitos
Quando começa um
processo de Só que a borracha para
desenvolvimento de efetuar os ajustes custa
software, um lápis custa milhões...
pouco mais de R$ 1,00 .
Motivação
Não é fácil ...
entender a funcionalidade.
obter a forma correta
entender problemas que você não está familiarizado
entender os detalhes da solução
requisitos incompletos (13,1%)
falta de envolvimento por parte do usuário (12,4%)
Engenharia de falta de recursos (10,6%)
Requisitos
expectativas não realistas (9,9%)
falta de apoio dos executivos (9,3%)
Fatores que contribuem
para o fracasso de um modificações nos requisitos e nas especificações (8,7%)
projeto [Fonte: Standish
Group, 1994] : falta de planejamento (8,1%)
o sistema não era mais necessário (7,5%)
Engenharia de
Requisitos
Elo de ligação entre a alocação do software em nível de sistema
(realizada na etapa de Engenharia de Sistema) e o projeto do
software.
Engenharia Análise de Projeto de
de Sistemas Requisitos Software
Uma condição ou uma funcionalidade
Engenharia de necessária a um usuário para resolver um
Requisitos problema.
Uma condição ou funcionalidade que
Requisito (Definição - IEEE): deve ser atingida ou influenciada por um
componente de sistema para satisfazer
um contrato, padrão, especificação, ou
outro documento formalmente definido.
Engenharia de Requisitos é o
processo de descobrir, analisar,
Engenharia de documentar e verificar as
Requisitos funções e restrições do sistema.
Sommerville (2003)
Um requisito de sistema
descreve o que é requerido
para que o sistema cumpra o
seu objetivo.
Estabelecer e manter
concordância com os clientes
e desenvolvedores;
Engenharia de Registrar e acompanhar
Requisitos requisitos ao longo de todo o
desenvolvimento;
Definir as fronteiras do sistema;
Objetivos
Fornecer a base para o
cronograma/custo de
desenvolvimento do sistema.
Engenharia de
Requisitos
Cliente: formular (de modo
concreto) as necessidades
em termos de funções e
desempenho.
Papel do cliente e
do desenvolvedor Desenvolvedor: atua como
indagador, consultor e
solucionador de problemas.
Papel do cliente e do desenvolvedor
Identificar Objetivos de Negócio (Por que desenvolver algo?)
Identificar Stakeholders (Quem está envolvido?)
Obter diferentes Pontos de Vista.(Com que os stakeholders estão
preocupados? Existem conflitos?)
Resolver Conflitos
Identificar Cenários (Quais resultados as pessoas desejam? Sob que
circunstancias?)
Foco no Usuário
Requisitos do usuário: Declarações
em linguagem natural e também em
diagramas, sobre as funções que o
sistema deve fornecer e as restrições
sob os quais deve operar.
Níveis de
Requisitos de sistema: Um documento
Requisitos estruturado com descrições
detalhadas dos serviços de sistemas.
Escrito como um contrato entre o
cliente e contratante
Requisitos do usuário
•Se destinam às pessoas envolvidas no uso e na aquisição do
sistema.
•Diretrizes:
•Utilize um formato padrão;
•Faça uma distinção entre requisitos obrigatórios e os que
são desejáveis;
•Utilize destaque no texto para ressaltar partes importantes;
•Evite uso de jargões.
Engenharia Requisitos do sistema
de •Se destinam a comunicar, de modo preciso as funções que
Requisitos o sistema tem de fornecer.
•Diretrizes:
•Definir o que o sistema deve fazer, e não como ele deve
ser implementado.
•São organizados e acordo com os diferentes subsistemas
que constituem o sistema.
Requisitos funcionais
• Declarações de funções que o sistema deve
fornecer, como o sistema deve reagir a
entradas específicas e como deve se
comportar em determinadas situações.
Requisitos Não funcionais
Tipos de
• Expressam qualidade e restrições sobre os
serviços ou as funções oferecidas pelo sistema. Requisitos
Requisitos Inversos
• Situações que não são consideradas pelo
sistema (fora do seu escopo)
Requisitos Funicionais
Definem as funcionalidades do sistema.
Serviços que o sistema deve fornecer
Como o sistema deve reagir a entradas
específicas
Como o sistema deve se comportar em
determinadas situações
Requisitos Funcionais - Exemplos
O sistema deve cadastrar o cliente(entrada)
O sistema deve emitir um recibo para o cliente (saída)
O sistema deve transformar uma fita disponível em fita emprestada,
quando a fita for alugada pelo cliente (mudança de estado)
Usuário pode pesquisar todo ou um subconjunto dos clientes da loja
Prática – Requisitos funcionais
Dê alguns exemplos de requisitos funcionais para:
1. Sistema da padaria de pequeno porte
2. Sistema de declaração do IRPF
3. Sistema de abertura automática de porta
Requisitos não Funcionais
Surgem conforme a necessidade dos usuários, em razão de
restrições de orçamento etc.
Podem estar relacionados propriedades de confiabilidade, tempo
de resposta e espaço em disco.
A falha de não cumprir com um requisito não funcional de sistema
pode tornar todo o sistema inútil. (ex. requisito confiabilidade num
sistema de aviação).
Exemplo: confiabilidade,
Definem propriedades e tempo de resposta e
restrições de sistema requisitos de
armazenamento
Restrições são capacidade de dispositivos de
E/S, representações de sistema etc.
Requisitos Requisitos de processo podem também ser
não especificados, impondo uma linguagem de
programação, IDE ou método de
Funcionais desenvolvimento particular
Requisitos não-funcionais podem ser mais
críticos do que os requisitos funcionais
Medidas aplicadas em
Requisitos não Funcionais
Fonte: Sommerville, 2011
Classificação dos
Requisitos não Funcionais
Fonte: Sommerville, 2011
Requisitos do Produto Final
• Produto deve comportar-se de forma particular
(velocidade de execução, confiabilidade,
etc.)
Requisitos Organizacionais
• Consequência de políticas e procedimentos
Classificação organizacionais (padrões de processo usados,
dos Requisitos requisitos de implementação, etc.)
não Funcionais
Requisitos Externos
• Consequência de fatores externos ao sistema e
ao processo de desenvolvimento (legislação,
etc.)
Toda consulta de
Requisitos do produto baseada em
Produto código de barras, deve
resultar em até 5s
Todos os documentos
Requisitos entregues devem
Requisitos Organizacionais seguir o padrão de
relatórios XYZ-00
não
Funcionais
A tributação dos
Requisitos produtos é de
Exemplos Externos 15% no Estado
do SP
Prática – Requisitos não funcionais
Dê alguns exemplos de requisitos não funcionais para:
1. Sistema da padaria de pequeno porte
2. Sistema de declaração do IRPF
3. Sistema de abertura automática de porta
Requisitos Inversos
Representam funcionalidades que estão fora do escopo da
solução, definindo a “fronteira” do sistema.
Relacionados a condições que nunca poderão ocorrer
Em alguns casos pode ser interessante explicitar requisitos inversos
para delimitar a fronteira do sistema através de funcionalidades
que estão fora dele
Exemplos de Requisitos Inversos
O sistema não emite nota fiscal
A primeira versão do sistema não possuirá interface web
Prática – Requisitos Inversos
Dê alguns exemplos de requisitos inversos para:
1. Sistema da padaria de pequeno porte
2. Sistema de declaração do IRPF
3. Sistema de abertura automática de porta
Regras de negócio
São declarações de políticas ou condições que devem ser
cumpridas
São tipos de requisitos de como os negócios, incluindo suas
ferramentas de negócios, devem operar
Elas podem ser leis e regulamentos impostos ao negócio,
mas também expressam a arquitetura e o estilo de
negócio escolhidos
Exemplos de regra de negócio
O preço líquido de um Produto é computado por
preço do produto * (1+porcentagem de imposto/100)
Um Cliente é um Bom Cliente se e somente se
as faturas não pagas enviadas a esse Cliente têm menos de 30 dias
O sistema não pode cobrar multa de professores em tempo integral
Deve-se sempre assegurar que o número dos membros da equipe é menor
ou igual a 10
Prática – Regras de negócio
Dê alguns exemplos de regras de negócio para:
1. Sistema da padaria de pequeno porte
2. Sistema de declaração do IRPF
3. Sistema de abertura automática de porta
Problemas dos Requisitos
Os requisitos não refletirem as reais necessidades dos
clientes do sistema.
Os requisitos serem inconsistentes e/ou incompletos.
O custo alto para se fazer mudanças de requisitos depois
de terem sido concordados.
Existirem mal entendidos entre clientes, aqueles que
desenvolvem os requisitos do sistema e os engenheiros de
software que desenvolvem ou mantêm o sistema.
Problemas surgem quando os
requisitos não são precisamente
definidos
Requisitos ambíguos podem ser
interpretados de maneiras diferentes
pelos desenvolvedores e usuários
Imprecisão
dos
Requisitos Considere o termo ‘telas apropriadas’
Intenção do usuário – tela de propósito especial
para cada tipo diferente de documento
Interpretação do desenvolvedor – fornece uma tela
de texto que mostra o conteúdo do documento
Em princípio, requisitos devem ser
completos e consistentes
Eles devem incluir descrições de
Completude todos os recursos requeridos
Requisitos
completos Consistência
Não deve haver conflitos ou
contradições nas descrições
e dos recursos de sistema
consistentes
Na prática, é impossível produzir um
documento de requisitos completo e
consistente
O que são requisitos?
• Uma descrição de um serviço ou de uma
limitação
O que é a engenharia de requisitos?
FAQ’s • O processo envolvido no desenvolvimento de
sobre requisitos de um sistema
Requisitos Quanto custa a engenharia de
requisitos?
• Cerca de 15% dos custos do desenvolvimento
do sistema.
O que é o processo de engenharia de requisitos?
• Um conjunto estruturado de atividades envolvidas no
desenvolvimento dos requisitos do sistema
O que acontece quando os requisitos estão
errados?
• Os sistema atrasam, ficam não confiáveis e não satisfazem as
necessidades dos clientes.
FAQ’s Existe um processo de engenharia de requisitos
sobre ideal?
Requisitos • Não - os processos precisam ser adaptados as necessidades
organizacionais.
O que é um documento de requisitos?
• Uma descrição formal dos requisitos do sistema.
O que são stakeholders do sistema?
• Qualquer pessoa afetada de alguma forma pelo
sistema.
Qual é o relacionamento entre requisitos
e projeto?
FAQ’s • Requisitos e projeto são interligados. Idealmente
eles deveriam ser separados, mas na prática isto
sobre é impossível.
Requisitos
O que é gerenciamento dos requisitos?
• O processo envolvido no gerenciamento das
mudanças dos requisitos
O que são stakeholders do sistema?
• Qualquer pessoa afetada de alguma forma pelo
sistema.
Qual é o relacionamento entre requisitos
e projeto?
FAQ’s • Requisitos e projeto são interligados. Idealmente
eles deveriam ser separados, mas na prática isto
sobre é impossível.
Requisitos
O que é gerenciamento dos requisitos?
• O processo envolvido no gerenciamento das
mudanças dos requisitos
Atividade - Requisitos
Organizar-se em grupo de até 4 alunos
Definir um tema para o sistema
Estabelecer seus objetivos gerais
Descrever de forma detalhada no mínimo:
5 requisitos funcionais
3 requisitos não funcionais
3 requisitos inversos
3 regras de negócio