REQUISITOS
DE SOFTWARE
Uma viso detalhada sobre Requisitos
Funcionais, Requisitos No-Funcionais e Regras
de Negcio
1
Essa famosa imagem reflete perfeitamente a nossa realidade nos
projetos de software. E tudo comea nos Requisitos...
2
Requisitos de Software
Achar uma definio objetiva e exata para a palavra requisito difcil. A
palavra possui alguns significados (conforme os dicionrios), mas chega a ser
um pouco abstrata. Mas basicamente, quando falamos de requisito, estamos
falando de necessidade, exigncia, desejo, solicitao. Levando esta palavra
para o contexto de um software, estamos falando de necessidades de um
usurio, exigncias do negcio, desejos da empresa, solicitao da
empresa, tudo isso devendo ser realizado por um sistema, ou seja, o software
dever atender estas necessidades, exigncias, desejos e solicitaes, e
materializar isso em um sistema.
Mas quando essa busca pela ordem comea, todos querem organizar
tudo, e geralmente utilizam-se mtodos e processos para isso, baseando-
se consciente/inconscientemente no mtodo cientfico1.
1 https://pt.wikipedia.org/wiki/Mtodo_cientfico
4
Na literatura de engenharia de software, de um modo geral, regras de
negcio no so tratadas como requisitos, em vrios casos nem so
mencionadas. Mas eu as coloco no mesmo nvel de importncia que os
requisitos funcionais e No Funcionais, pois sem elas no existe
sistema, sem elas no existem requisitos funcionais.
5
Vamos detalhar cada um dos trs tipos de requisitos e entender melhor do
que se trata cada um deles.
6
Requisito Funcional
Como vimos no captulo anterior, requisito uma exigncia, solicitao,
desejo, necessidade. Quando falamos de um Requisito Funcional estamos nos
referindo requisio de uma funcionalidade que um software dever
atender/realizar. Ou seja, exigncia, solicitao, desejo, necessidade, que um
software dever materializar.
http://www.ibm.com/support/knowledgecenter/SS5JSH_9.5.0/com.ibm.xtools.petal.ui.doc/topics/rkeydifmulti
plicity.html?lang=pt-br
7
incluir/alterar/consultar/excluir clientes dos tipos pessoa fsica e pessoa jurdica.
Mas quantos requisitos so realizados (atendidos) por esta funcionalidade?
Oito requisitos. Vejamos a lista a seguir:
3 http://www.ateomomento.com.br/o-que-e-caso-de-uso/
8
mais funcionalidades do sistema. Na viso da modelagem conceitual,
Regras de negcio so o como, requisitos funcionais so o o que.
E por ser algo importante como , todo cuidado pouco para que estes
requisitos possuam a maior qualidade possvel, pois apenas a existncia deles
no escopo no garante um bom sistema, eles precisam ter qualidade em termos
de sintaxe e semntica4. Precisam ser bem feitos. Mas o que devemos entender
como qualidade de um requisito?
Atributo Referente a
O RF deve propor uma nica coisa apenas. No deve atender
a mais de uma exigncia. O RF Incluir cliente no unitrio,
Unidade pois se refere a incluir clientes de tipos diferentes (pessoa
fsica e jurdica), assumindo assim vrias responsabilidades,
quando deveria assumir apenas uma.
O RF deve ser autocontido, deve ter incio/meio/fim, ser
Completude
completo. O RF Pagar fatura no completo, s conta parte
4 http://www.ateomomento.com.br/sintaxe-semantica-software/
9
Atributo Referente a
da estria. Para ser completo deveria ser algo como Pagar
fatura com carto de crdito para cliente pessoa fsica.
O RF no deve contradizer outro RF do mesmo escopo do
projeto. como termos dois RFs se propondo a fazer uma
Consistncia
mesma coisa, mas cada RF se propondo a fazer esta coisa
de uma forma diferente.
Um RF para ser atmico precisa tambm ter unidade, pois
atomicidade remete a assumir apenas uma responsabilidade.
Mas tambm deve ser algo indivisvel, no podendo ser
decomposto. Muitos RFs possuem conjuno, dependem de
Atomicidade outros para se realizarem. Onde temos dois RFs Realizar
compra de produto e Realizar pagamento com carto de
crdito na realidade, se pensarmos em atomicidade, temos
um nico RF que Realizar compra de produto com
pagamento em carto de crdito.
Um RF no pode ser ambguo, no pode propor algo que no
fica claro o que . O RF Emitir relatrio no quer dizer nada.
No- Relatrio de que, para que? Emitir relatrio de saldo j
Ambiguidade melhor, mas ainda ruim. Saldo de que? Seria no ambguo
se no deixasse dvidas, algo como Emitir relatrio de saldo
da conta corrente do cliente pessoa fsica.
No adianta ter um RF se ele no palpvel, possvel de
associar com um artefato de construo, de testes. Um RF
Verificvel tem que ser testvel, tem que ser possvel atestar que o RF
foi atendido, foi construdo, foi homologado. Para isso tem que
ser tambm rastrevel.
Deve ser possvel achar o RF no sistema pronto, funcional e
executvel. Como saber se um RF foi atendido? Para isso
necessrio ter rastreabilidade, e isso s possvel ligando as
Rastrevel
pontas (associar o RF interface grfica, que ser associada
a um caso de uso, que ser associado a funcionalidades, que
sero implementadas etc.).
Um RF Essencial algo muito diferente de um RF Desejvel,
Prioridade5
possuem valores para o negcio completamente diferentes.
5 http://www.ateomomento.com.br/priorizacao-de-requisitos/
10
Atributo Referente a
O RF deve possuir sua prioridade, isso interfere diretamente
no projeto do software.
Identificador <<Numero>>
Nome <<Texto>>
Mdulo <<Texto>>
Data de
<<Data>> Autor <<Texto>>
criao
Data da ltima
<<Data>> Autor <<Texto>>
alterao
Verso <<Numero>> Prioridade <<Texto>>
Descrio <<Texto>>
6
https://pt.wikipedia.org/wiki/Ferramenta_CASE
11
Campo Descrio
Sufixo seguido de um identificador nico. O sufixo
Identificador geralmente utilizado RF (Requisito Funcional) e o
identificador nico geralmente composto de quatro dgitos.
Nome curto do RF, mas que possibilite entender bem o que
Nome
RF faz apenas pelo nome.
Mdulo ao qual o RF pertence. Se for um sistema pequeno
Mdulo que no possua nenhum mdulo, somente o prprio
sistema, deve ser preenchido com N/A (no se aplica).
Data da criao do RF, ou a data em que ele foi
Data de criao
especificado.
Profissional que especificou o RF pela primeira vez, quem o
Autor
criou.
Data da ltima
Data em que houve a ltima alterao no RF.
alterao
Profissional que alterou a especificao do RF pela ltima
Autor
vez.
Nmero da verso do RF. Geralmente utiliza-se algo
simples, como 1, 2. A verso inicial sempre a 1, e a cada
Verso
alterao incrementa-se a verso (na criao verso 1, na
primeira alterao verso 2 e por a vai).
Prioridade7 Se o RF Essencial, Importante ou Desejvel.
Descrio Descrio detalhada (a mais detalhada possvel) do RF.
Exemplos de requisitos
requisitos funcionais especificados
Vejamos alguns exemplos de requisitos funcionais especificados:
7 http://www.ateomomento.com.br/priorizacao-de-requisitos/
12
Identificador RF0001
Consultar automaticamente o CEP de clientes atravs do
Nome
endereo residencial
Mdulo Cadastro
Data de
31/01/2016 Autor Arquitas de Tarento
criao
Data da ltima
N/A Autor N/A
alterao
Verso 1 Prioridade Desejvel
Para todos os clientes cadastrados dever ser possvel
consultar o CEP do endereo residencial de maneira
automtica atravs dos dados de logradouro, nmero,
complemento, bairro, cidade e estado.
Descrio
A consulta se dar aps os dados citados serem informados,
de maneira transparente para o usurio final. No deve ser
necessrio clicar em boto ou acionar algum outro comando
para que a consulta ocorra.
Identificador RF0002
Herdar permisses de acesso para o usurio que for
Nome associado a um grupo de usurios previamente cadastrado
e ativo
Mdulo Segurana
Data de
31/01/2016 Autor Nelson Goodman
criao
Data da ltima
N/A Autor N/A
alterao
Verso 1 Prioridade Essencial
O sistema trabalha com o conceito de grupo de usurios,
onde todo usurio deve fazer parte de, ao menos, um grupo
ativo (grupos inativos no se aplicam).
Descrio
Para informao, no permitido atribuio individual de
permisso diretamente ao usurio. As permisses se do
13
apenas no nvel de grupo. Cada grupo de usurios possui
um perfil pr-configurado de permisses de acesso.
Identificador RF0003
Emitir carta de cobrana para clientes inadimplentes
Nome
conforme critrios pr-estabelecidos
Mdulo Cobrana
Data de criao 31/01/2016 Autor Hpias de Elis
Data da ltima
N/A Autor N/A
alterao
Verso 1 Prioridade Essencial
Para todo cliente que esteja inadimplente dever ser
possvel a emisso de carta de cobrana atravs do sistema.
O resultado da emisso ser a carta impressa, que ser
posteriormente despachada por correios ou outro agente de
entrega.
14
Identificador RF0004
Recalcular contribuies calculadas incorretamente que
Nome
no tenham sido pagas para participantes ativos
Mdulo Contribuies
Data de
31/01/2016 Autor Lucrcio
criao
Data da ltima
N/A Autor N/A
alterao
Verso 1 Prioridade Importante
Aps o clculo das contribuies de um participante
(participante de qualquer plano previdencirio cadastrado no
sistema) haver a conferncia manual, por um aturio, dos
valores de contribuio que foram calculados pelo sistema.
15
Isto um menu de contexto, o famoso menu que exibido aps o clique
com o boto direito do mouse (pode ser o esquerdo tambm, dependendo da
configurao no sistema operacional). Neste menu temos diversos comandos
que podem ser executados, onde podemos extrair facilmente mais de uma
dezena de requisitos funcionais que nesta funcionalidade (menu de contexto)
so realizados.
Identificador RF0019
Colar sem formatao o texto copiado da rea de
Nome
transferncia
Mdulo Editor de Texto
Data de criao 25/02/2016 Autor Eckhart
Data da ltima
N/A Autor N/A
alterao
Verso 1 Prioridade Essencial
Aps a cpia de algum contedo textual para rea de
transferncia do sistema operacional, o usurio poder
Descrio realizar a colagem deste contedo no documento que estiver
editando.
16
A colagem sem formatao dever considerar a formatao
configurada no exato local onde o contedo estar sendo
colado (no documento em edio pelo usurio), assumindo
esta formatao. A formatao contida na origem onde o
texto foi copiado dever ser ignorada.
Este um sub menu que exibido aps o clique no item de menu Ajuda.
Temos diversos comandos no sub menu e vamos analisar o comando Verificar
por atualizaes.
Identificador RF0087
Nome Verificar por atualizaes disponveis
Mdulo Editor de Texto
17
Data de
25/02/2016 Autor Eraststenes
criao
Data da ltima
N/A Autor N/A
alterao
Verso 1 Prioridade Desejvel
O usurio dever ter um recurso para que, sob demanda,
verifique se existem atualizaes disponveis para o
Descrio aplicativo, atualizaes que ainda no foram instaladas por
ele.
18
Fatura, Transferir dinheiro e coisas do tipo. Neste nvel de detalhe,
conflitos entre usurios e analistas ou entre analistas e programadores,
por exemplo, algo fatal.
Identificador RF0096
Nome Adicionar um local de trabalho
Mdulo Perfil do usurio
Data de criao 25/03/2016 Autor Plotino
Data da ltima
N/A Autor N/A
alterao
Verso 1 Prioridade Essencial
19
O usurio poder inserir informaes sobre trabalho e
educao em seu perfil na rede social. Neste contexto,
dever poder adicionar seus locais de trabalho (empresas
Descrio onde trabalhou).
20
Requisito No Funcional
Funcional
Requisito No Funcional, como o prprio nome diz, uma no
funcionalidade, ou seja, trata-se de algo que no uma funcionalidade, mas
que precisa ser realizado para que o software atenda seu propsito.
21
Importncia dos Requisitos No Funcionais
Requisitos No Funcionais so to importantes quanto os requisitos
funcionais ou regras de negcio. Infelizmente muito difcil encontrar alguma
empresa que leve isso a srio, e a est a causa do fracasso de muitos projetos
de software.
22
existem em quantidade muito menor nos projetos se comparado com os
RFs mas possuem uma amplitude enorme no sistema. Um RNF
pertinente usabilidade, por exemplo, algo sobre padro de barra de
rolagem, pode existir em quase todas as telas do sistema.
23
Reestruturar uma arquitetura no uma atividade trivial. E no geral (no
regra) o impacto de uma reestruturao destas proporcional ao
tamanho do sistema. Quanto maior o sistema, mais problemtico
realizar alteraes arquiteturais.
8
https://pt.wikipedia.org/wiki/Ferramenta_CASE
24
Identificador <<Numero>> Categoria <<Texto>>
Nome <<Texto>>
Data de
<<Data>> Autor <<Texto>>
criao
Data da ltima
<<Data>> Autor <<Texto>>
alterao
Verso <<Numero>> Prioridade <<Texto>>
Descrio <<Texto>>
Campo Descrio
Sufixo seguido de um identificador nico. O sufixo geralmente
utilizado RNF (Requisito No Funcional) e o identificador nico
Identificador
geralmente composto de dois dgitos (dificilmente um projeto
ter mais que 99 RNFs).
Categoria qual o RNF pertence (Desempenho, Usabilidade,
Categoria
Padro etc.).
Nome curto do requisito, mas que possibilite entender bem o
Nome
que RNF faz apenas pelo nome.
Data de
Data da criao do RNF, ou a data em que ele foi especificado.
criao
Profissional que especificou o RNF pela primeira vez, quem o
Autor
criou.
Data da
ltima Data em que houve a ltima alterao no RNF.
alterao
Autor Profissional que alterou a especificao do RNF pela ltima vez.
Nmero da verso do RNF. Geralmente utiliza-se algo simples,
como 1, 2. A verso inicial sempre a 1, e a cada alterao
Verso
incrementa-se a verso (na criao verso 1, na primeira
alterao verso 2 etc.).
Prioridade9 Se o RNF Essencial, Importante ou Desejvel.
Descrio Descrio detalhada (a mais detalhada possvel) do RNF.
9 http://www.ateomomento.com.br/priorizacao-de-requisitos/
25
Mais frente teremos vrios exemplos de RNFs, onde poderemos ver o
modelo apresentado com todos os campos preenchidos.
Categoria Referente a
Desempenho do sistema, restries de performance,
tempo de resposta em processamentos especficos,
Desempenho
cargas, velocidade de resposta de processamentos em
telas etc.
Disponibilidade do sistema em tempo til, restries sobre
Disponibilidade janelas de manuteno, janelas de produo, solues de
contorno quando houver queda de energia etc.
Diretrizes pertinentes segurana do sistema, como
algoritmo de criptografia a ser utilizado, regras para
Segurana criao e manuteno de usurios e senhas, uso de
certificados digitais, uso de protocolos seguros
especficos, uso de captcha etc.
Necessidades de integrao do sistema com outros
Interoperabilidade sistemas, integrao com APIs10, componentes, banco de
dados externos etc.
Quantidade mxima de cliques por tipo de funcionalidade,
uso de componentes e lgicas de telas especficas,
restrio/premissas para uso de componentes grficos
Usabilidade
(grids, barras de rolagem, menus), recursos de
acessibilidade para deficientes, compatibilidade com
idiomas etc.
Browser e sistemas operacionais nos quais o software
dever rodar, verses de browser e sistemas
Compatibilidade operacionais, protocolos compatveis, verses de
linguagens de programao e banco de dados para
retrocompatibilidade etc.
10http://www.ateomomento.com.br/o-que-e-api/
26
Categoria Referente a
Polticas para backup do sistema e seus dados,
quantidade limite de erros em clculos e processamentos
Confiabilidade com erro, regras para rollback quando houver alguma
falha, recursos para restaurao automtica do sistema
em caso de queda de energia etc.
Padres em geral, aplicveis ao software e ao projeto:
padro de log de erro, de log de informao, padro de
Padres mensagens, metodologia para desenvolvimento do
sistema, padres de projeto (design patterns) a serem
aplicados, padres arquiteturais etc.
Exigncias de conformidade do software com alguma
legislao pertinente ao projeto, por exemplo,
Legais atendimento a alguma norma da Agncia Nacional de
Sade para software de hospital, a norma do Banco
Central para sistemas financeiros etc.
27
devido ao alto volume de dados. Em funo desta realidade
o sistema dever prover recursos para processamento
paralelo (multithreading) que possibilite processar lotes de
faturas de forma paralela, compactando o tempo de
execuo da rotina diria.
28
sete dias por semana) na operao do Call Center da
empresa. Por isso necessrio que o sistema possua
recursos para sua utilizao em modo off-line, pois em
nossa infraestrutura no possvel ter garantia de 100% de
disponibilidade do servidor de banco de dados. Para
informao, a garantia atual de 89% de disponibilidade do
ambiente.
29
Identificador RNF03 Categoria Segurana
Autenticao de usurio para consumo de webservices do
Nome
sistema por sistemas externos
Data de
30/01/2016 Autor Andr Comte Sponville
criao
Data da ltima
N/A Autor N/A
alterao
Verso 1 Prioridade Essencial
Todas as APIs11 do sistema expostas como webservices
podero ser acessadas por sistemas externos de clientes,
fornecedores e parceiros. Este acesso precisa ser seguro,
com autenticao em nvel do servidor e em nvel da
aplicao.
11
http://www.ateomomento.com.br/o-que-e-api/
30
infraestrutura da empresa que tenha detalhes sobre os nveis
de complexidade exigidos para cadastro de senhas); tudo
isso deve ser considerado no tratamento de excees no
contexto deste requisito.
31
o arquivo ou nas configuraes do sistema), possa ser
realizada a retransmisso dos arquivos.
32
frao pertinente funcionalidade que no for homologada,
segundo os critrios aqui apresentados.
33
Data de
30/01/2016 Autor Empdocles
criao
Data da ltima
N/A Autor N/A
alterao
Verso 1 Prioridade Essencial
O projeto do software dever ser fortemente orientado a
baixo acoplamento e alta coeso, primando pela melhor
separao de responsabilidades.
34
Identificador RNF08 Categoria Legais
Atendimento instruo normativa 554 da ANS (Agncia
Nome
Nacional de Sade)
Data de
30/01/2016 Autor Hipcrates
criao
Data da
ltima N/A Autor N/A
alterao
Verso 1 Prioridade Essencial
Para atendimento instruo normativa 554 da ANS, o mdulo
de pronturio dever gravar em todas as suas tabelas as
informaes de data/hora do atendimento realizado e dados
do mdico que realizou o atendimento (CRM e nome
completo). Estas informaes podero ser solicitadas pela
ANS h qualquer momento, sem aviso prvio.
35
Regra de Negcio
Deduzo que antes do lanamento do microcomputador o termo Regra de
Negcio era algo interpretado totalmente isolado dos softwares empresariais,
ou talvez nem fosse um termo conhecido pelas pessoas.
Nos tempos atuais difcil encontrar algum que entende Regra de Negcio
como algo isolado do software. Quando se fala Regra de Negcio,
praticamente sempre no contexto de um sistema. possvel uma empresa
mais arcaica viver sem software, mas no consegue viver sem regras de
negcio.
12 http://www.ateomomento.com.br/o-debito-tecnico/
37
especificao de uma RN. A seguir a lista dos atributos que considero
relevantes.
Atributo Referente a
A RN deve propor/viabilizar uma nica coisa apenas. No
deve atender a mais de uma restrio. A RN Clculo de
salrio no unitria, pois se refere implicitamente a clculo
de qualquer tipo de salrio, e em qualquer empresa existem
Unidade
formas diferentes de calcular salrio (para profissional ativo,
aposentado, estagirio, efetivo, licenciado etc.). Esta RN
assume assim vrias responsabilidades, quando deveria
assumir apenas uma.
A RN deve ser autocontida, deve ter incio/meio/fim, ser
completa. A RN Clculo de salrio no completa, s conta
Completude parte da estria. Para ser completo deveria ser algo como
Clculo de salrio para profissionais afastados h mais de 15
dias.
No deve contradizer outra RN do mesmo escopo do projeto.
como termos duas RNs se propondo a fazer uma mesma
Consistncia
coisa, mas cada RN se propondo a fazer esta coisa de formas
diferentes.
Uma RN para ser atmico precisa tambm ter unidade, pois
atomicidade remete a assumir apenas uma responsabilidade.
Mas tambm, deve ser indivisvel, no podendo ser
decomposta. Muitos RNs possuem conjuno, dependem de
outras para se realizar. Onde temos duas RNs Calcular juros
Atomicidade
para pagamento atrasado e Incluir juros para pagamentos
de financiamento imobilirio atrasados na realidade, se
pensarmos em atomicidade, temos uma nica RN que
Calcular juros para pagamentos atrasados de financiamento
imobilirio.
No pode ser ambgua, definir algo que no fica claro o que
. A RN Critrios para processamento de faturas ambgua.
Fatura de que, critrios para processar o que? Critrios para
No-
processamento de fatura de mensalidade j melhor, mas
Ambiguidade
ainda ruim. Mensalidade de que? Seria no ambguo se no
deixasse dvidas, algo como Critrios para processamento
de faturas de mensalidades de alunos do segundo grau ou
38
Atributo Referente a
Critrios para processamento de faturas de mensalidades de
qualquer aluno impendente de srie.
No adianta ter uma RN se ele no palpvel, possvel de
associar com um RF que ser construdo, testado etc. Uma
Verificvel RN tem que ser testvel, tem que ser possvel atestar que a
RN foi atendida atravs de algum RF. Para isso tem que ser
tambm rastrevel.
Deve ser possvel achar a RN no sistema pronto. Como saber
se uma RN foi atendida? Para isso necessrio ter
rastreabilidade, e isso s possvel ligando as pontas
Rastrevel
(associar a RN ao RF, associar o RF interface grfica, que
ser associada a um caso de uso, que ser associado a
funcionalidades, que sero implementadas etc.).
Muitas RNs tratam de clculos, frmulas, algoritmos etc. Uma
RN deve poder ser exemplificada fora do contexto do sistema,
Exemplificvel
para assim facilitar o entendimento de seu escopo pelos
profissionais que a implementaro/validaro.
Identificador <<Numero>>
Nome <<Texto>>
Data de
<<Data>> Autor <<Texto>>
criao
Data da ltima
<<Data>> Autor <<Texto>>
alterao
Verso <<Numero>> Dependncias <<Texto>>
39
Descrio <<Texto>>
Campo Descrio
Sufixo seguido de um identificador nico. O sufixo
geralmente utilizado RN (Regra de Negcio) e o
Identificador identificador nico geralmente composto de quatro dgitos
(podendo ser mais, conforme a o tamanho do sistema que
est sendo especificado).
Nome curto da RN, mas que possibilite entender bem o que
Nome
RN faz apenas pelo nome.
Data de Data da criao do RN, ou a data em que ela foi
criao especificada.
Profissional que especificou a RN pela primeira vez, quem a
Autor
criou.
Data da
ltima Data em que houve a ltima alterao no RN.
alterao
Profissional que alterou a especificao da RN pela ltima
Autor
vez.
Nmero da verso do RN. Geralmente utiliza-se algo
simples, como 1, 2 etc. A verso inicial sempre a 1, e a
Verso
cada alterao incrementa-se a verso (na criao verso 1,
na primeira alterao verso 2 etc.).
Quais RFs so dependentes da RN para serem realizados.
Dependncias
Coloca-se apenas o identificador dos RFs.
Descrio Descrio detalhada (a mais detalhada possvel) da RN.
Exemplos
Vejamos alguns exemplos de RN. Para os exemplos utilizei o cenrio
descrito anteriormente para a empresa que possui o departamento de
expedio de materiais (entregas). Os RFs que dependem destas RNs no
esto especificados, so fictcios. Utilizaremos apenas o identificador dos RFs
(RF0099 Realizar entrega presencial de material no departamento de
expedio e RF0002 Informar por e-mail o gerente do departamento de
expedio sobre ausncia de material no almoxarifado).
40
Identificador RN0001
Validao da identificao da pessoa que solicita a
Nome
retirada/entrega do material
Data de
31/01/2016 Autor Nagarjuna
criao
Data da ltima
N/A Autor N/A
alterao
Verso 1 Dependncia RF0099
Sempre que uma pessoa se dirigir ao departamento de
expedio para solicitar uma mercadoria esta pessoa deve se
identificar com seu documento de identidade. O profissional
do departamento de expedio deve certificar-se que o
documento vlido.
Identificador RN0002
Localizao automtica do material solicitado para ser
Nome
entregue
Data de
31/01/2016 Autor Nicolau de Cusa
criao
Data da ltima
N/A Autor N/A
alterao
Verso 1 Dependncia RF0099
Aps checar que o documento vlido (vide RN0001) o
profissional dever pegar o documento de protocolo de
entrega com a pessoa.
Descrio
O nmero do protocolo entregue pela pessoa que solicitou o
material dever ser informado no sistema, que aps insero
41
do nmero do protocolo dever informar qual a seo e caixa
em que o material se encontra.
Identificador RN0003
Nome Formalizao da entrega do material solicitado
Data de
31/01/2016 Autor Parmnides
criao
Data da ltima
N/A Autor N/A
alterao
Verso 1 Dependncia RF0099, RF0002
Aps a coleta do material a ser entregue pelo profissional do
departamento de expedio, a entrega dever ser
formalizada via sistema, onde ocorrer o registro da liberao
do material atravs de um termo de liberao de material.
42
Diferenas entre Requisito
Funcional e Regra de Negcio
Eu imagino que antes do lanamento do microcomputador, o termo
Regra de Negcio era algo interpretado totalmente isolado dos softwares
empresariais, ou talvez nem fosse um termo conhecido pelas pessoas.
Nosso corpo no bem uma empresa, mas pode ser encarado desta
forma. Somos o responsvel por administr-lo, e se cuidarmos dele como
um bom empresrio cuida de seu negcio, provavelmente teremos
excelentes resultados.
Por agora, vamos pensar num negcio mais palpvel. Vamos pensar
num negcio de venda de coco na praia, executado e administrado por um
vendedor, que uma pessoa fsica.
Mas pode tambm manter seu negcio sem isso (sem automatizar seu
controle atravs de um aplicativo num smartphone). Mas ele no conseguir
trabalhar sem ter suas regras de negcio, mesmo que ele no saiba o que
uma Regra de Negcio.
43
Exemplo num negcio real
Quando a caixa de isopor (onde ficam os cocos) ficar sem gelo o vendedor
dever parar, abastecer a caixa com gelo e somente a continuar a vender.
O vendedor dever portar ferramenta que permita furar o buraco no coco para
que o cliente possa beb-lo. Esta ferramenta no pode ser cortante nem
serrilhada nas bordas.
44
Poderamos elencar dezenas de outras regras de negcio do contexto
apresentado, mas com as descritas j fica claro que Regra de Negcio existe
sem sistema, e que uma empresa no existe sem regras de negcio.
Uma boa dica para saber o que Regra de Negcio perceber quando
h condies: somente, quando, requer, se, obrigatrio, sempre.
Requisitos no possuem condies, regras so condies. Requisitos
so aes objetivas, desejo, solicitao.
45
Mais sobre a Venda de Coco
Ainda no exemplo do vendedor de coco, teramos requisitos funcionais
como:
46
Violao do princpio da responsabilidade nica13 (princpio que se aplica
a qualquer artefato de produo de um software, no somente a modelos de
cdigo fonte): Uma Regra de Negcio tem a responsabilidade de restringir
algo, baseado na condio que considerada em seu escopo. Um Requisito
Funcional um objetivo que o sistema dever alcanar, uma funo que o
sistema dever realizar.
13
http://www.ateomomento.com.br/s-o-l-i-d-srp-single-responsibility-principle/
47
Nosso corpo uma mquina perfeita. Atravs da observao14 podemos
aprender tudo analisando o corpo, de anlise de sistemas artes.
Requisito Funcional
Digerir os alimentos inseridos atravs da boca e transportados pelo tubo
digestivo.
Regra de Negcio
Expelir alimentos pelo tubo digestivo quando houver o preenchimento de 100
por cento do espao do estmago.
Requisito Funcional
Absorver ar pelas vias areas a partir de inalao pelo nariz.
Regra de Negcio
Viabilizar um engasgo quando houver bloqueio das vias reas por entupimento.
14
https://pt.wikipedia.org/wiki/Observao
48
Um exemplo no software, para fechar
Vejamos o programa Ping15, existente em qualquer sistema operacional.
Este programa serve para verificar se h conectividade entre o host local e
um host qualquer. Essa conectividade verificada atravs do envio de pacotes
ICMP16 para o host destino, e se este host receber o pacote envia um retorno
que o programa entende e interprete.
Requisito Funcional
Enviar pacotes ICMP para o host destino e monitorar o retorno do envio.
Requisito Funcional
Exibir estatsticas do envio dos pacotes ICMP ao trmino da execuo do
programa.
15
https://pt.wikipedia.org/wiki/Ping
16
https://pt.wikipedia.org/wiki/Internet_Control_Message_Protocol
17
https://www.vivaolinux.com.br/dica/Entendendo-o-campo-TTL-do-Ping
49
Regra de Negcio
O envio dos pacotes ICMP dever se repetido quatro vezes por cada execuo
do programa. Mesmo que o TTL dos pacotes ICMP do primeiro envie esgote,
as trs tentativas de envio restantes devero ser executadas.
Regra de Negcio
Interromper execuo quando no for possvel realizar a traduo do nome do
domnio para um endereo IP.
Regra de Negcio
Interromper a execuo quando o tempo de vida (TTL) dos pacotes ICMP
enviados expirar.
18
https://pt.wikipedia.org/wiki/Domain_Name_System
50
Concluindo
Vimos que os dois conceitos citados so coisas diferentes, e no sutilmente
bem diferentes, so muito diferentes.
51
Priorizao de Requisitos
Quando falamos em Escopo do Sistema (no Escopo do Projeto),
estamos falando de requisitos (tanto funcionais quanto No Funcionais, e
tambm regras de negcio)
A grosso modo, vamos entender como requisito tudo aquilo que deve
ser feito no sistema, que compe o escopo do sistema (o que j vimos
anteriormente neste eBook).
Informaes faltantes
Durante a especificao a equipe faz reunio com os usurios, obtm
leis, normas, e-mails etc. Aps a concluso da especificao, ocorre
a validao, e aps algumas idas e vindas, o escopo validado. Na hora da
materializao dos requisitos (leia-se projeto, construo, testes etc.) comea
19
http://www.ateomomento.com.br/o-problema-da-descoberta-do-escopo-o-cone-da-incerteza/
52
o puxa, esqueci, tinha isso tambm e o puxa, isso aqui um pouco diferente
do que tnhamos pensado.
20
www.ateomomento.com.br/relacao-com-o-usuario/
53
Se analisssemos o que realmente importante/urgente, com certeza
viveramos melhor, pois faramos primeiro aquilo que realmente importante.
Mas se no houvesse limitao/escassez de recurso, todos iriam querer tudo!
Mas no d para fazer tudo em um projeto. E para decidir o que deve ser
feito com os recursos que sem tem, uma das melhores formas para isso
priorizar os requisitos. Em termos de mtodo aplicado, a grosso modo,
estamos falando de criar uma lista com os requisitos, definir uma prioridade
para cada um, e os mais prioritrios vo para o incio da lista, os menos
prioritrios, para o fim. Aps a priorizao, importante definir uma ordem de
execuo para os requisitos com a mesma prioridade.
Essencial
Realmente fundamental para o sistema, sem o qual o sistema no pode
ser dado como completo, ou apto para produo. So requisitos que se no
so implementados impedem uma implantao ou a concluso do sistema.
So compulsrios, no sendo possvel aplicar solues de contorno ou
paliativos para eles.
Importante
Deve ser parte do escopo, mas no bloqueia o sistema a entrar em
produo. como se o sistema ficasse com uma pendncia de
escopo criando dbito tcnico21 que ser atendido em momento oportuno.
Sem um requisito importante, o sistema poder rodar, funcionar, ser
21
http://www.ateomomento.com.br/o-debito-tecnico/
54
utilizado. Pode ser simplesmente postergado para ps-implantao, ou ser
atendido temporariamente por solues de contorno ou paliativos.
Desejvel
No indispensvel para o sistema estar completo, para entrar em
produo. Tambm no algo que, mesmo postergado, dever ser feito
obrigatoriamente.
55
backlog do produto/lista de requisitos) e tambm sempre no incio de cada
iterao, para repriorizao.
Em projetos onde o ciclo de vida utiliza Scrum, por exemplo, muito til
nas reunies de Sprint Planning haver reviso do backlog onde so
avaliados/reavaliados tanto os itens do backlog, quanto o esforo para
produo e a priorizao definida para cada item.
56