TÉCNICAS DE ELICITAÇÃO DE REQUISITOS Análise de Requisitos A análise de requisitos é fundamental para o desenvolvimento de sistemas, pois trata justamente de descobrir o que o cliente quer com o sistema. A análise de requisitos está associada ao processo de descobrir quais são as operações que o sistema deve realizar e quais são as restrições que existem sobre estas operações. Requisitos Funcionais – o que o sistema deve fazer Não-funcionais – restrições sobre como o sistema deve desempenhar suas funções Exemplo Registrar o empréstimo de uma fita é um requisito funcional. Estabelecer que o tempo de empréstimo da fita não pode ser superior a 48 horas é uma restrição, ou requisito não funcional. Erro comum Deve ficar claro ao analista que requisitos são coisas que o cliente ou usuário solicitam, e não coisas que ele, como analista, planejou. Requisitos Requisitos do sistema são os elementos que precisam ser compreendidos e atendidos para que o sistema seja desenvolvido atendendo aos seus objetivos. Os requisitos do sistemas envolvem as NECESSIDADES DO USUÁRIO e o AMBIENTE DO SISTEMA. Requisitos Necessidades do usuário incluem tudo aquilo que o usuário precisa para que possa atender ao que dele se espera em um determinado sistema. Ambiente do sistema inclui todos os aspectos que estão relacionados ao funcionamento do sistema. Especificação Especificação do sistema é o conjunto de documentos gerados pela aplicação de técnicas estruturadas sobre os requisitos do sistema. Exemplos: Diagrama de Fluxo de Dados (DFD); Dicionário de Dados; Diagrama Entidade-Relacionamento (DER); Português Estruturado; Diagrama de Estrutura, Diagrama de Casos de Uso. Especificação Especificação de projeto é a especificação que pode ser diretamente convertida em: Código fonte (em linguagem de programação); ou Estruturas de Banco de Dados; ou Interface entre o sistema e o usuário. Especificação Requisitos do sistema Análise Especificação do sistema Projeto Especificação de projeto Documentação dos requisitos do sistema Entrevistado:__________________________ Setor:______ Data:___/___/___ Sistema:__________ Analista:________ REQUISITOS DO SISTEMA Requisitos Observações <id> <descrição do requisito> [- <restrição>] ... ... __________________ Analista <id> <observação> ... ... ... __________________ Usuário Levantamento de Dados Atividades: Analisar solicitação de serviços do usuário Definir instrumento e cronograma de coleta de dados Realizar coleta de dados (elicitar) Documentar requisitos do sistema e restrições Obter aprovação do usuário sobre os requisitos do sistema e restrições Definir objetivos do sistema Levantamento de Dados Atividades (continuação): Identificar usuários do sistema Fazer análise inicial do sistema Levantamento de Dados Levantamento de dados é o processo que permite coletar os requisitos do sistema, visando sua análise. Princípios fundamentais da análise de requisitos: o domínio da informação de um problema deve ser representado e compreendido; Levantamento de Dados modelos que descrevam a informação, função e comportamento do sistema devem ser desenvolvidos; os modelos (e o problema) devem ser divididos em partições, de maneira que revele os detalhes em forma de camadas (ou hierarquicamente); o processo de análise deve mover-se da informação essencial para os detalhes de implementação. Princípios fundamentais da análise de requisitos Em síntese, os princípios fundamentais são: Domínio da informação Modelagem Particionamento Abordagem incremental Técnicas para levantamento de dados Principais técnicas: entrevistas, questionários, análise de documentação, análise de observação, sessões informais de brainstorming em grupo, análise de fluxo de processo, cenários casos de uso Entrevista Técnica mais utilizadas: Entrevista. Objetivos da entrevista: coletar informações sobre o comportamento de um sistema atual ou sobre os requisitos de um novo sistema; verificar a compreensão adquirida sobre o comportamento de um sistema atual ou sobre os requisitos de um novo sistema; coletar informações para os estudos de viabilidade. Entrevista Problemas mais comuns na entrevista: entrevistar a pessoa errada no momento errado; fazer perguntas erradas e obter respostas erradas; criar ressentimentos recíprocos. Cuidados especiais durante a entrevista: normalmente, o usuário concentra-se nos sintomas dos problemas, em vez de se ocupar com as causas reais; Cuidados especiais durante a entrevista (cont.) o usuário expressa suas necessidades em termos de soluções informatizadas predeterminadas sem entender a natureza real do problema, assumindo hipóteses falsas sobre soluções informatizadas; podem existir algumas disparidades entre a versão oficial de como um sistema manual existente e um procedimento automatizado devem funcionar e o que realmente ocorre em nível operacional. Possíveis formas de resistência do usuário na entrevista “você está tomando tempo demais de mim” “você está ameaçando meu emprego” “você não conhece nossa empresa, como você quer dizer-nos como deve ser o novo sistema?” “você está tentando mudar o modo como as coisas são feitas aqui” “não queremos esse sistema” “por que você está desperdiçando nosso tempo com esta entrevista?” Outros problemas na entrevista uma discussão que focalize mais os problemas de implementação do que os problemas de requisitos; confusão entre sintomas e problemas; o usuário pode ser incapaz de explicar o que ele quer que o sistema faça ou pode mudar de opinião; desentendimento entre usuários de mesmo nível, subordinados e chefes. Objetivos a serem atingidos (do ponto de vista do entrevistador) examinar a emotividade da pessoa entrevistada, seus anseios, tendências, atitudes, preferências e motivações; ouvir um relato, biográfico ou cronológico, de fatos vivenciados ou observados pelo entrevistado; utilizar a entrevista para coordenar informações recebidas de fontes diversas, podendo apreciar o entrevistado em seu conjunto. Entrevista Para atingir seus objetivos, o entrevistador deverá estar atento, antes da entrevista: às características inerentes do entrevistado, sua satisfação emocional e intelectual; aos aspectos de tempo, assunto e nível de profundidade da entrevista, às exigências que esta terá do entrevistado; às experiências anteriores do entrevistado, e sua qualificação para influir no processo de reordenação dos fatos. Capacidades a serem desenvolvi-das para se obter bons resultados capacidade de ser um observador atento; capacidade para deixar o entrevistado à vontade; capacidade de encadeamento de assuntos. Observações: a imagem transmitida anteriormente ao entrevistado deve ser preservada, bem como a postura adotada frente a esta situação. não basta ter credibilidade, é necessário mostrar essa credibilidade. Diretrizes para a entrevista (antes da entrevista) Identifique, das áreas envolvidas com o sistema, representantes que possam contribuir com informações acerca do sistema. Desenvolva um plano geral de entrevistas. Elimine preconceitos para evitar transmiti-los durante o contato com o entrevistado. Diretrizes para a entrevista (antes da entrevista) - cont. Evite: basear-se em opiniões de outras pessoas; demonstrar preferências por certo tipo físico; pensar que experiências anteriores são garantias de habilidade futura. Não externe sua opinião no trato de questões polêmicas, para não gerar conflitos e um clima desfavorável na entrevista. Diretrizes para a entrevista (antes da entrevista) - cont. Identifique a posição e as responsabilidades atuais do entrevistado. Obtenha o máximo de informações pertinentes sobre as funções executadas na área do entrevistado, incluindo formulários e exemplos de relatórios apropriados. Certifique-se que você tem autorização para agendar entrevistas com os usuários identificados. Diretrizes para a entrevista (antes da entrevista) - cont. Marque um horário para conversar com o usuário, de preferência em um local em que não haja interrupções, nem distrações em potencial. Marque a entrevista para um horário que seja conveniente ao usuário. Planeje a entrevista para fazer uso eficiente do tempo. Diretrizes para a entrevista (antes da entrevista) - cont. Tente descobrir que informações o usuário está mais interessado. Prepare a entrevista, listando pontos sobre os quais você considera importante ter informações sobre o sistema. Sempre que possível, prepare um esboço da entrevista e passe cópia para o entrevistado. Diretrizes para a entrevista (durante a entrevista) Seja pontual e respeite o tempo determinado para a entrevista. Use um estilo adequado de entrevistar. Inicie se apresentando e expondo os objetivos da entrevista. Explicar os motivos pelos quais o interlocutor foi escolhido para ser entrevistado. Diretrizes para a entrevista (durante a entrevista) - cont. Comece fazendo perguntas de livre contexto (conjunto de perguntas que leve a uma compreensão básica do problema, às pessoas que querem uma solução, à natureza da solução que é desejada e à efetividade do primeiro encontro em si). Diretrizes para a entrevista (durante a entrevista) - cont. Observações sobre as perguntas de livre contexto: O primeiro conjunto de perguntas concentra-se no cliente, nas metas globais e nos benefícios. O conjunto de perguntas seguinte capacita o analista a obter uma melhor compreensão do problema e o cliente a verbalizar suas percepções sobre uma solução. O conjunto seguinte de perguntas concentra-se na efetividade do encontro (metaperguntas). Diretrizes para a entrevista (durante a entrevista) - cont. Evite desvios do assunto. Separe funcionalidade de implementação. Procure obter uma visão geral do sistema antes de aprofundar-se em questões específicas. Faça "ganchos", articulando as questões seguintes às respostas dadas pelo usuário, quando houver algum relacionamento. Diretrizes para a entrevista (durante a entrevista) - cont. Faça a distinção entre fatos e opiniões. Faça anotações das respostas dadas pelo usuário e explique ao entrevistado porque está fazendo isto. Se for gravar ou filmar a entrevista, peça autorização ao usuário antes de começar e informe o objetivo de fazer a gravação. Associe a cada requisito as suas restrições, se houver. Diretrizes para a entrevista (durante a entrevista) - cont. Se pretende fazê-lo, peça permissão para falar posteriormente com a equipe do entrevistado;. Não demore mais do que 2 horas numa entrevista (se for necessário planeje outras). Explique que todas as informações obtidas durante a entrevista serão submetidas à sua aprovação antes de sua publicação oficial. Diretrizes para a entrevista (durante a entrevista) - cont. Perto do final da entrevista, resuma os principais pontos discutidos para confirmar que entendeu o que foi dito. Encerre a entrevista com uma observação positiva, agradecendo ao entrevistado por sua contribuição. Diretrizes para a entrevista (após a entrevista) Documente todos os pontos relevantes obtidos durante a entrevista. Envie a documentação ao entrevistado para obter observações e aprovação final. Se for necessário um esclarecimento posterior, contate o entrevistado para marcar outra reunião. Envie os resultados para os usuários e seus gerentes. Recapitulando... Fase de Levantamento de Dados Análise da Solicitação de Serviços Entrevista Documentação da entrevista Documentos gerados na fase de Levantamento de Dados Análise da Solicitação de Serviços Documentação do Sistema Solicitação de Serviços Entrevista Documentação da entrevista Documentação dos Requisitos do Sistema extraídos das entrevistas Documentação dos Requisitos do Sistema (lista consolidada) Fase de Análise do Sistema Modelagem de Processos e de Dados Especificação dos Processos Definição das partes informatizadas e não informatizadas Estratégias de implementação Administração e monitoramento de riscos Estudo de viabilidade Planejamento do projeto Documentos gerados na fase de Análise do Sistema Dicionário de Dados DER DFDs Modelo de Processos Especificação em Português Estruturado Diagramas de Descrição de Entidades Documentação do Sistema Componentes informatizados e não informatizados Modelo de Dados Estudo de viabilidade