Prévia do material em texto
ENGENHARIA DE SOFTWARE Prof. Me. Jadir Custódio Mendonça Jr. Engenharia de Requisitos 3 Engenharia de Requisitos Engenharia de Requisitos ✓ Os requisitos de um sistema são as descrições do que o sistema deve fazer, os serviços que oferecem e as restrições a seu funcionamento. ✓ Refletem as necessidades dos clientes para um sistema que serve a uma finalidade determinada. ✓ O processo de descobrir, analisar, documentar e verificar esses serviços e restrições é chamado de Engenharia de Requisitos. (SOMMERVILLE, 2011, p. 57) ✓ A engenharia de requisitos constrói uma ponte para o projeto e para a construção. (PRESSMAN, 2011, p. 127) 4 ✓A Engenharia de Requisitos nos diz o que deve ser feito e como deve funcionar. ✓Enquanto a Engenharia de Software nos diz como construir o software, com qualidade. 5 Engenharia de Requisitos OBJETIVO ✓Sistematizar o processo de definição de requisitos, obtendo uma especificação correta e completa dos requisitos. 6 Engenharia de Requisitos PROCESSO DE ENGENHARIA DE REQUISITOS 7 Engenharia de Requisitos PROCESSO DE ENGENHARIA DE REQUISITOS Fatores que influenciam: ✓Maturidade técnica ✓ Envolvimento disciplinado ✓Cultura organizacional 8 Engenharia de Requisitos PROBLEMAS MAIS COMUNS NO PROCESSO DE ER ✓ Pouco envolvimento dos representantes dos usuários ✓ Falta ou falha no Gerenciamento de Requisitos ✓ Falta ou falha na definição das responsabilidades ✓ Problemas de comunicação entre os representantes dos usuários ✓ Não são consideradas as necessidades do negócio 9 Engenharia de Requisitos ✓ Alguns dos problemas que surgem durante o processo de engenharia de requisitos são as falhas em não fazer uma clara separação entre esses diferentes níveis de descrição. ✓ (SOMMERVILLE, 2011) ✓ A engenharia de requisitos fornece o mecanismo apropriado para entender aquilo que o cliente deseja, analisando as necessidades, avaliando a viabilidade, negociando uma solução razoável, especificando a solução sem ambiguidades, validando a especificação e gerenciando as necessidades à medida que são transformadas em um sistema funcional. ✓ (PRESSMAN, 2011, p. 127) 10 Engenharia de Requisitos ✓Resumindo, um Requisito consiste da definição documentada de uma propriedade ou comportamento que um produto ou serviço particular deve atender. ✓Conjuntos de requisitos são tipicamente utilizados como informações fundamentais para a fase de projeto de um produto ou serviço, especificando as propriedades e funções necessárias (ou desejáveis) a serem consideradas no desenvolvimento do projeto em questão. (WIKIPEDIA, 2008) 11 Engenharia de Requisitos ✓Sommerville (2011, p. 58) faz uma distinção entre os níveis: ❖Requisito de usuário: expressa os requisitos abstratos de alto nível. São declarações, em linguagem natural ou diagramas de quais serviços o sistema deverá fornecer a seus usuários e as restrições as quais devem operar. ❖Requisito de sistema: expressa a descrição detalhada do que o sistema deve fazer. São descrições mais detalhadas das funções, serviços e restrições operacionais do sistema de software. Este documento deve definir exatamente o que deve ser implementado. 12 Engenharia de Requisitos ✓Diferentes níveis de requisitos são úteis, pois eles comunicam informações sobre o sistema para diferentes tipos de leitor. 13 Engenharia de Requisitos Requisitos de usuário e de sistema 14 Sistema de Gerenciamento da Saúde Mental de Pacientes (MHC-PMS) ✓Os requisitos de software são frequentemente classificados como: ❖Requisitos Funcionais ❖Requisitos Não Funcionais 15 Engenharia de Requisitos Requisitos Funcionais ✓Expressam condições que o software deve atender ou qualidades específicas que o software deve ter. (AVILA; SPÍNOLA, 2008). ✓São restrições aos serviços ou funções oferecidos pelo sistema. Incluem restrições de timing, restrições no processo de desenvolvimento e restrições impostas pelas normas. ✓Declarações do que o sistema não deve fazer. ✓Declarações de como o sistema deve se comportar em determinadas situações. 16 Engenharia de Requisitos Requisitos Funcionais ✓Variam de requisitos gerais, que abrangem o que o sistema deve fazer, até requisitos muito específicos, que refletem os sistemas e as formas de trabalho em uma organização. ✓Definem os recursos específicos a serem fornecidos pelo sistema. (SOMMERVILLE, 2011, p. 60) ✓Os requisitos funcionais podem ser cálculos, detalhes técnicos, manipulação de dados e de processamento e outras funcionalidades específicas que definem o que um sistema, idealmente, será capaz de realizar. (WIKIPEDIA, 2012) 17 Engenharia de Requisitos Requisitos Funcionais (constatações) ✓A imprecisão na especificação de requisitos é a causa de muitos problemas da engenharia de software. ✓A imprecisão de requisitos faz com que um desenvolvedor de sistemas interprete um requisito ambíguo(outro sentido) de uma maneira que simplifique sua implementação. Nem sempre tal implementação é a preferência do cliente, isto gera novos requisitos e alterações no sistema. Gera atrasos de entrega e aumenta os custos. 18 Engenharia de Requisitos Requisitos Funcionais ✓ Exemplos – sistema de vendas: ❖ O CPF/CNPJ deve ser chave de pesquisa junto ao cadastro de clientes ❖ O software deve permitir o cadastro de clientes em primeira compra; ❖ O software deve permitir a geração de relatórios sobre o desempenho de vendas no semestre; ❖ O software deve permitir o pagamento das compras através de cartão de crédito. 19 Engenharia de Requisitos 20 Engenharia de Requisitos Motivação para Engenharia de Requisitos O problema da pedra ✓Clientes normalmente nos dão a missão que pode ser descrita como: “Traga-me uma pedra”. 22 Engenharia de Requisitos O problema da pedra ✓Quando você lhe entrega uma pedra, ... ✓... o cliente diz: “Sim, mas..., na verdade..., o que eu queria era uma pequena pedra azul”. 23 Engenharia de Requisitos O problema da pedra ✓Quando você lhe entrega uma pequena pedra azul, ... ✓ ... o cliente diz: “Sim, mas..., na verdade..., o que eu realmente queria era uma pequena pedra esférica e azul”. 24 Engenharia de Requisitos O problema da pedra ✓Quando você lhe entrega uma pequena pedra esférica e azul, ... ✓ ... o cliente diz: “Sim, mas..., na verdade..., o que eu realmente queria era uma pequena pedra esférica de mármore azul”. 25 Engenharia de Requisitos O problema da pedra ✓Quando você lhe entrega uma pequena pedra esférica de mármore azul, ... ✓ ... o cliente finalmente diz: “Finalmente! Era isso que eu queria!”. 26 Engenharia de Requisitos O problema da pedra ✓O que será que aconteceu entre a entrega da primeira e a última pedra? 27 1 2 3 4 t Engenharia de Requisitos O problema da pedra ✓Talvez o cliente tenha mudado o seu desejo sobre o que queria. ✓Certamente o desenvolvedor ficou frustrado. ✓Afinal, foi ele que carregou as pedras! ✓O cliente também ficou frustrado: ❖ Embora possa ter encontrado dificuldades para dizer o que queria, ele está convencido de que expressou seus desejos claramente. ❖ Foi o desenvolvedor que não entendeu! 28 Engenharia de Requisitos Elicitação e análise de requisitos ✓Engenheiros de software trabalham com os clientes e usuários finais do sistema para obter informações sobre o domínio da aplicação, os serviços que o sistema deve oferecer, desempenho do sistema, restrições de hardware e demais informações pertinentes ao sistema. 29 Engenharia de Requisitos Elicitação e análise de requisitos Desafios: ✓ Clientes/usuários costumam não saber o que querem no sistema a ser desenvolvido; ✓ Muitas vezes é difícil para o usuário articular o que quer que o sistema faça; ✓ O usuário pode fazer exigências inviáveis; ✓ Usuários usam termos próprios e conhecimento implícito que engenheiros de requisitos, sem experiência no domínio, podem nãoentender; ✓ Diferentes clientes expressam mesmos requisitos de forma diferentes; 30 Engenharia de Requisitos Elicitação e análise de requisitos Desafios (continuação): ✓ Fatores políticos podem influenciar os requisitos de um sistema; ✓ Os gerentes podem exigir requisitos específicos que lhes permitirão aumentar sua influência na organização; ✓ O ambiente econômico e empresarial no qual a análise é realizada é dinâmico; ✓ É comum que ocorram mudanças durante o processo de análise. A importância dos requisitos podem mudar. Novos requisitos podem surgir caso novos usuários forem consultados. 31 Engenharia de Requisitos Requisitos Não Funcionais ✓Estão ligados diretamente a funcionalidade do software (AVILA; SPÍNOLA, 2008). ✓São os requisitos relacionados ao uso da aplicação em termos de desempenho, usabilidade, confiabilidade, segurança, disponibilidade, manutenção e tecnologias envolvidas. (WIKIPEDIA, 2008b) ✓São restrições aos serviços ou funções oferecidos pelo sistema. (SOMMERVILLE, 2011, p. 59) 32 Engenharia de Requisitos Requisitos Não Funcionais ✓São requisitos que não estão diretamente relacionados com os serviços específicos oferecidos pelo sistema a seus usuários. ✓São frequentemente mais críticos que requisitos funcionais individuais. ✓Embora muitas vezes seja possível identificar quais componentes do sistema implementam requisitos funcionais específicos, é frequentemente mais difícil relacionar os componentes com os requisitos não funcionais. ✓A implementação desses requisitos pode ser difundida em todo o sistema. (SOMMERVILLE, 2011, p. 60) 33 Engenharia de Requisitos Requisitos Não Funcionais ✓Requisitos não funcionais podem afetar a arquitetura geral de um sistema em vez de apenas componentes individuais. ❖ Por exemplo, para assegurar que sejam cumpridos os requisitos de desempenho, será necessário organizar o sistema para minimizar a comunicação entre os componentes. ✓Exemplo: ▪ Cálculo Automático da Escala de Trabalho: Software livre vs Software comercial. 34 Engenharia de Requisitos Requisitos Não Funcionais ✓Um único requisito não funcional, tal como um requisito de proteção, pode gerar uma série de requisitos funcionais relacionados que definam os serviços necessários no novo sistema. (SOMMERVILLE, 2011, p. 60) 35 Engenharia de Requisitos Requisitos Não Funcionais ✓ Os requisitos não funcionais surgem por meio das necessidades dos usuários, devido: ❖ Restrições de orçamento, ❖ Políticas organizacionais, ❖ Necessidade de interoperabilidade com outros sistemas de software ou hardware, ❖ A partir de fatores externos, como regulamentos de segurança ou legislações de privacidade (LGPD). (SOMMERVILLE, 2011, p. 61) 36 Engenharia de Requisitos Requisitos Não Funcionais ✓Requisitos de produto ❖ Especificam ou restringem o comportamento do software. ❖ Exemplos incluem os requisitos de desempenho ou requisitos de confiabilidade (suscetibilidade a falhas). ▪ Exemplo: Limitações impostas por Plano Selecionado e pelo Software de Programação Linear (Qtde de variáveis: 32000). (SOMMERVILLE, 2011, p. 61) 37 Engenharia de Requisitos Requisitos Não Funcionais ✓Requisitos organizacionais ❖ São derivados das políticas e procedimentos da organização do cliente e do desenvolvedor. ❖ Exemplos incluem os requisitos do processo operacional (como o sistema será usado), os requisitos do processo de desenvolvimento que especificam a linguagem de programação, o ambiente de desenvolvimento ou normas de processo a serem usadas, bem como os requisitos ambientais que especificam o ambiente operacional do sistema. ▪ Exemplo: Tipo do Cálculo da Escala – Individual, Misto ou Integrado. (SOMMERVILLE, 2011, p. 61) 38 Engenharia de Requisitos Requisitos Não Funcionais ✓Requisitos externos ❖ São os requisitos que derivam de fatores externos ao sistema e seu processo de desenvolvimento. ❖ Podem incluir requisitos reguladores, que definem o que deve ser feito para que o sistema seja aprovado para uso, por um regulador, tal como um banco central; requisitos legais, que devem ser seguidos para garantir que o sistema opere dentro da lei; e requisitos éticos, que asseguram que o sistema será aceitável para seus usuários e o público em geral. ▪ Exemplo: NBR ISO 9241-171 de 09/2018: as orientações sobre acessibilidade de software. (SOMMERVILLE, 2011, p. 61) 39 Engenharia de Requisitos Requisitos Não Funcionais ✓Exemplos ❖O software deve ser compatível com os browsers Chrome (versão 79 ou superior) e Firefox (72 ou superior); ❖O software deve garantir que o tempo de retorno das consultas não seja maior do que 5 segundos. (ÁVILA; SPÍNOLA, 2008) 40 Engenharia de Requisitos