Baixe o app para aproveitar ainda mais
Prévia do material em texto
Engenharia de Requisitos (Requirements Engineering) INTRODUÇÃO E FUNDAMENTOS 3º GESTÃO DA TECNOLOGIA DA INFORMAÇÃO GILMA AP. S. CAMPOS INSTITUTO FEDERAL DE CIÊNCIA E TECNOLOGIA DO SUDESTE DE MINAS GERAIS SÃO JOÃO DEL REI - 2019 Introdução Tornou-se prática comum destinar recursos à engenharia de requisitos, pois não se pode mais ignorar o impacto destes recursos no desenvolvimento de sistemas de sucesso bem como o foco dado aos clientes. Introdução CHAOS REPORT https://www.standishgroup.com/sample_research_files/CHAOS Report2015-Final.pdf Engenharia De Requisitos Como Origem De Erros 60% de todos os erros em projetos de desenvolvimento tem origem durante a fase de requisitos (Boehm, 1981) Descoberta em estágios avançados ou na implementação Falta de requisitos não detectada, muitas vezes, durante a fase de projeto e execução (confiança dos desenvolvedores) Desenvolvedores implementam o que interpretam do documento de requisitos Requisitos ambíguos, incompletos ou incorretos levam inevitavelmente a sistemas que não possui propriedade críticas, ou possui aquelas que não foram solicitadas Custo dos Erros Durante a Engenharia de Requisitos Codificação = 20x Testes = 100x Sintomas e Causas da Deficiência na Engenharia de Requisitos Sintomas são tão numerosos quanto as causas Requisitos faltantes ou não claramente formulados = geram sistemas que não atendem as expectativas do cliente ou dos usuários Deficiência ocorre, geralmente, da noção equivocada por parte dos stakeholders de que muitas coisas são óbvias e não precisam ser explicitadas. Resultado de problemas de comunicação Importância de uma Boa Engenharia de Requisitos Importância de sistemas de softwares para projetos da indústria Lançamento no mercado de sistemas inovadores, individualizados e abrangentes Mais rápido, melhor e de alto nível de qualidade Requisitos completos e sem defeitos formam a base para o desenvolvimento bem sucedido de sistemas. Riscos em potencial reduzidos Falhas e lacunas na documentação descobertos em estágio inicial Engenharia de Requisitos – Requisitos(conceito) Conhecer e documentar os requisitos para o sistema aumenta a probabilidade para o desenvolvimento bem sucedido de um projeto. Requisito é uma condição ou capacidade necessária para um usuário resolver um problema ou alcançar um objetivo Uma condição ou capacidade que deve ser alcançada ou estar presente em um sistema ou componente de sistema para satisfazer um contrato, norma, especificação ou outro documento formalmente imposto. (IEEE Standard 610.12-1990) Engenharia de Requisitos – Stakeholders(definição) Termo essencial na engenharia de requisitos. Dentre outras, são as mais importantes fontes de requisitos. Considerados com alto impacto sobre os requisitos Quando desconsiderados, geralmente resulta em uma elicitação fragmentada (requisitos incompletos) Incluem pessoas que interagirão com o sistema (usuários e administradores) Pessoas que tem interesse no sistema, todavia não vão utilizá-lo (alta gerência um hacker (segurança) Entidades legais, instituições... Engenharia de Requisitos - Meta Elicitar os requisitos Documentar os requisitos de forma adequada Gerenciar os requisitos Engenharia de Requisitos Abordagem sistemática, disciplinada para especificação de requisitos, com os objetivos: Conhecer os requisitos relevantes, estabelecer um consenso ente os stakeholders a respeitos de tais requisitos, documentar os requisitos de acordo com determinados padrões e gerenciar os requisitos de forma sistemática. Compreender e documentar as expectativas e necessidades dos stakeholders, especificar e gerenciar os requisitos para minimizar o risco de entregar um sistema que não atenda as suas expectativas e necessidades. Engenharia de Requisitos - Atividades Elicitação – diversas técnicas são utilizadas para obter requisitos dos stakeholders e outras fontes Documentação – requisitos são descritos de forma adequada utilizando diversas técnicas Validação e Negociação – uma forma de garantir que os critérios de qualidade previamente definidos sejam atingidos. Atividade que deve ser realizada desde o princípio do desenvolvimento Gerenciamento – ortogonal a todas as outras atividades. cobrir toda e qualquer medida necessária para estruturar requisitos Preparar os mesmos para serem utilizados por diferentes papeis Manter sua consistência após eventuais mudanças Assegurar sua implementação Engenharia de Requisitos - Restrições Pessoas Fatores de domínio Restrições organizacionais Impacta na escolha de técnicas adequadas Engenharia de Requisitos – Modelos de Processo Modelos pesados – Cascata (Waterfall – Royce, 1987)/ Modelo V (V-Modell 2004) Modelos mais leves – eXtremme Programming (Beck – 1999) Fundamentos da Teoria da Comunicação Linguagem Natural – utilizada como meio de comunicação regrado e acessível ao parceiro (requisitos precisam ser comunicados) Nuvem de palavras CODEC –origem cultural/ experiências semelhante/educação/área de especialização / rotinas de trabalho Fundamentos da Teoria da Comunicação Comunicação, geralmente ineficiente entre stakeholders Glossário Linguagem descritiva formal – UML Fundamentos da Teoria da Comunicação - Meio Comunicação verbal – o sucesso depende fortemente da redundância (linguagem e gestos ou linguagem e entonação) e do feedback Comunicação escrita – mínimo de redundância e feedback Fundamentos da Teoria da Comunicação – Acomodação linguística Informações inadequadamente transmitidas ou omitidas Diferentes vocabulários de domínio e diferentes meios de comunicação Transformações naturais da percepção humana Efeitos transformacionais – focalização e simplificação que impactam negativamente na comunicação Fundamentos da Teoria da Comunicação – Conhecimento implícito anterior do tema Comunicação é necessariamente simplificadora por natureza. O pressuposto de que o leitor tenha algum tipo de conhecimento implícito anterior sobre o tema, acarretando problemas em termos de requisitos, pois os mesmos se tornam suscetíveis a diversas interpretações Comunicação??? Engenheiro de Requisitos - características Papel Central – único que se mantem em contato direto com os stakeholders Competência e responsabilidade de familiarizar-se com o domínio Identifica as necessidades por trás das declarações dos stakeholders, aprimorando-as para os arquitetos e desenvolvedores (geralmente leigos no domínio em questão) Intérprete do domínio e Know-how de TI Engenheiro de Requisitos - Capacidades Conhecimento de processos Vs Experiência prática Raciocínio Analítico – familiarizar-se com domínios desconhecidos, compreender e analisar problemas e relacionamentos complexos Empatia – identificar as verdadeiras necessidades de um stakeholder Competência Comunicativa – realizar a elicitação de maneira a que os requisitos sejam interpretados e comunicados corretamente Resolução de conflitos – identificar conflitos, atuar como mediador entre as partes envolvidas e aplicar técnicas adequação de resolução de conflitos Engenheiro de Requisitos – Capacidades (cont...) Moderação – atuar como mediador entre diferentes opiniões e liderar discussões (individuais ou grupos) Autoconfiança – tendo papel central, o engenheiro de requisitos está exposto a críticas. Possuir autoconfiança e capacidade de se defender em caso de forte objeções de suas opiniões, sem que tome os comentários como crítica pessoal Persuasão – desempenha o papel de advogados dos requisitos dos stakeholders. Representar os requisitos em reuniões, além de consolidar opiniões divergentes, facilitando decisões em caso de discordância, bem como criar consenso entre os stakeholdersTipos de Requisitos - Funcionais Definem a funcionalidade oferecida pelo sistema a ser desenvolvido (subdivididos em: requisitos funcionais, requisitos comportamentais e requisitos estruturais) e ainda, É um requisito relacionado ao resultado de algum comportamento a ser fornecido por uma função do sistema. Tipos de Requisitos – De Qualidade Definem qualidades desejadas do sistema a ser desenvolvido. Geralmente influenciam a arquitetura do sistema mais do que os requisitos funcionais Desempenho, disponibilidade, confiabilidade, escalabilidade ou a portabilidade de um sistema Também conhecidos como Requisitos Não Funcionais Tipos de Requisitos – Restrições É um requisito que limita o espaço da solução além do que seria necessário para cumprir os respectivos requisitos funcionais e de qualidade. Tipos de Requisitos – Restrições Não podem ser influenciadas pelos membros da equipe. Ex: Restrição ao sistema - “O sistema deverá ser implementado utilizando serviços web” Restrição do processo de desenvolvimento – “O sistema deverá estar disponível no mercado no mais tardar no segundo trimestre de 2019” Diferente de requisitos funcionais e de qualidade, restrições não são implementadas, mas são cumpridas, pois meramente limitam o espaço da solução disponível durante o processo de desenvolvimento. Importância de Requisitos de Qualidade Requisitos de qualidade não documentados, documentados inadequadamente ou ainda, negociados de forma imprópria, podem: ameaçar o sucesso do projeto Impedir a aceitação do sistema em desenvolvimento Categorização de Requisitos de Qualidade ISO 9126 (ISO/IEC 9126) – utilizada como uma estrutura padrão para a documentação de requisitos e como uma lista de verificação para a elicitação e validação. Requisitos que definem a qualidade das funções do sistema Adequabilidade, segurança de uso (safety) e segurança de dados e recursos (security), acurácia dos cálculos, interoperabilidade das funções e sua respectiva conformidade com normas Requisitos que definem a confiabilidade das funcionalidades Robustez, tolerância a falhas e recuperabilidade Requisitos que definem a usabilidade dos sistema Compreensibilidade, facilidade de aprendizagem, facilidade de uso Categorização de Requisitos de Qualidade (cont...) Requisitos que definem a eficiência do sistema Comportamento em termos de tempo (tempo de computação) ou de consumo (utilização de recursos) Requisitos que definem a modificabilidade de um sistema Analisabilidade, modificabilidade, estabilidade e testabilidade Requisitos que definem a portabilidade de um sistema Aspectos de capacidade de aderir a padrões ou conveções realacionadas à portabilidade, substituir outro sistema especificado, capacidade de ser instalado Requisitos de Qualidade Geralmente especificados em linguagem natural Engenheiros devem garantir que sejam, tanto quanto possível, objetivos e verificáveis Quantificáveis “um sistema deverá processar 95% de todas as requisições dento 1,5 segundos” “o processamento de requisições não deverá exceder 4 segundos em qualquer momento” Requisitos de Qualidade Requisitos de qualidade podem ser refinados por requisitos funcionais adicionais Ex: “um requisito de qualidade relacionado a segurança do sistema, no qual um requisito funcional especifica o algoritmo de criptografia, para que o mesmo atenda à necessidade de criptografia exigida por determinado requisito de qualidade. Exercícios 1. Identifique os requisitos funcionais e não funcionais. 2. Aponte possíveis incertezas nessa descrição. “Um sistema automático de emissão de passagens vende passagens de trem. A partir de uma lista de possíveis destinos, os usuários escolhem seu destino e apresentam um cartão de crédito e um número de identificação pessoal. Os destinos possíveis devem ser organizados de modo a facilitar a escolha. Após a escolha do destino, o sistema deve responder prontamente se há espaço disponível no trem. A passagem é emitida e o custo dessa passagem é incluído em sua conta do cartão de crédito. Quando o usuário pressiona o botão para iniciar, uma tela de menu com os possíveis destinos é ativada, juntamente com uma mensagem para que o usuário selecione um destino. Uma vez selecionado um destino, pede-se que os usuários insiram seu cartão de crédito. A validade do cartão é checada e o usuário então deve fornecer um número de identificação pessoal. Quando a transação de crédito é validada, a passagem é emitida. O formato do bilhete de passagem deve seguir ao padrão definido pelo Sistema Nacional de Tráfego Ferroviário”. Exercícios 1. Identifique os requisitos funcionais e não funcionais. 2. Aponte possíveis incertezas nessa descrição. “Um sistema automático de emissão de passagens vende passagens de trem. A partir de uma lista de possíveis destinos, os usuários escolhem seu destino e apresentam um cartão de crédito e um número de identificação pessoal. Os destinos possíveis devem ser organizados de modo a facilitar a escolha. Após a escolha do destino, o sistema deve responder prontamente se há espaço disponível no trem. A passagem é emitida e o custo dessa passagem é incluído em sua conta do cartão de crédito. Quando o usuário pressiona o botão para iniciar, uma tela de menu com os possíveis destinos é ativada, juntamente com uma mensagem para que o usuário selecione um destino. Uma vez selecionado um destino, pede-se que os usuários insiram seu cartão de crédito. A validade do cartão é checada e o usuário então deve fornecer um número de identificação pessoal. Quando a transação de crédito é validada, a passagem é emitida. O formato do bilhete de passagem deve seguir ao padrão definido pelo Sistema Nacional de Tráfego Ferroviário”.
Compartilhar