Introdução e Fundamentos Engenharia de Requisitos Roteiro • O que é Requisito, Engenharia de Requisitos e Stakeholder? • Importância da Engenharia de Requisitos • Sintomas e Causas de uma ER inadequada • 4 atividades principais da ER • Comunicação na ER • Requisitos • Tipos de Requisitos • Requisitos de Qualidade • Características Importantes O que é requisito? “Condição que se deve satisfazer para alcançar um objetivo” O que é requisito? “Exigência que deve ser cumprida para atingir um objetivo” O que é Engenharia de Requisitos (ER) ? É a ciência que estuda a criação, construção, análise, desenvolvimento e manutenção dos requisitos que devem ser cumpridos por um sistema. Engenharia de requisitos Estabelece os serviços que o cliente requer de um sistema e as restrições sob as quais tal sistema operará e será desenvolvido Tais serviços e restrições são chamados de requisitos O que é Engenharia de Requisitos (ER) ? • OBJETIVOS: • Conhecer os requisitos pertinentes, alcançar um consenso entre os stakeholders sobre esses requisitos, documentando-os de acordo com as normas dadas e gerenciando-as sistematicamente. • Compreender e documentar os desejos e necessidades dos stakeholders, que especifica o gerenciamento de requisitos para minimizar o risco de entregar um sistema que não atende os desejos das partes interessadas. O que é Stakeholder? • “É uma pessoa ou uma organização que tem algum impacto direto ou indireto sobre os requisitos do sistema.” Interessados Envolvidos Importância da ER “A parte mais árdua na construção de um software consiste exatamente em identificar o que construir . Nenhuma outra fase compromete tanto o resultado do trabalho se elaborada de forma incorreta. Nenhuma outra parte dificulta tanto as correções posteriores.” Frederick P. Brooks Importância da ER [Figuras Adaptada do Quik Guide] Sintomas e Causas de uma ER inadequada • Pressão do cliente para uma construção rápida do sistema “Temos que nos acostumar com a pressão. Mais além, toda vez que sentirmos pressão, mentalizar que isso nos ajuda a alcançar nossos objetivos. Dá-nos mais gás para agir em direção à nossa meta.” Lauro Valente Requisitos Incorretos Sintomas e Causas de uma ER inadequada • Problemas de Comunicação “Quando conversar com um colega de trabalho ou um cliente, lembrese de que a comunicação transcende as palavras .” Mari Geuer Omissão de Requisitos Scott Adams, Inc./Dist. by UFS, Inc Sintomas e Causas de uma ER inadequada • Suposição incorreta, por parte dos stakeholders, de que muito do assunto é evidente “Geralmente as pessoas falham em serem bons ouvintes. Elas simplesmente presumem que sabem o que a outra pessoa esta dizendo ou simplesmente porque elas já ouviram isso antes adotam a idéia de que aquela pessoa é igual a outra “ Requisitos Ambíguos 4 atividades principais da ER Gerenciamento Elicitação Documentação Validação e Negociação • Levantamento • Técnicas de identificação • Detalhamento • Descrição • Linguagem natural • Modelos formais • Garantia de qualidade • Resolução de Conflitos • Consistência das informações • O engenheiro de requisitos precisa extrair, sugar todas as informações possíveis dos stakeholders e identificar requisitos através de pesquisas. Elicitação Para a etapa de identificação, levantamento e detalhamento de requisitos, podem ser utilizadas diversas técnicas, como, entrevista, estudo arqueológico, brainstorming, dentre outros. • É importante registrar as informações coletadas e identificadas na etapa de levantamento de requisitos de forma adequada. Documentação Para documentar requisitos podem ser utilizadas a linguagem natural e modelos formais, utilizando UML, como por exemplo, diagrama de estado, sequência, casos de uso e especificações de casos de uso. • Deve ser garantida a qualidade dos requisitos, validando se estão corretos. Para isso é importante negociar com o cliente o que realmente é necessário para o produto. Validação e Negociação Para negociar e validar os requisitos é importante ter a avaliação de um especialista, de modo que possa ser verificado se o que foi levantado condiz com o que foi solicitado. • Compreende todas as medidas que são necessárias às exigências de estrutura para que as outras 3 etapas da ER possa ocorrer. Gerenciamento Gerenciar consiste em manter os dados consistentes, com qualidade garantindo que eles possam ser implementados . Requisitos funcionais e não-funcionais Requisitos funcionais Serviços que o sistema deve fornecer Como o sistema deve reagir a entradas específicas Como o sistema deve se comportar em determinadas situações Requisitos não-funcionais ou de qualidade Restrições sobre serviços ou funções oferecidos pelo sistema tais como restrições de tempo de resposta, restrições sobre o processo de desenvolvimento, padrões, etc. O sistema LIBSYS Um sistema de biblioteca que fornece uma interface única para uma série de banco de dados de artigos em bibliotecas diferentes Os usuários podem pesquisar, baixar e imprimir estes artigos para estudo pessoal Exemplos de requisitos funcionais O usuário deve ser capaz de pesquisar em todo o conjunto inicial de banco de dados ou selecionar um subconjunto a partir dele O sistema deve fornecer telas apropriadas para o usuário ler os documentos no repositório de documentos Imprecisão de requisitos Problemas surgem quando os requisitos não são precisamente definidos Requisitos ambíguos podem ser interpretados de maneiras diferentes pelos desenvolvedores e usuários Requisitos completos e consistentes Em princípio, requisitos devem ser completos e consistentes Completude Eles devem incluir descrições de todos os recursos requeridos Consistência Não deve haver conflitos ou contradições nas descrições dos recursos de sistema Na prática, é impossível produzir um documento de requisitos completo e consistente Requisitos não-funcionais Definem propriedades e restrições de sistema Exemplos incluem confiabilidade, tempo de resposta e requisitos de armazenamento Restrições são capacidade de dispositivos de E/S, representações de sistema, etc. Requisitos de processo podem também ser especificados, impondo uma linguagem de programação, IDE ou método de desenvolvimento particular Requisitos não-funcionais podem ser mais críticos do que os requisitos funcionais EXERCÍCIOS • Criar um documento com a visão geral e os requisitos para o seguinte sistema: • Sistema de Registro de Ponto dos Colaboradores