Você está na página 1de 48

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

Você também pode gostar