Engenharia de Requisitos
Engenharia de Requisitos
(ER)
(ER)
Profª. Larissa Natália V. Caneiro
https://sites.google.com/site/proflarissa
carneiro
Definição
Definição
Também conhecida como:
•
Análise de requisitos;
•
Análise de sistemas.
É a área responsável pela
descoberta:
•
Das reais necessidades dos clientes.
•
Do comportamento externo de uma
solução que atenda a estas
necessidades.
Domínio do Problema Domínio da Solução 2Muitos erros nos requisitos podem ser
detectados cedo no ciclo de desenvolvimento;
Erros típicos incluem fatos incorretos,
omissões, inconsistências e ambiguidade;
Erros nos requisitos constituem uma das
maiores preocupações da industria de software. Por que?
Quanto mais tarde um erro é
detectado, maior o custo de
corrigi-lo;
Muitos erros são realizados durante
5
Motivação
Motivação
A ER é a
parte mais difícil
da
construção de um software.
Nenhuma outra parte do
desenvolvimento causa tantos
danos
se feita de forma errada.
Nenhuma outra parte é tão
difícil de ser corrigida
.
*F. Brooks, No Silver Bullet: Essence and Accidents of Software Engineering, IEEE Computer, vol 20(4):10-19, april,1987.
Determina o sucesso…
Determina o sucesso…
Ou o fracasso…
Ou o fracasso…
Na Engenharia de
Na Engenharia de
Software...
Software...
Entender requisitos nem sempre
é uma tarefa fácil.
•
Ex:
“ O valor total deverá ser
retirado do último lançamento”
•
Pergunta
– último lançamento no
arquivo do banco de dados, ou
último lançamento em um arquivo
temporário?
Copyright 2006-2007 Prof. Edison
A. M. Morais 10
Dificuldades do Processo
Dificuldades do Processo
Volatilidade
dos requisitos;
Clientes
dispersos,
numerosos
;
Clientes com
objetivos
conflitantes
,
perspectivas
e
formações distintas
;
Clientes com
dificuldades
Entender e atender as necessidades e os
desejos dos clientes;
Prover ao engenheiro de software,
métodos, técnicas e ferramentas que auxiliem o processo de compreensão e registro dos requisitos que o software deve atender;
Buscar as primeiras informações sobre o
sistema;
Melhor entendimento dos
Natureza
•
A Especificação dos Requisitos do
Software (ERS) é o
documento oficial
de descrição dos requisitos de um
projeto de software.
Características contidas na E.R.S.
• Funcionalidade: O que o software deverá fazer?
• Interfaces Externas: Como o software interage com as pessoas, com o hardware do sistema, com outros sistemas e outros produtos?
• Desempenho: Qual a velocidade de
processamento, o tempo de resposta e outros parâmetros de desempenho requeridos pela natureza da aplicação?
• Outros atributos: Quais as considerações sobre
confiabilidade que devem ser observadas?
• Restrições impostas pela aplicação: Existem limites a serem obedecidos como linguagem de implementação, limites de recursos?
É trabalho do analista entender
os requisitos e fornecer uma
solução adequada.
Para isso, ele precisa entender o
negócio do cliente:
•
Quem serão os usuários?
•
Qual a influência dos usuários?
•
Quais serão as restrições?
Descobrir/Modelar a visão da
empresa para o sistema
Levantar requisitos
Organizar requisitos
Planejar o desenvolvimento
•
Métricas
•
Cronograma
•
Recursos
O que a empresa quer com o projeto? Porque ele está sendo proposto?
Porque a empresa vai gastar dinheiro com o projeto?
O projeto é realizável?
A equipe de desenvolvimento tem condições de realizar este projeto?
O cliente tem dinheiro para pagar o desenvolvimento?
Há tempo disponível? Comprar ou construir?
Entender o problema
Utilizar técnicas para elicitar os requisitos: questionários, entrevistas, documentos...
Modelar o problema
Representar o nosso entendimento do problema utilizando técnicas para
modelagem: MER, casos de uso...
Analisar o problema
O objetivo do processo de engenharia de requisitos é criar e manter um documento de requisitos de sistema.
Estudo de viabilidade; Elicitação e Analise; Especificação;
Analisar se o projeto é viável, de um ponto
de vista tecnológico e organizacional.
Será que o sistema contribui para os objetivos
da organização?
Dadas as restrições tecnológicas,
organizacionais (econômicas, políticas, ambientais, recursos disponíveis) e temporais associados ao projeto, será que o sistema pode ser implementado?
Caso haja necessidade de integração entre
Compreensão do domínio
É muito importante para o analista
compreender o domínio no qual a organização e o projeto se inserem, quanto maior for o
conhecimento acerca do domínio, mais eficaz será a comunicação entre o analista e os
stakeholders (partes interessadas).
Identificação e análise de problemas
Identificação de stakeholders e outras
fontes de informação
Captura (coleta de dados)
Dificuldades associadas:
• Não há muito tempo para realizar a elicitação; • Inadequada preparação dos engenheiros;
• Os stakeholders não estão convencidos da necessidade do sistema;
• Os requisitos identificados podem não ser viáveis (do ponto de vista econômico ou tecnológico);
• Diferentes stakeholders podem expressar os mesmos requisitos de formas diferentes sendo necessário, através de um bom conhecimento de domínio, identificar essas situações.
A validação de requisitos dedica-se a mostrar que os requisitos realmente definem o sistema que o usuário deseja.
Processo de verificação no documento de requisitos: • Verificação de validade; • Verificações de consistência; • Verificações de completeza; • Verificações de realismo; • Facilidade de Verificação.
Copyright 2006-2007 Prof. Edison A. M. Morais 23
Perspectivas
Perspectivas
•
Perspectiva
de domínio
•
Perspectiva
tecnológica
•
Perspectiva
temporal
Copyright 2006-2007 Prof. Edison A. M. Morais 24
Perspectiva de Domínio
Perspectiva de Domínio
Domínio do
problema
•
Exploração detalhada do
problema para determinar as
necessidades do usuário.
Domínio da
solução
•
Especificação do
comportamento externo de um
sistema.
Copyright 2006-2007 Prof. Edison
A. M. Morais 25
Perspectiva Tecnológica
Perspectiva Tecnológica
Existem vários mecanismos
de especificação:
•
Linguagem natural;
•
UML;
•
Prototipação;
Copyright 2006-2007 Prof. Edison
A. M. Morais 26
Perspectiva Temporal
Perspectiva Temporal
É uma das
atividades iniciais
da engenharia de software
.
Resulta na criação de um
documento de
E
specificação de
R
equisitos de
S
oftware (
ERS
).
•
Deve ser
atualizado
constantemente
para obtenção de
mais conhecimento sobre o
Copyright 2006-2007 Prof. Edison A. M. Morais 27
Perspectiva Temporal
Perspectiva Temporal
27 Engenharia de SoftwareProcesso de Desenvolvimento de Software
Impleme n-tação Teste Implan-tação Atividades- Gerência de Configuração; - Gerência de Riscos; - Métricas; - Estimativas; - Revisões Técnicas Formais. Outros Processos Contidos no Processo Principal Análise de Requisito s Projeto
Requisito
Requisito
O que é um REQUISITO?
•
Em software: “É a
CARACTERIZAÇÃO
do que o
sistema deverá fazer.”
Existem vários
tipos de
requisitos
que devem ser
analisados…
Tipos de Requisitos
Tipos de Requisitos
Copyright 2006-2007 Prof. Edison
A. M. Morais 30
Processo de ER
Processo de ER
Como deve ser este documento?
Copyright 2006-2007 Prof. Edison
A. M. Morais 31
Características desejáveis para o ERS
Características desejáveis para o ERS
Documento ERS
completo
;
Documento ERS
não ambíguo
;
Documento ERS
passível de ser
Modelagem de Requisitos
Modelagem de Requisitos
Modelagem de Requisitos
Modelagem de Requisitos
Boas Práticas
Boas Práticas
Análise Orientada a Objetos;
ER executada em várias
rodadas;
Revisões constantes com os
usuários;
Protótipos;
Alocação de 15% a 30% do
esforço total do processo.
Específicação de
Específicação de
Requisitos
Requisitos
Modelagem
GERA
especificação.
Especificação: Documento ERS.
É um conjunto de documentos.
Ex.:
34Documen
to Visão
Especifica
ção
Suplement
ar
Modelo
de
Domínio
Casos de
Uso
+ + +Documento Visão
Documento Visão
Objetivo
•
Descrever as necessidades
e características de
alto
nível
do sistema.
•
Exs.:
Visão geral do sistema.
Descrição dos usuários.
Requisito funcionais.
Especificação
Especificação
Suplementar
Suplementar
Objetivo
•
Descrever os requisitos não
funcionais do sistema
•
Exs.:
Usabilidade
Confiabilidade
Performance
36Modelo de Domínio
Modelo de Domínio
É o resultado da Análise
Orientada a Objetos
(
AOO
);
Objetivo:
•
Auxiliar na
compreensão
e
análise
do
problema.
Artefato
•
Diagrama de Classe de Domínio (UML)
Requisitos funcionais:
• correspondem à listagem de todas as coisas que o sistema deve fazer;
• representa o comportamento que um
sistema deve apresentar diante de certas ações de seus usuários.
Requisitos não funcionais:
• são restrições que se coloca sobre como o sistema deve realizar seus requisitos
funcionais;
• determinados aspectos de comportamento (tempo de respostas, tempo médio entre falhas).
Explícitos
• São descritos em um documento que lista os
requisitos de um produto (especificação de requisitos);
• Possuem conhecimento do usuário.
Normativos
• São aqueles que decorrem de leis, regulamentos,
padrões e outros tipos de normas a que o tipo de produto deve obedecer.
Implícitos
• São expectativas dos clientes e usuários, que são
cobradas por esses, embora não-documentadas;
• são efetuados pelo sistema sem o conhecimento
Missão
• O ponto focal do escopo de um
produto é a missão dele.
• A declaração da missão delimita as
responsabilidades do produto e
sintetiza o comprometimento entre cliente e fornecedor.
08/02/21 Engenharia de Software 40
Apoio informatizado ao controle de vendas, de compras, de fornecedores e de estoque da Mercearia Pereira & Pereira Comercial LTDA, denominada Merci.
Limites
•
Deve-se determinar os limites
do produto, ou seja, o que o
produto não fará.
Limites
• O Merci não fará vendas parceladas e só receberá dinheiro ou cheque.
• O Merci só fará a Emissão de Nota fiscal durante a Operação de Venda.
• O Merci não fará um cadastro de
clientes.
• O preço de venda deverá ser calculado
pela mercearia Pereira & Pereira Comercial LTDA, e informado ao Merci. • O Merci não terá ajuda on-line.
• Não haverá tolerância a falhas no Merci.