Baixe o app para aproveitar ainda mais
Prévia do material em texto
Engenharia de Software © Pablo Dall'Oglio Engenharia de Requisitos Pablo Dall'Oglio Engenharia de Software © Pablo Dall'Oglio Definição A Engenharia de Requisitos é um processo que envolve todas as atividades exigidas para criar e manter o documento de requisitos de um sistema. Engenharia de Software © Pablo Dall'Oglio Introdução � A Engenharia de Requisitos é uma área da Engenharia de Software; � O papel da Engenharia de Requisitos é o de descobrir o propósito de um sistema; � Visa a identificação e documentação das necessidades dos clientes; � Vai desde o reconhecimento de um problema a ser resolvido até sua especificação detalhada; � Visa assegurar um conjunto consistente de requisitos antes da construção do sistema, para minimizar mudanças posteriores; � Se mal realizada, pode comprometer todo o projeto. Engenharia de Software © Pablo Dall'Oglio Atividades do processo As cinco atividades do processo de Engenharia de Requisitos são: 1) Elicitação (descoberta); 2) Análise e negociação; 3) Documentação (especificação); 4) Validação; 5) Gerenciamento. Engenharia de Software © Pablo Dall'Oglio Entradas e saídas do processo � A seguir, as entradas e saídas do processo: Engenharia de Software © Pablo Dall'Oglio Processo de Engenharia de Requisitos � A seguir, o fluxo de atividades de um processo de Engenharia de Requisitos; Engenharia de Software © Pablo Dall'Oglio Descrição das atividades � Elicitação: Descoberta dos requisitos através de consultas aos usuários, e outras técnicas; � Análise e negociação: Quais serão feitos, priorização, divergências são negociadas com os usuários; � Documentação: Os requisitos são documentados de forma que todos os envolvidos os compreendam; � Validação: Os requisitos são validados. Verifica-se nesta etapa se os requisitos estão completos e consistentes; � Gerenciamento: Tem como objetivo gerenciar as mudanças que acontecem nos requisitos ao longo do tempo. Engenharia de Software © Pablo Dall'Oglio Elicitação de Requisitos Engenharia de Software © Pablo Dall'Oglio Elicitação de Requisitos � Envolve a descoberta dos requisitos de um sistema; � Consiste em identificar os usuários, as tarefas que realizam e como gostariam de desempenhar estas mesmas tarefas; � Envolve a descoberta de requisitos que o software deve possuir para satisfazer as diversas necessidades do cliente; � Analistas trabalham junto com clientes e usuários finais; � Visa entender o problema a ser resolvido através do detalhamento das funcionalidades futuro sistema; � Não se trata apenas de questionar os clientes e usuários sobre o que eles precisam, mas sim de uma análise da empresa. Engenharia de Software © Pablo Dall'Oglio Elicitação de Requisitos Engenharia de Software © Pablo Dall'Oglio Tipos de Requisitos � Funcionais (funcionalidade): � Enviar às gerências alerta de novo mandado cadastrado; � Possibilitar anexar ao processo as partes faltantes; � Consulta prazos já cumpridos por procurador; � Não-funcionais (tecnologia, usabilidade, desempenho); � Cadastro de Permissões de Acesso; � Rotina para Certificação Digital e Criptografia; � Possibilitar exportar as consultas de telas em Excel; � Deve possuir sistema de ajuda on-line; � O relatório X não deve demorar mais que 20 segundos. Engenharia de Software © Pablo Dall'Oglio Dificuldades na Elicitação de Requisitos � São dificuldades na Elicitação de Requisitos: � As informações sobre o domínio do problema estão espalhadas em textos, manuais, na cabeça das pessoas; � As pessoas que entendem do problema a ser resolvido estão muito ocupadas tentando resolvê-los e não tem tempo ou não desejam ajudar o analista; � Diferentes interesses e políticas internas; � Os clientes geralmente não sabem o que precisam ou sabem mas não conseguem explicar; � Mudanças no negócio durante ou após a elicitação; � Mudanças no pessoal envolvido durante o processo. Engenharia de Software © Pablo Dall'Oglio Técnicas de Elicitação de Requisitos � Várias técnicas podem ser utilizadas na Elicitação de Requisitos: � Entrevistas; � Leitura de documentos; � Questionários; � Observação; � Reutilização de requisitos; � Cenários; � Casos de uso. Engenharia de Software © Pablo Dall'Oglio Entrevistas � São utilizadas para obter o conhecimento; � Utiliza perguntas realizadas aos usuários-chave; � Permite entender os processos da organização; � Permite perceber as expectativas dos usuários; � Pode ser aplicado informalmente ou por meio de questionários com perguntas pré-definidas; � Trazem um conjunto rico em informações; � Demandam grandes esforços de análise (visões conflitantes); � Não podem ser utilizadas como único meio de elicitação: � Os usuários utilizam termos muito específicos; � Acham desnecessário explicar o que é óbvio para o trabalho. Engenharia de Software © Pablo Dall'Oglio Leitura de documentos � Vantagem: fácil acesso e o volume de informações; � Desvantagem: tem-se a dispersão das informações. Questionários � Podem ser utilizados quando existe o conhecimento sobre um problema e vários usuários envolvidos; � Permitem ter uma visão estatística de como alguns problemas são percebidos pelos usuários; � Vantagem: permite padronização das perguntas e estatísticas com as respostas; � Desvantagem: limita o conjunto de respostas e tem pouca interação. Engenharia de Software © Pablo Dall'Oglio Observação (Etnografia) � As pessoas geralmente acham difícil descrever o que elas fazem pois isto é muito natural para elas; � As vezes, a melhor forma é observá-las no trabalho; � A etnografia consiste em observar as pessoas em seu trabalho e construir uma imagem de como o trabalho é realizado; � Os processo reais de trabalho geralmente diferem daqueles processos formais descritos; � Vantagem: permite uma visão mais completa do processo. Algumas pessoas preferem mostrar do que explicar as tarefas; � Desvantagem: O elevado tempo gasto, baixa sistematização do processo e constrangimento na observação; � É uma técnica complementar e não deve ser utilizada sozinha. Engenharia de Software © Pablo Dall'Oglio Reuso de requisitos � Considera requisitos que foram desenvolvidos para um sistema e usá-los em sistemas diferentes; � Economiza tempo e esforço, pois requisitos reutilizados já foram analisados e validados em outros sistemas; � O reuso leva à uma maior consistência entre aplicações; � É um processo informal. A capacidade de se aproveitar diferencia um analista experiente de um inexperiente; � Como vantagem, tem-se maior produtividade e qualidade, uma vez que os requisitos já foram validados; � A desvantagem é que geralmente precisa de adaptação; � Ex: financeiro (orçamento, fluxo), workflow (protocolos). Engenharia de Software © Pablo Dall'Oglio Brainstorming � É uma técnica que envolve reunião em grupo, e é baseada na geração de ideias; � Envolve a reunião de especialistas de negócio e de sistema tendo em vista a criação de ideias para resolução de problemas; � Envolve alguns princípios como a não-crítica e o não- julgamento das ideias geradas; � A técnica de Brainstorming pode ser aplicada no início da etapa de elicitação, quando o universo de requisitos conhecidos é pequeno, sendo necessário gerar novas ideias; � As ideias são geradas de forma rápida, coletadas e então discutidas e avaliadas pelo grande grupo. Engenharia de Software © Pablo Dall'Oglio Prototipação de interface � Um protótipo é uma versão inicial de um sistema; � Seu objetivo é a validação de requisitos ainda em estágios iniciais de desenvolvimento; � O protótipo de um sistema pode ser descartado ou evoluir para uma versão final do sistema; � Os protótipos minimizam a distância na comunicação entre cliente e analista e constituem uma forma concreta de mostrar para o cliente os conceitos absorvidos; � www.jotform.com; � gomockingbird.com; � Pencil. Engenharia de Software © Pablo Dall'Oglio Análise e Negociação � Descobrir problemas nos requisitose obter um consenso junto ao cliente; � Ex: Limita a turma, ou faz split depois. � Na análise, procura-se detectar inconsistências e identificar requisitos faltantes; � Na negociação ocorre a resolução de conflitos e priorização; � Ocorrem em forma de espiral junto com a elicitação. Os requisitos vão sendo descobertos, analisados e negociados. � Requisito desnecessário (Permitir ler e-mails no sistema); � Não é viável tecnicamente (Gerar a folha em 10 segundos); � O prazo/custo não permite (Integrar com redes sociais). Engenharia de Software © Pablo Dall'Oglio Documentação � A documentação dos requisitos é utilizada para comunicar os requisitos do software; � A forma pela qual os requisitos de um sistema são documentados é de extrema importância, para garantir que os mesmos possam ser lidos e validados; � A Especificação de Requisitos do Software é a declaração formal dos requisitos do sistema e pode conter apenas os requisitos de usuário ou os de usuário e os de sistema; � É utilizada pelo cliente (para homologar), pelo arquiteto de software (para entender o que deve ser desenvolvido), pelo testador (para executar os testes), dentre outros. Engenharia de Software © Pablo Dall'Oglio Validação � A validação de requisitos tem como objetivo validar consistência, completeza e precisão dos requisitos a partir da documentação, a fim de descobrir problemas; � Na fase de validação, analistas e usuários validam os requisitos e AVALIAM O PROTÓTIPO, o que muitas vezes leva à descoberta de novos requisitos; � Este é um processo se repete até que todos os requisitos sejam validados ou não existam mais requisitos a descobrir; � Nesta fase é verificada a consistência, completude e precisão dos requisitos, para garantir que não exista ambiguidade, inconsistências, erros e omissões nos requisitos. Engenharia de Software © Pablo Dall'Oglio Validação � Pode ser elaborado um checklist para validar cada requisito: � Descrição incompleta; O sistema deve permitir cadastrar clientes; � Descrição ambígua; No momento da aquisição do produto pelo cliente, o sistema deverá apresentar seus dados; Engenharia de Software © Pablo Dall'Oglio Gerenciamento � Consiste em gerenciar as mudanças nos requisitos; � Os requisitos evoluem ao longo do tempo, gerando novos requisitos e modificando os existentes; � Quando um requisito muda, outros podem ser afetados. � É importante realizar uma análise de impacto a cada mudança. A ferramenta para isso é a matriz de rastreabilidade; � Ex: Muda a regra do cancelamento, muda o financeiro... � Documenta a evolução do próprio requisito; � O versionamento garante que se mantenha o registro de quem solicitou a alteração, quais foram as alterações... Engenharia de Software © Pablo Dall'Oglio Rastreabilidade � Consiste em ligações entre as informações produzidas no desenvolvimento de software; � Estas ligações são essenciais no desenvolvimento de sistemas; � Quando uma mudança ocorre é necessário estimar o custo e o escopo da mudança e a rastreabilidade é chave para isto; � Tradicionalmente, esta análise de impacto tem sido conduzida de forma intuitiva pelos profissionais de software, por meio da análise de código-fonte e da documentação; � Esta abordagem pode ser suficiente para projetos pequenos, mas não para projetos complexos; � Além disso, mesmo profissionais experientes realizam estimativas erradas. Engenharia de Software © Pablo Dall'Oglio Rastreabilidade � São vantagens da rastreabilidade: � Identificação de impactos; � Verificação de alocação entre requisitos e sua implementação; � Estimativas de custos e prazos quando da inserção de uma nova funcionalidade; � Verificação de requisitos para os quais não foram previstos testes; � Identificação de ligações entre código e documentos de análise. Engenharia de Software © Pablo Dall'Oglio Rastreabilidade Engenharia de Software © Pablo Dall'Oglio Ferramentas Engenharia de Software © Pablo Dall'Oglio Próxima atividade � Vídeos; � Engenharia de Requisitos.flv; � Qualidade de software...Wellington Durães.flv; � Investigar ferramentas: � JotForm, Gomockingbird, Pencil (será instalado); � Ver documentos disponibilizados no site; � Quais seriam os requisitos (RF e RNF) de: � Um sistema de comércio eletrônico; � Um sistema para controlar uma clínica; � Um sistema para controlar realização de eventos; � Um sistema para controlar reserva de laboratório.
Compartilhar