Engenharia de Requisitos Prof. Rodrigo Nin [email protected] 1 Engenharia de Requisitos - ER Definição Área da Engenharia de Software que estuda o processo de definição dos requisitos que um software deverá atender. Objetivo Entender as necessidades dos clientes e traduzi-las em especificação de características e propriedades do software a ser construído ou adquirido. 2 Custo do erro Fase onde ocorreu o erro Custo do erro Fase onde o erro foi identificado Adaptado de Pressman e Boehm 3 Custo do erro No ramo de software, erro é regra não exceção ... Mais de um milhão de aposentados terão que fazer nova declaração Cerca de 1,3 milhão de aposentados do INSS vão ter que fazer uma nova declaração do Imposto de Renda 2005, por causa de um erro cometido pela Previdência na hora de emitir o comprovante de rendimento. O INSS deixou de incluir um desconto concedido pelo governo no ano passado, que reduz o valor do rendimento tributável em cerca de R$500. Isso, torna menor o imposto devido e aumenta a restituição de quem terá dinheiro a receber. Já para aqueles aposentados que tinham imposto a pagar e, por causa do erro do INSS, acabaram pagando valor maior do que deveriam, a Receita ainda está estudando a forma como será feita a devolução do dinheiro, após o recebimento da declaração retificadora Fonte: O Globo Online 4 Deterioração de software Taxa de erros Novos erros Curva a ser evitada Curva ideal Alteração Tempo Adaptado de Pressman 5 CMMI – Áreas de Processo 2 3 Gerenciado • Gerência de Requisitos • Planejamento do Projeto • Monitoração e Controle do Projeto • Gerência de Acordos com Fornecedores • Medição e Análise • Garantia da Qualidade do Processo e do Produto • Gerência de Configuração • • • • • • • • • Definido Desenvolvimento de Requisitos Solução Técnica Integração do Produto Verificação Validação Foco no Processo Organizacional Definição do Processo Organizacional Treinamento Organizacional Gerência de Projeto Integrada (parte só IPPD) Gerência de Riscos Integração da Equipe (IPPD) Gerência Integrada de Fornecedores Análise de Decisão e Resolução Ambiente Organizacional para Integração (IPPD) Engenharia de Requisitos • • • • • http://www.sei.cmu.edu 6 CMMI – Requisitos Desenvolvimento de Requisitos Objetivo: Produzir e analisar requisitos de clientes, produtos e componentes de produtos. Gerência de Requisitos Objetivo: Gerenciar os requisitos dos produtos e componentes de produtos do projeto e identificar as inconsistências entre estes requisitos e os planos e os produtos de trabalho do projeto. http://www.sei.cmu.edu 7 Desenvolvimento de Requisitos • Requisitos de clientes • Requisitos de produtos • Requisitos de componentes de produtos http://www.scielo.br/scielo.php?pid=S0104-530X2000000300009&script=sci_arttext&tlng=pt 8 Desenvolvimento de Requisitos Software Interfaces Algorítimos Memória Consultas Cálculo A Arquivo 1 Relatórios Cálculo B Arquivo 2 Entradas de dados Transfomação de dados Arquivo 3 Componente Componente Componente Componente 9 Desenvolvimento de Requisitos Gerenciamento de Requisitos Requisitos Requisitos Requisitos Soluções alternativas Desenvolvimento de Requisitos Requisitos Componentes Solução Técnica Software Requisitos Verificação Gerência de Configuração (componentes integrados) Componentes Requisitos Validação Software Cliente Necessidades Adaptado de http://www.sei.cmu.edu 10 A validação confirma que o produto, como fornecido, irá atender o seu uso pretendido. Em outras palavras, a validação assegura que “você construiu a coisa certa”. A verificação confirma que os produtos de trabalho refletem de forma apropriada os requisitos que foram especificados. Em outras palavras, a verificação assegura que “você construiu certo a coisa”. Adaptado de http://www.sei.cmu.edu 11 Desenvolvimento de Requisitos Processo: Desenvolver os requisitos da solução do negócio Objeto: Regras, necessidades, expectativas e restrições da solução do negócio Coletar Levantamento Descobrir Transformar em requisitos da solução do negócio Produtos (na linguagem do negócio): • Requisitos formalmente definidos • Restrições para validação Adaptado de http://www.sei.cmu.edu 12 Nosso Escopo O negócio A solução do negócio Pessoas Organização e Processos Hardware componentes da solução do negócio Software Materiais Infraestrutura Aspectos Finanças legais e normativos 13 Desenvolvimento de Requisitos Processo: Desenvolver os requisitos da solução do negócio Requisitos (na linguagem do negócio) Decorrentes da solução do negócio • • • • requisitos requisitos requisitos requisitos Decorrentes de outros condicionantes Adaptado de http://www.sei.cmu.edu • • • • • • funcionais de interface operacionais de persistência requisitos requisitos requisitos requisitos requisitos etc. financeiros de tempo de recursos humanos de riscos legais ou normativos 14 Desenvolvimento de Requisitos Processo: Desenvolver os requisitos da solução do negócio Modelagem da Solução do Negócio Técnicas de registro do modelo • • • • Modelos de Processos / Atividades Modelos de Dados/Classes (conceitual) Aspectos importantes Modelo Vital • Comunicação Técnicas de obtenção de informações Etc. • Engajamento de usuário/cliente • Modelagem Participativa (JAD) • Compartilhamento da paternidade • Brainstorming • • • • • • Adaptado de http://www.sei.cmu.edu Quality Function Deployment (QFD) Desenvolvimento de cenários Entrevistas, questionários Análise de documentos Observação dos fluxos de trabalho Etc. 15 Desenvolvimento de Requisitos Processo: Desenvolver os requisitos do produto Objeto: Especificações de software, hardware, operação e infraestrutura Requisitos da solução do negócio • tecnologia • solução técnica • métodos e técnicas de construção e teste Transformar em requisitos do produto Alocar requisitos a componentes do produto Produtos (em linguagem técnica): • Requisitos formalmente definidos e alocados • Definições para verificação dos componente Adaptado de http://www.sei.cmu.edu 16 Desenvolvimento de Requisitos Processo: Desenvolver os requisitos do produto Requisitos do Produto Técnicas de registro de requisitos • Textual • Modelo de Casos de Uso • Protótipos de intefaces (externas) • Descrições de interfaces de componentes • Descrições de algorítmos • Etc. Há muita interação com o desenvolvimento da solução do produto Adaptado de http://www.sei.cmu.edu 17 Gerência de Requisitos OBJETIVO: Gerenciar os requisitos dos produtos do projeto e dos componentes do software identificando inconsistências entre os requisitos, os planos de projeto e os artefatos produzidos ESCOPO Considera todos os requisitos recebidos ou gerados pelo projeto, incluindo os requisitos técnicos e não técnicos bem como os requisitos impostos ao projeto pela organização Adaptado de http://www.sei.cmu.edu 18 Gerência de Requisitos Detalhamento do Objetivo Assegurar que o conjunto acordado de requisitos é a base para o planejamento e a execução do projeto Revisar os requisitos recebidos de fontes autorizadas – em conjunto com as fontes – de modo a garantir o entendimento comum e a consistência com outros requisitos antes de incorporar cada requisito ao projeto Identificar e resolver eventuais inconsistências entre alterações de requisitos com os planos, artefatos e outros requisitos bem como o seu impacto no planejamento e execução do projeto Documentar as alterações de requisitos e suas motivações Manter a rastreabilidade bidirecional entre os requisitos do produto e os requisitos dos componentes e artefatos Adaptado de http://www.sei.cmu.edu 19 Gerência de Requisitos Práticas 1) Obter Entendimento sobre Requisitos 2) Obter Compromisso sobre Requisitos 3) Gerenciar Alterações nos Requisitos 4) Manter Rastreabilidade Bidirecional para os Requisitos 5) Identificar Inconsistências entre Artefatos e Requisitos Adaptado de http://www.sei.cmu.edu 20 Gerência de Requisitos Práticas 1) Obter Entendimento sobre Requisitos Desenvolver um entendimento com as fontes dos requisitos quanto ao significado de cada um Subpráticas: • Estabelecer critérios para distinguir fontes apropriadas de requisitos • Estabelecer critérios objetivos para aceitação de requisitos • Assegurar que os requisitos alcancem os critérios estabelecidos • Conseguir um entendimento com as fontes sobre os requisitos tal que os participantes do projeto possam executá-los Adaptado de http://www.sei.cmu.edu 21 Gerência de Requisitos Práticas 2) Obter Compromisso sobre Requisitos Obter compromisso dos interessados no projeto com os requisitos Subpráticas: • Avaliar o impacto dos requisitos sobre compromissos existentes • Negociar e registrar compromissos Adaptado de http://www.sei.cmu.edu 22 Gerência de Requisitos Práticas 3) Gerenciar Alterações nos Requisitos Gerenciar alterações nos requisitos na medida em que estes evoluam durante o projeto Subpráticas: • Capturar todos os requisitos que foram colocados para o projeto ou gerados por este e suas alterações • Manter o histórico de alterações dos requisitos com as respectivas justificativas Adaptado de http://www.sei.cmu.edu 23 Gerência de Requisitos Práticas 4) Manter Rastreabilidade Bidirecional para os Requisitos Manter rastreabilidade bidirecional entre os requisitos e os planos do projeto e artefatos Subpráticas: • Manter a rastreabilidade dos requisitos para garantir que a fonte de requisitos de menor nível esteja documentada (para trás) • Manter a rastreabilidade de um requisito para requisitos dele derivados bem como para sua alocação em funções, objetos, pessoas, processo e artefatos (para frente) • Manter rastreabilidade horizontal de função para função e com interfaces • Gerar matriz de rastreabilidade cruzada de requisitos Adaptado de http://www.sei.cmu.edu 24 Gerência de Requisitos Práticas 5) Identificar Inconsistências entre Artefatos e Requisitos Identificar inconsistências entre os requisitos e os planos do projeto e produtos de trabalho Subpráticas: • Rever os planos do projeto, atividades e produtos de trabalho para manter a consistência com as alterações nos requisitos • Identificar a fonte das inconsistências e sua razões • Identificar as alterações que precisam ser feitas nos planos e produtos de trabalho decorrentes das alterações nos requisitos • Proceder às ações corretivas pertinentes Adaptado de http://www.sei.cmu.edu 25 Fonte: Marco Aurélio Cordeiro 26 Fonte: SERPRO - Ana-Helena-Jaelson 27