Princípios Fundamentais da Análise de Requisitos

7,200 views
6,957 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
7,200
On SlideShare
0
From Embeds
0
Number of Embeds
51
Actions
Shares
0
Downloads
354
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Princípios Fundamentais da Análise de Requisitos

  1. 1. Princípios Fundamentais da Análise de Requisitos Prof.. Buba Bibliografia: Pressman, Roger S. - Engenharia de Software. APA II
  2. 2. Princípios Fundamentais da Análise de Requisitos Como ser bem sucedido no desenvolvimento de software? Ter uma compreensão completa dos requisitos de software Análise de Requisitos é: <ul><li>Descoberta </li></ul><ul><li>Refinamento </li></ul><ul><li>Modelagem </li></ul><ul><li>Especificação </li></ul>Participantes: <ul><li>Cliente </li></ul><ul><li>Analista de Sistemas </li></ul>Papel dos participantes da análise de requisitos Cliente - tenta formular um conceito de função e desempenho de software em detalhes concretos. Analista - age como indagador, consultor e solucionador de problemas. Cuidados necessários na especificação dos requisitos: <ul><li>Comunicação; </li></ul><ul><li>Interpretação errônea do problema; </li></ul><ul><li>Informações falsas; </li></ul><ul><li>Ambigüidade. </li></ul>
  3. 3. Princípios Fundamentais da Análise de Requisitos Análise de Requisitos A análise de requisitos permite: <ul><li>especificar a função e desempenho do software; </li></ul><ul><li>identificar interface do software com outros elementos do sistema; </li></ul><ul><li>estabelecer as restrições de projeto que o software deve enfrentar; </li></ul><ul><li>desenvolver os modelos comportamentais do software; </li></ul><ul><li>possibilita ao cliente e ao desenvolvedor a identificação dos critérios para avaliar a qualidade logo que o software for construído. </li></ul>Atividades na Análise de Requisitos <ul><li>Reconhecimento do problema - estabelecer os contatos no ambiente do usuário com as áreas envolvidas no problema. </li></ul><ul><li>Análise e síntese do problema - o analista deve: </li></ul><ul><ul><ul><li>Avaliar o fluxo e o conteúdo das informações; </li></ul></ul></ul><ul><ul><ul><li>Definir e elaborar todas as funções do software; </li></ul></ul></ul><ul><ul><ul><li>Entender o funcionamento do software no contexto dos eventos que afetam o sistema; </li></ul></ul></ul><ul><ul><ul><li>Estabelecer as características de interface com o sistema e descobrir restrições de projeto. </li></ul></ul></ul><ul><ul><ul><li>Nesta fase o foco recai sobre “o que” , não sobre “como” fazer </li></ul></ul></ul>Modelagem do problema Especificação da solução a ser proposta Revisão
  4. 4. Princípios Fundamentais da Análise de Requisitos O Analista de Sistemas O Analista de Sistemas deve ter: <ul><li>A capacidade de compreender conceitos abstratos, reorganiza-los em divisões lógicas e sintetizar “soluções” baseadas em cada divisão; </li></ul><ul><li>A capacidade de absorver fatos pertinentes de fontes conflitantes ou confusas; </li></ul><ul><li>A capacidade de entender os ambientes do usuário/cliente; </li></ul><ul><li>A capacidade de aplicar elementos do sistema de hardware e/ou software aos elementos do usuário/cliente; </li></ul><ul><li>A capacidade de se comunicar bem nas formas escrita e verbal; </li></ul><ul><li>A capacidade de “ ver a floresta por entre as árvores ” </li></ul>Cliente Desenvol- vedor Consultor Especificador Projetista Analista de Sistemas
  5. 5. Princípios Fundamentais da Análise de Requisitos Áreas problemáticas Problemas encontrados: <ul><li>Dificuldades para obter informações; </li></ul><ul><li>Cuidar da complexidade dos problemas; </li></ul><ul><li>Acomodar mudanças que ocorrem durante e após a análise. </li></ul>Obtenção de informações: <ul><li>Conflito entre áreas do cliente; </li></ul><ul><li>Funções e desempenho do software entram em conflito </li></ul><ul><li>com a restrição imposta por outros elementos do sistema; </li></ul><ul><li>Percepção das metas do sistema modifica-se com o </li></ul><ul><li>tempo; </li></ul><ul><li>Questões do tipo: </li></ul><ul><ul><li>A) Quais informações devem ser compiladas e como representa-las?; </li></ul></ul><ul><ul><li>B) Quem fornece as várias peças de informação?; </li></ul></ul><ul><ul><li>C) Quais ferramentas e técnicas estão a disposição para facilitar a coleta de informação? </li></ul></ul>Complexidade dos problemas Problemas Complexidade da tarefa de análise
  6. 6. Princípios Fundamentais da Análise de Requisitos Áreas problemáticas Mudanças durante a análise: <ul><li>Como o mercado não para assim como as organizações, logo é preciso estar atento e identificar: </li></ul><ul><li>Como as mudanças afetarão o sistema e as exigências </li></ul><ul><li>de software?; </li></ul><ul><li>Como avaliar o impacto das mudanças sobre outra </li></ul><ul><li>partes do software aparentemente não relacionadas?; </li></ul><ul><li>Como corrigir erros de especificação de forma que </li></ul><ul><li>efeitos colaterais não sejam gerados? </li></ul>Técnicas de comunicação Tenho um problema e quero uma solução baseada em computador. Posso ajudar-lhe! Inicio da comunicação
  7. 7. Princípios Fundamentais da Análise de Requisitos Técnicas de comunicação Inicio do processo de comunicação O que perguntar no primeiro encontro? <ul><li>Quem esta por traz do pedido deste trabalho? </li></ul><ul><li>Quem usará a solução? </li></ul><ul><li>Qual beneficio econômico de uma solução bem-sucedida? </li></ul><ul><li>Há outra fonte para a solução exigida? </li></ul>O que fazer para melhorar a compreensão do problema e o cliente verbalizar suas percepções sobre uma solução? <ul><li>Como você caracterizaria um “bom” resultado (saída) </li></ul><ul><li>que seria gerado por uma solução bem-sucedida? </li></ul><ul><li>Qual(is) problema(s) essa solução resolverá? </li></ul><ul><li>Você poderia mostrar-me (ou descrever-me) o ambiente em que a solução será usada? </li></ul><ul><li>Existem questões de desempenho ou restrições especiais que afetarão a maneira pela qual a solução é abordada? </li></ul><ul><li>Você é a pessoa certa para responder a essas perguntas? </li></ul><ul><li>Suas respostas são oficiais? </li></ul><ul><li>Minhas perguntas são pertinentes ao problema que você tem? </li></ul><ul><li>Estou fazendo perguntas de demais? </li></ul><ul><li>Há mais alguém que possa fornecer informações adicionais? </li></ul><ul><li>Existe algo mais que eu deva perguntar-lhe? </li></ul>Como buscar a efetividade do encontro? Esta é uma forma de quebrar o gelo do primeiro encontro, depois as perguntas e respostas podem ser substituídas por uma forma que combine elementos de solução de problemas, negociações e especificações.
  8. 8. Princípios Fundamentais da Análise de Requisitos Técnicas de comunicação O primeiro encontro dará ao analista e ao cliente o escopo do problema e a percepção global de uma solução e será possível uma requisição de produto de uma ou mais páginas. Especificando a aplicação Os participantes A requisição de produto gerada nos primeiros encontros com o cliente deve ser distribuída entre os responsáveis das áreas envolvidas no problema. 1° Tarefa dos participantes <ul><li>Fazer uma lista dos objetos que fazem parte do ambiente que circunda o sistema (funcionário, entregador, despachante, etc........); </li></ul><ul><li>Outros objetos que são usados para que o sistema execute suas funções (catálogo de endereço, cadastro de devedores, etc...........); </li></ul><ul><li>Objetos que são usados para que o sistema execute suas funções (cliente, produto, fornecedores, etc.......); </li></ul><ul><li>Fazer uma lista das operações (processos ou funções) que manipulam ou interagem com os objetos. </li></ul><ul><li>Fazer uma lista de restrições (custo, tamanho, etc.......) </li></ul><ul><li>fazer uma lista dos critérios de desempenho (velocidade, precisão, etc.......). </li></ul>As listas não devem ser exaustivas, mas espera-se que elas reflitam as perspectivas de cada pessoa sobre o sistema.
  9. 9. Princípios Fundamentais da Análise de Requisitos Especificando a aplicação 2° Tarefa dos participantes <ul><li>Apresentar suas listas; </li></ul><ul><li>Analisar as listas e buscar consenso; </li></ul><ul><li>O grupo busca desenvolver uma única lista contendo todos os: </li></ul><ul><li>Objetos; </li></ul><ul><li>Operações; </li></ul><ul><li>Restrições; </li></ul><ul><li>Desempenho; </li></ul><ul><li>Critérios de validação. </li></ul>3° Tarefa dos participantes Dividir o grupo em subgrupos para definir mini-especificação dos objetos ( Ex: cliente, fornecedores, dependentes, catálogos, etc.......) 4° Tarefa dos participantes Desenvolvidas as especificações elas são apresentadas e discutidas pelo grupo podendo ter adições, supressões e alguma elaboração adicional. Questões levantadas e não resolvidas pelo grupo devem ser guardadas para posterior discussão. 5° Tarefa dos participantes Reunir novamente os subgrupos para definirem os critérios de validação para o produto/sistema a ser discutido pelo grupo em mais uma tarefa. Esta técnica tem uma vantagem que é o comprometimento do cliente com a especificação do sistema por ser ele quem a faz com acessoramento do Analista de Sistemas.
  10. 10. Princípios Fundamentais da Análise de Requisitos Princípios de especificação 1. Separe funcionalidade de implementação: Especificação é uma descrição daquilo que é desejado, e não de como tem de ser realizado (implementação). Ex.: funções matemáticas. 2. Uma linguagem de especificação de sistemas orientada ao processo é exigida: Especificação de um modelo de comportamento desejado em termos das respostas funcionais a vários estímulos do ambiente. 3. A especificação deve abranger o sistema do qual o software é um componente: Especificação dos componentes que comporão o sistema e interagirão entre si. 4. Uma especificação deve abranger o ambiente no qual o sistema opera: Especificação dos agentes externos os quais o sistema irá interagir e delimita o seu escopo. 5. Uma especificação de sistema deve ser um modelo cognitivo: Especificação de como o sistema é percebido pela comunidade dos usuários. 6. Uma especificação deve ser operacional: Especificação deve ser completa formal o bastante para que possa ser usada para determinar se a implementação proposta a satisfaz em situação de teste arbitrariamente escolhidas. 7. A especificação do sistema deve ser tolerante com a não-inteireza e ser expansível: A especificação jamais será completa pois o ambiente em que o sistema atuará é demasiadamente complexo, portanto é impossível atingir-se a completes das especificações. 8. Uma especificação deve ser localizada e fracamente acoplada: Especificação deve suportar as mudanças que o tempo exige sem comprometer aquilo que não será mudado. Busque a maior independência possível entre as especificações. Fim

×