Adélia Barros (adelia_nassau@yahoo.com.br) Requisitos Adélia Barros (adelia_nassau@yahoo.com.br)
Requisitos Objetivos ou restrições estabelecidas por clientes e usuários do sistema que definem as diversas propriedades do sistema Condição ou capacidade necessária que o software deve possuir para que o usuário possa resolver um problema ou atingir um objetivo para atender as necessidades ou restrições da organização ou de outros componentes do sistema.
ANÁLISE DE REQUISITOS INICIA QUANDO Se reconhece que existe um problema que necessita de uma solução Surge uma idéia nova
ANÁLISE DE REQUISITOS TERMINA QUANDO Se tem uma descrição completa do comportamento do software a ser construído
O QUE SÃO ESPECIFICAÇÕES representações que descrevem o software desde uma visão macroscópica (Especificação de Requisitos) até uma visão detalhada (Programas) passando por representações intermediárias (Especificações de Projeto)
O QUE SÃO REQUISITOS Alguma coisa necessária, desejada Webster’s Ninth New Collegiate Dictionary condição ou capacidade necessária por um usuário para resolver um problema ou atingir um objetivo Condição ou capacidade que precisa ser atingida por um sistema para satisfazer um contrato, norma, especificação ou algum outro documento IEEE Standard
FUNÇÕES DA ESPECIFICAÇÃO DE REQUISITOS Ser a base para o desenvolvimento Permitir o controle da qualidade do produto Estabelecer a comunicação entre o pessoal envolvido no projeto Auxiliar no entendimento do problema
ETAPAS Diagnóstico da Situação Atual Especificação dos Requisitos Solicitação do Cliente Diagnóstico da Situação Atual Especificação dos Requisitos Aprovação dos Requisitos Orçamento Aprovação do Orçamento
SOLICITAÇÃO DO CLIENTE É a etapa na qual o cliente faz a solicitação, definindo, na sua linguagem, os requisitos do sistema.
DIAGNÓSTICO DA SITUAÇÃO ATUAL É a etapa na qual o cliente e o analista responsável pelo desenvolvimento do sistema, interagem buscando detalhar ao máximo a situação atual, os problemas existentes e novas necessidades.
ESPECIFICAÇÃO DOS REQUISITOS É a etapa na qual o cliente e o analista responsável pelo desenvolvimento do sistema, especificam, a partir das informações levantadas, os requisitos do sistema.
APROVAÇÃO DOS REQUISITOS É a etapa na qual o cliente e o analista responsável pelo desenvolvimento do sistema, aprovam a solução especificada.
ORÇAMENTO É a etapa na qual o o analista responsável pelo desenvolvimento do sistema, elabora o orçamento do sistema e dimensiona prazo e recursos.
APROVAÇÃO DO ORÇAMENTO É a etapa na qual o cliente, aprova o orçamento do sistema
PRINCÍPIOS FUNDAMENTAIS O entendimento completo dos requisitos de software é fundamental para o sucesso do sistema. Não importa quão bem seja projetado e codificado, se os requisitos não forem atendidos, o cliente estará desapontado e o desenvolvedor aborrecido
PRINCÍPIOS FUNDAMENTAIS De acordo com o perfil do cliente, utilize-se das técnicas para levantamento das informações e dos instrumentos que achar necessários para compreender os requisitos do sistema.
PRINCÍPIOS FUNDAMENTAIS Procure, antes de fazer a visita ao cliente, levantar informações e entender do negócio do cliente.
PRINCÍPIOS FUNDAMENTAIS Se durante o levantamentos das informações, surgirem palavras ou assuntos dos quais você não tem a compreensão adequada, procure se informar, inclusive com o próprio cliente.
PRINCÍPIOS FUNDAMENTAIS Tanto o desenvolvedor quanto cliente desempenham papel ativo na na análise de requisitos O cliente tenta passar para o desenvolvedor o funcionamento do seu negócio. O desenvolvedor procura compreender o negócio sem pensar na solução de software, naquele momento
PRINCÍPIOS FUNDAMENTAIS A Análise de Requisitos pode parecer uma tarefa aparentemente simples, mas as aparências enganam. O conteúdo de comunicação é intenso São muitas as chances de interpretações errôneas e informações falsas. A ambigüidade é provável.
PRINCÍPIOS FUNDAMENTAIS Frase de um cliente anônimo “Sei que você acredita que entendeu o que eu disse, mas não estou certo de que percebe que aquilo que ouviu não é o que eu pretendia dizer”
CARACTERÍSTICAS DO ANALISTA Capacidade de compreender conceitos abstratos, reorganizá-los em divisões lógicas e sintetizar soluções a partir de cada divisão Capacidade de absorver fatos pertinentes de fontes conflitantes e/ou confusas Capacidade de entender o ambiente do usuário/cliente Capacidade de se comunicar bem nas formas escrita e verbal. Capacidade de ver a floresta por entre as árvores
DIFICULDADES EM OBTER INFORMAÇÕES PERTINENTES PRINCIPAIS PROBLEMAS DIFICULDADES EM OBTER INFORMAÇÕES PERTINENTES A escolha das técnicas adequadas e das pessoas adequadas a darem as informações diminuirão os problemas decorrentes desta situação
COMPLEXIDADE DO PROBLEMA PRINCIPAIS PROBLEMAS COMPLEXIDADE DO PROBLEMA O esforço de análise cresce à medida que o problema se torna maior e portanto mais complexo, gerando inconsistências durante o processo. O particionamento do problema diminui estas inconsistências
OCORRÊNCIAS DE MUDANÇAS DURANTE O PROCESSO PRINCIPAIS PROBLEMAS OCORRÊNCIAS DE MUDANÇAS DURANTE O PROCESSO As mudanças sempre ocorrerão em todo o Ciclo de Desenvolvimento. O menor impacto é causado quando a mesma ocorre nesta fase do Ciclo. É importante estabelecer mecanismos de controle, para registrá-las e analisá-las adequadamente
REGRAS PARA ESPECIFICAÇÃO Separar a Funcionalidade da Implementação, procurando dizer o que o sistema vai fazer e não como será projetado e implementado
REGRAS PARA ESPECIFICAÇÃO As especificações devem ser fracamente acopladas. Isto facilitará a compreensão e as mudanças.
IMPORTÂNCIA DA ESPECIFICAÇÃO DE REQUISITOS São cometidos muitos erros na fase de Análise de Requisitos Erros permanecem latentes e tardam a ser detectados Quanto mais tarde um erro é detectado maior é o custo de sua correção
IMPORTÂNCIA DA ESPECIFICAÇÃO DE REQUISITOS 75% dos erros detectados, o são depois das fases de codificação e teste de unidades 56% de todos os erros detectados são devido a erros na fase de Análise de Requisitos
O SOFTWARE NÃO SATISFAZ AS NECESSIDADES DOS USUÁRIOS IMPACTO DOS ERROS O SOFTWARE NÃO SATISFAZ AS NECESSIDADES DOS USUÁRIOS Desentendimento entre os Clientes e os Desenvolvedores Perda de Tempo e Dinheiro Problemas Judiciais
ESTUDO DE CASO Próxima aula!
Requisitos DÚVIDAS ?