em Contextos Ágeis
Vinicius Carvalho
1
Este material faz parte do livro “Engenharia de Requisitos” e está disponível na disciplina
de mesmo nome em nossa Pós-graduação em Engenharia de Software com Ênfase em
Qualidade e Testes de Software. Foi escrito pelo nosso professor Vinicius Carvalho. Você
pode saber mais sobre a pós entrando em contato por e-mail: contato@uniciv.com.br ou
telefone: 0800 006 4224
2
Sumário
PREFÁCIO ...................................................................................................................................... 4
Sobre o livro .............................................................................................................................. 5
INTRODUÇÃO ................................................................................................................................ 6
UNIDADE I: Introdução a Engenharia de Requisitos ................................................................... 7
Modelo Tradicional. O mais famoso, Cascata! ........................................................................ 8
Modelo Ágil............................................................................................................................. 10
O que pode ser considerado um requisito ............................................................................ 12
O engenheiro de requisitos. Quem são da onde vem o que fazem ...................................... 13
Sou desenvolvedor, mas será que estou me tornando analista? ..................................... 15
O Mercado .......................................................................................................................... 15
Certificação de engenharia de requisitos .......................................................................... 16
UNIDADE II: Processos da engenharia de requisitos ................................................................. 17
Concepção ............................................................................................................................... 18
Planejamento.......................................................................................................................... 19
Elicitação ................................................................................................................................. 20
Técnicas de elicitação ......................................................................................................... 21
Prototipação ........................................................................................................................... 21
Documentação ........................................................................................................................ 23
Markdown........................................................................................................................... 24
Requisitos Funcionais e Não Funcionais ................................................................................ 26
Requisitos funcionais .......................................................................................................... 26
Requisitos não funcionais .................................................................................................. 27
Como descrever os requisitos ................................................................................................ 28
Histórias de usuários .......................................................................................................... 28
Critérios de aceitação ......................................................................................................... 29
Outra estrutura de documentação ........................................................................................ 31
Gerenciamento dos requisitos ................................................................................................... 36
3
PREFÁCIO
Aqui no Brasil, ainda tem muito a cultura das empresas apenas vender o
desenvolvimento de software sem análise e muitos projetos até sem testes.
Essas duas etapas são bastante lembradas quando os projetos dão
problema e prejuízo.
4
Sobre o livro
5
INTRODUÇÃO
6
UNIDADE I: Introdução a Engenharia de Requisitos
"Algumas pessoas não gostam de mudanças, mas você precisa abraçar a mudança se a alternativa for
desastre"
— Elon Musk
7
Figura 1 Tipos de requisitos
9
Modelo Ágil
10
Figura 5 Modelo waterfall comparado ao modelo ágil
11
Figura 6 Engenheiro de requisitos no contexto ágil
12
O artefato que você irá utilizar como seu requisito, irá depender do cenário
e da sua necessidade. E na maioria dos casos você irá utilizar todos eles
juntos. Todos fazendo parte de uma documentação do seu projeto.
13
Pensando nessas habilidades o perfil que o engenheiro de requisitos precisa
ter é o seguinte:
14
solução, para propor soluções que serão possíveis de serem
utilizadas e também para saber o que poderá ser desenvolvido.
O Mercado
15
Figura 7 Imagem que ilustra o caos do desenvolvimento de software
Essa imagem ficou muito conhecida e famosa, pois ilustra muito bem a
realidade do que acontece nas empresas de desenvolvimento de software.
A busca das empresas para os casos dessa imagem não acontecer mais,
gerou um aumento na procura dos profissionais de análise de requisitos.
Hoje pequenas, médias e grandes empresas estão brigando por esses
profissionais. Uma vez que em comparação com o número de
desenvolvedores, é um número bem menor.
16
UNIDADE II: Processos da engenharia de requisitos
“Toda empresa precisa de gente que erra, que não tem medo de errar e que aprenda com o erro"
— Bill Gates
Concepção Planejamento
Documentação Elicitação
Prototipação
17
Concepção
Na fase de concepção é onde o cliente irá lhe apresentar o que deverá ser
desenvolvido, e por consequência você deverá criar uma documentação.
Os objetivos principais da concepção são:
18
Planejamento
19
Figura 9 Mapa mental do seu projeto
Elicitação
20
Também é hora de enxugar um pouco mais o escopo e focar em o que
realmente será fundamental para o seu cliente. Pois assim você conseguirá
entregar valor real a ele.
Também será hora de identificar quais são as premissas e restrições do
sistema ou do ambiente que ele será implantado.
Técnicas de elicitação
Prototipação
21
Figura 10 Exemplo de protótipos
A prototipação é uma fase que poderá e muitas vezes é o que irá acontecer,
é que ele acontecerá junto com outras fases. É nesta fase que você irá criar
as telas para do seu projeto.
Utilizando os tipos de protótipos que irei apresentar no capítulo 3, você irá
desenhar as telas com base nas informações levantadas durante a
elicitação.
Elas são 5 etapas, mas não quer dizer que uma só irá começar depois da
anterior. Pode ser que a prototipação ocorra junto com a etapa da
elicitação. Ou que a documentação e a prototipação poderão ocorrer em
22
conjunto com a prototipação e assim por diante. Não existe uma regra que
limite quando a ordem de desenvolvimento.
Documentação
23
Friso bastante que é a forma também de alinhar as expectativas com o seu
cliente e equipe.
Algo importante para ter em mente que os documentos que você escrever,
será utilizado, como uma espécie de contrato entre as partes interessadas.
Pois caso algo que você detalhou no projeto, for desenvolvido diferente o
seu cliente irá alegar que foi desenvolvido errado e você terá prejuízo.
Melhor do que não ter documentação é ter uma documentação ruim. Desta
maneira os documentos que você irá escrever poderá ser utilizado como
documentação da evolução de um produto e também para documentação
para novos membros da equipe e futuras consultas de comportamentos do
software. Por isso, tenha em mente que seus documentos precisam estar
muito bem organizados e atualizado, para que eles não fiquem obsoleto em
relação ao software desenvolvido.
Markdown
24
Para criar os requisitos em markdown, você pode utilizar uma IDE como o
http://brackets.io e basta salvar o documento com a extensão “.md”.
Abaixo um exemplo de um arquivo escrito em markdown.
25
A partir desse requisito é possível gerar arquivo html ou pdf para
disponibilizar para os desenvolvedores ou para seu cliente.
Os exemplos que requisitos que irei demonstrar durante o livro irei utilizar
as notações do markdown. Que você pode conhece-las pelo manual do
github, que utiliza muitos lugares em seu site, https://github.com/adam-
p/markdown-here/wiki/Markdown-Cheatsheet.
Requisitos funcionais
26
Emitir Nota Fiscal;
Cadastrar de Clientes;
O que descrever?
Informações que deve conter na interface;
As regras de negócios que impactam o cadastro;
27
Compatibilidade do software;
O que descrever?
Disponibilidade: Quantidade de dias e horas que o software
deve estar disponível para os usuários;
Compatibilidade: O software deverá ser ser compatível com os
sistemas operacionais Android e IOS;
Histórias de usuários
28
Figura 12 Estrutura da história de usuários
Critérios de aceitação
29
Cada história de usuário deve conter alguns critérios de aceitação, que é
uma forma de apresentar como as funcionalidades serão utilizadas e como
valida-las. Representam a confirmação da implementação dos requisitos
Elas devem ter o cenário que em a história será utilizada, o evento ou ação
que deverá ocorrer e como a funcionalidade deverá se comportar.
30
Figura 17 Critério de aceitação no preview
31
para os requisitos. Abaixo eu deixe para você um template baseado nas
melhores práticas da engenharia de requisitos e como preenche-lo. Ele
também está formatado em markdown. O arquivo deste template está
disponível no meu repositório do github que eu citei no início do livro. Você
pode baixar e utiliza-lo. ;)
#Análise de Processos
##Qual a Necessidade (Propósito)?
Nesta seção, deverá ser descrito qual é a necessidade do cliente
baseado na regra de negócio citada na introdução.
Exemplo: Visto o processo de importação, faz-se necessário ter
no sistema financeiro ter um cadastro de moeda e cotação,
para que o cliente possa cadastrar as moedas e cotação e que
32
o sistema realize as conversões na tela de pedido de venda e
nota fiscal.
##Requisitos Funcionais
Esta seção deve descrever em detalhe os requisitos funcionais do
sistema. Não existe uma regra específica para a sua organização,
pode ser feito de acordo com os casos de uso, as ações do sistema, ou
combinações desses usuários. É essencial que esta descrição seja
minuciosa, clara e completa, lógica e facilmente modificado.
Poderá ser incluído:
• Protótipos (obrigatório).
• Elementos gráficos
• Ações exigidas pelo sistema (inserir, remover, apagar,
salvar, anexar, etc.)
• Descrições dos Estados
• Regra de validações do sistema
• Relatórios requeridos
• Etc...
34
Contexto da Rotina: Conforme descrito no Modelo de Limite das
Funcionalidades esta funcionalidade contempla os itens abaixo:
1. Descrição;
2. Descrição;
a. Descrição;
b. Descrição;
###Sub-Tópico xyz
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
##Padão de descrição de Imagens
|  |
| :--------------------------: |
| *Figura : Legenda da Figura* |
Descreva cada componente dos protótipos.
#Regras de Negócios
###RN1
####Título para Identificação
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec tempor
faucibus suscipit. Integer sit amet consectetur neque. Pellentesque
35
turpis dolor, aliquet eu tortor eget, facilisis faucibus velit. Aenean ac
urna dui. Phasellus suscipit libero est, id volutpat urna mattis vitae. In
hac habitasse platea dictumst. Quisque posuere lectus sit amet
viverra pellentesque. Nunc sit amet molestie lectus. In aliquam luctus
magna, vitae posuere quam ornare a. Vivamus sed eros scelerisque,
aliquam metus id, cursus ipsum.
#Critérios de Aceitação
Nesta seção, descrever os critérios que devem ser atendidos para os
requisitos sejam aceitos.
36
Figura 19 Visualizando a mudança de um arquivo n
Este material faz parte do livro “Engenharia de Requisitos” e está disponível na disciplina
de mesmo nome em nossa Pós-graduação em Engenharia de Software com Ênfase em
Qualidade e Testes de Software. Foi escrito pelo nosso professor Vinicius Carvalho. Você
pode saber mais sobre a pós entrando em contato por e-mail: contato@uniciv.com.br ou
telefone: 0800 006 4224
37