Engenharia de Requisitos de Software
A Engenharia de Requisitos é a área da Engenharia de Software que
estuda os processos envolvidos no levantamento de Requisitos
necessários ao desenvolvimento de software
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 1
O Problema dos Requisitos
“The hardest single part of building a
software system is deciding precisely what
to build.”
Frederick Brooks, "No Silver Bullet: Essence and
Accidents of Software Engineering"
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 2
O Problema dos Requisitos
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 3
O que é um Requisito?
●Uma característica do sistema necessária
ao utilizador para a resolução de um
problema ou para a concretização de um
Objectivo
●Uma característica que deve ser satisfeita
pelo sistema para satisfazer algum
contrato, norma, especificação, ou outra
restrição formal
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 4
O Problema dos Requisitos
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 5
O Problema dos Requisitos
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 6
O Problema dos Requisitos
● O objectivo é compreender os problemas dos
utilizadores e realizar sistemas que satisfaçam as
suas necessidades
● As necessidades determinam características que
os sistemas devem exibir
➢ Capacidades do sistema para satisfazer uma ou mais
necessidades dos utilizadores
● Os requisitos descrevem e sistematizam as
características que os sistemas devem exibir para
satisfazer as necessidades dos utilizadores
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 7
O Problema dos Requisitos
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 8
O Domínio do Problema
● Os utilizadores têm problemas específicos da sua
actividade que necessitam de resolução
● Necessário compreender esses problemas
➢ Compreender a linguagem dos utilizadores
➢ Compreender a actividade/contexto envolvente
➢ Compreender os factores subjacentes aos problemas
● Para realizar sistemas que permitam resolver
esses problemas
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 9
Engenharia de Requisitos
Definição: A Engenharia de Requisitos é o
processo de descobrir, analisar e documentar
os serviços necessários a um sistema e as
restrições sobre estes impostas
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 10
Níveis de Especificação de Requisitos
O termo “requisito” não é usado de forma consistente pela
indústria de software. Em alguns casos é apenas uma
abstração a alto nível de serviços que o sistema deve
fornecer ou uma restrição sobre o sistema
No outro extremo está uma definição detalhada e formal
destes mesmos serviços que o sistema deve fornecer
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 11
Níveis de Especificação de Requisitos (2)
Davis (Davis, 1993) explica o porquê que estas diferenças existem:
Se uma empresa deseja publicar um concurso para um contrato de
um projecto grande de desenvolvimento de software, esta empresa
deve definir as necessidades de uma forma suficientemente abstracta
de forma a que não seja à priori definida uma solução. Os requisitos
deverão ser escritos de tal forma que várias empresas possam
concorrer ao contrato, oferecendo, talvez, diferentes formas de
satisfazer as necessidades da organização do cliente. Assim que o
contrato é ganho por um implementador, este deverá escrver uma
definição do sistema para o cliente, em maior detalhe, para que este
perceba e possa validar o que o software fará. Ambos os documentos
podem ser chamados de “Documento de Requisitos do Sistema”
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 12
Níveis de Especificação de Requisitos (3)
Alguns dos problemas que se levantam durante o processo de
engenharia de requisitos, são resultado directo de não fazer uma clara
separação entre estes diferentes níveis de descrição.
A comum designação para dos dois níveis de descrição de requisitos,
anteriormente apresentados, são:
● Requisitos de Utilizador
➢ Descreve os requisitos a um alto nível, de forma abstrata.
● Requisitos de Sistema
➢ Descreve os requisitos a um baixo nível, com descrição
detalhada sobre o que o sistema deverá fazer
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 13
Níveis de Especificação de Requisitos (4)
Definição dos 2 níveis de Especificação de Requisitos:
● Requisitos de Utilizador
➢ São declarações (descrições), em linguagem natural
acompanhadas eventualmente de diagramas, que definem o
que se espera que serviços (funcionalidades) do sistema
forneçam e restrições sobre as quais o sistema deverá operar.
● Requisitos de Sistema
➢ Define de forma rigorosa as funções e serviços
(funcionalidades) do sistema e restrições operacionais, em
bastante detalhe. Documento de Requisitos de Sistema (por
vezes chamado de especificação funcional) deverá ser
bastante preciso. Deverá definir exactamente o que será
implementado. Poderá ser parte do contrato entre o comprador
do sistema e o desenvolvedor de software
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 14
Níveis de Especificação de Requisitos (5)
Os diferentes níveis de especificação do sistema são
importantes pois comunicam informação acerca do sistema para
os diferentes tipos de leitores.
No slide seguinte está uma figura que ilustra bem a distinção
entre requisito de utilizador e requisito de sistema.
Este exemplo é de um sistema de uma biblioteca e mostra como
um requisito de utilizador pode ser definido em vários requisitos
de sistema
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 15
Níveis de Especificação de Requisitos (6)
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 16
Tipos de Requisitos
Os requisitos quanto ao “Tipo” podem ser classificados por:
● Requisitos Funcionais
➢ Definem as funcionalidades, serviços e funções que o sistema
deverá providenciar.
➢ Definem como o sistema deverá reagir a estímulos externos
➢ Definem como o sistema se comportará em situações particulares
➢ Em alguns casos, os requisitos funcionais deverão também definir o
que o sistema não deverá fazer
● Requisitos Não Funcionais
➢ Definem restrições sobre as funcionalidades, serviços e funções
que o sistema deverá providenciar
➢ Podem incluir restrições temporais, restrições sobre o processo de
desenvolvimento e standards
➢ Os requisitos Não Funcionais frequentemente aplicam-se ao
sistema como um todo,tipicamente não se aplicam a uma única
funcionalidade específica
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 17
Requisitos Funcionais
● Definem o que o sistema deve fazer
● Devem ser completos e consistentes. Completos na medida em que todos
os requisitos estarão presentes. Consistentes na medida em que um
requisito não poderá contradizer outro
● Quando expressos sob a forma de requisitos de utilizador os mesmos
podem ser descritos de forma abstracta
● Devem ser descritos sob a forma de requisitos de sistema, ou seja, de
forma rígida, bastante detalhada, com as suas entradas (inputs), saídas
(outputs), excepções (exceptions), etc
● Debilidades e/ou falta de precisão na especificação são causas constantes
de problemas em projectos de desenvolvimento de software
● É frequente um programador olhar para um requisito ambíguo e interpreta-
lo da forma que mais lhe seja conveniente codificar. Porém, poderá não ser
exactamente o que o cliente pretende
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 18
Requisitos Não Funcionais
● Não se concentram sobre uma funcionalidade em particular do sistema
mas sim no sistema como um todo
● Referem-se tipicamente a características globais do sistema
● Podem impor restrições sobre requisitos funcionais
● Frequentemente relacionados como características como fiabilidade,
confiabilidade, performance, rapidez, segurança, portabilidade,
interoperabilidade.
● Tipicamente mais críticos que um requisito funcional em particular
● Não cumprir com um requisito não funcional pode fazer com que o sistema
todo se torne não utilizável. Exemplo: se um sistema de aviação não
cumprir com os requisitos de fiabilidade, não será certificado para
operação
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 19
Tipos de Requisitos Não Funcionais
● Requisitos de Produto
➢ Especificam comportamento do sistema. Exemplo, requisito de
performance relativamente a quão rápido o sistema deverá
executar e quanta memória será necessária; taxa admissível de
erros; requisitos de portabilidade e usabilidade,
● Requisitos Organizacionais
➢ Derivados de políticas e procedimentos da empresa cliente.
Como exemplo temos standards que devem ser usados;
linguagem de programação ou métodos de desenho usados;
requisitos de entrega que definem quando o sistema e
respectiva documentação deverão ser entregues.
● Requisitos Externos
➢ Derivado de factores externos ao sistema e processo de
desenvolvimento. Exemplos: requisitos de interoperabilidade
com outros sistemas; requisitos legislativos; requisitos éticos
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 20
Tipos de Requisitos Não Funcionais
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 21
Métricas para a especificação de
Requisitos Não Funcionais
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 22
Análise de Requisitos
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 23
Identificação de requisitos
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 24
Identificação de requisitos
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 25
Especificação de Requisitos
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 26
Especificação de Requisitos
Exemplos
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 27
Especificação de Requisitos
Exemplos
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 28
Especificação de Requisitos
Exemplos
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 29
Especificação de Requisitos
Exemplos
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 30
Análise de Requisitos
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 31
Identificação de Requisitos
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 32
Definição de Objectivos
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 33
Definição de Objectivos
Exemplo
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 34
Identificação de Actores
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 35
Requisitos Funcionais
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 36
Funcionalidades e Atributos
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 37
Categorias de Funcionalidades
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 38
Atributos
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 39
Bibliografia
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 40
Atributos:
Domínios de Variação
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 41
Especificação de Requisitos
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 42
Especificação de Requisitos
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 43
Gestão de Requisitos
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 44
Gestão de Requisitos
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 45
Gestão de Requisitos
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 46
Medidas de
Qualidade de Requisitos
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 47
Bibliografia
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 48