Prévia do material em texto
AULA 5 ENGENHARIA DE SOFTWARE Prof. Emerson Antonio Klisiewicz 02 CONVERSA INICIAL Nesta quinta aula, estudaremos a Qualidade de Software para o desenvolvimento de sistemas, que também fazem parte do processo de Engenharia de Software. CONTEXTUALIZANDO É também por meio da Engenharia de Software que objetivamos garantir uma qualidade do software, definindo e normatizando os processos durante o desenvolvimento dentro de um prazo condizente com a necessidade apresentada pelo usuário. TEMA 1 – CONCEITOS 1.1 Qualidade Trata-se de uma visão do desenvolvedor que se une à ideia de que o software sempre deve atender às necessidades do usuário. Para o usuário, qualidade é a ideia do valor, sua utilidade e o cumprimento de todos os requisitos por ele solicitados. 1.2 Funcionalidade Tratam-se dos atributos, das funções e propriedades particulares do software que vão satisfazer as necessidades impostas pelos requisitos do usuário. 1.3 Resumindo Figura 1 – Resumo dos conceitos 03 Leitura complementar Engenharia de Software – Uma abordagem profissional. 8.ª edição. Por Roger Pressman e Bruce Maxim. Capítulo 21. TEMA 2 – QUAL A NECESSIDADE DE SE MEDIR A QUALIDADE? É necessário ter um valor para comparação. Ao medir e realizar uma comparação do software com alguma informação (dado) é possível ter, desse modo, um indicador de qualidade. Mas, então, o que vamos medir? Nesse caso, teremos opções como o processo e o próprio produto desenvolvido. Nesse procedimento, teremos vários fatores que afetaram a qualidade e que podemos dividir em dois segmentos: os que podem ser medidos diretamente como tempo, custos e produção; e os que não podem ser medidos de forma direta, como questões de usabilidade e manutenção, que são muito subjetivos e difíceis de mensurar. A qualidade necessita ser medida de forma comparativa com padrões e também critérios que devem ser pré-definidos. Por exemplo: medir e comparar o software desenvolvido com alguma informação padrão e obter um indicador de qualidade. 2.1 Mas o que é necessário medir? Podemos decidir medir diversas situações dentro do ciclo de desenvolvimento do software, como o tempo e custo do processo, o desempenho do software e os resultados obtidos por ele. Poderemos também medir a produção da equipe e também quais os recursos que foram usados efetivamente no processo. Dessa forma, poderemos criar padrões, estimativas e com elas aplicar correções, sejam elas corretivas ou preventivas diante dos riscos encontrados. 2.2 Fatores de qualidade Vamos encontrar diversos fatores que afetarão a qualidade do software, como características de operação, capacidade em agregar mudanças, sua adaptação a novos contextos. Essas situações podem ser agrupadas nas seguintes categorias: revisão do software, operação do software e transição do software. 04 2.2.1 Revisão Dentro desse item, nós teremos três situações: a questão da manutenção, que visa verificar quanto o software foi desenvolvido, já prevendo futuras alterações; da flexibilidade, que mostrará quanto de esforço deveremos gastar para realizar qualquer alteração; e da testabilidade, que empregará testes para verificar se o software foi desenvolvido conforme suas especificações. 2.2.2 Operação Nesse quesito, atenderemos aos seguintes itens: corretagem, que atenderá a especificações e objetivos definidos pelo usuário; confiabilidade, que verificará se o software sempre executa do mesmo jeito e com a precisão exigida; eficiência, que trará a quantidade de recursos necessários para o programa executar; integridade, que verificará se o controle de acesso é controlado; e usabilidade, que traz o esforço para aprender a trabalhar com o software. 2.2.3 Transição Na transição, vemos questões como a portabilidade, que mede o esforço para transferir o programa a outro ambiente de produção, bem como a questão da reusabilidade, que demonstrará como usar o software ou parte dele em outras aplicações, e também a interoperabilidade, que verificará o esforço para fazer a união de um sistema a outro, integrando, assim, soluções. TEMA 3 – ELEMENTOS DE GARANTIA DE SOFTWARE Engloba preocupações e atividades que se concentram na gestão da qualidade do software. Dentre elas, podemos sintetizar as seguintes. 3.1 Padrões O IEEE, a ISSO e outras padronizações possuem grande quantidade de padrões e documentos que ajudam no gerenciamento da qualidade do software. 3.2 Revisões e auditorias Formalizará e controlará todas as solicitações de mudança no software tanto no desenvolvimento como após sua implantação e posterior manutenção. 05 3.3 Testes Detectarão possíveis falhas e erros no desenvolvimento e manutenção do software, mas somente isso não é o suficiente. 3.4 Coleta e análise de erros/defeitos Coleta é um conjunto de medidas técnicas e orientadas à administração das especificações do software. Dessa forma, com dados em mãos é possível compreender como os erros surgem e quais soluções dentro da engenharia de software podemos usar para sua eliminação. Leitura complementar Engenharia de Software – Uma abordagem profissional, 8.ª edição, por Roger Pressman e Bruce Maxim – capítulo 21, itens 1 e 2. TEMA 4 – SQA: PROCESSOS A garantia da qualidade de software (Software Quality Assurance – SQA) deve ser aplicada em todo o processo de engenharia de software. Avaliações, auditorias e revisões vão definir padrões para o projeto, procedimentos para a geração de relatórios de acompanhamento de erros e também a criação de uma documentação necessária que vai instruir a equipe com conclusões a respeito do projeto do software. Dentre elas, podemos sintetizar nos itens a seguir. 4.1 Revisões de software Métodos de validação de qualidade usados pela equipe de desenvolvimento do software. Eles filtrarão erros e inconsistências no processo de desenvolvimento, tendo como objetivos reportar melhorias no produto ou parte dele e tornar o trabalho técnico de desenvolvimento mais administrável. 4.1.1 Tipos de revisões Inspeções de projeto ou programa, que vão detectar erros nos requisitos, projeto ou código. Revisões de progresso, que informarão para os GPs do projeto o progresso geral do desenvolvimento (planejamento, custos e prazos). 06 Revisões de qualidade, que farão uma análise técnica do produto ou documentação para verificar se existem inconsistências entre a especificação e o projeto, entre o código e documentação e também assegurar se padrões de qualidade foram seguidos. 4.2 Revisão técnica formal Trata-se da principal atividade de um SQA, que tem por objetivos verificar se o software atende a todos os requisitos. Também visa garantir que o software está de acordo com padrões pré-definidos pelo usuário. Obter um software desenvolvido de forma uniforme e tornar os projetos de desenvolvimento mais administráveis também está entre os objetivos dessa técnica. Cada uma dessas revisões é conduzida na forma de uma reunião que segue os seguintes padrões: Restrições à reunião (duração de até 2h). Participação de 3 a 5 pessoas, com preparação antecipada. Foco: um produto ou um componente de software que se está desenvolvendo. Ao final da reunião, o objetivo será todos aceitarem ou rejeitarem, ou ainda, aceitarem temporariamente o que foi apresentado. Leitura complementar Engenharia de Software – Uma abordagem profissional. 8. ed. Por Roger Pressman e Bruce Maxim. Capítulo21, item 3. TEMA 5 – NORMAS: NBR ISO Um sistema de garantia da qualidade pode ser definido como a estrutura organizacional com responsabilidades, procedimentos, processos e recursos para implementação da gestão (ANS, 87). O controle de qualidade e o uso dos padrões baseados em normas ISO estão influenciando a forma como a qualidade está sendo usada nas últimas décadas, mas historicamente o assunto é muito antigo. Em relatos existentes há mais de quatro mil anos, os egípcios já estabeleciam um padrão de medida de comprimento conhecido como cúbito, que correspondia ao comprimento do braço do faraó reinante. Era utilizado assim como a unidade de medida nas construções egípcias. Porém, havia um problema quando um novo faraó assumia o poder, pois, assim, a unidade de medida 07 também se modificava. Interessante também era a punição para quem não aceitava a mudança: a morte. A ISO 9000 descreve elementos de garantia da qualidade em termos gerais que podem ser aplicados a qualquer empresa, independentemente do tipo de produtos ou serviços oferecidos. A necessidade das organizações se tornarem competitivas passa a ser enfatizada como motivo para a adoção de sistemas que resultem na qualidade. A ISO tem como princípios: Descrever elementos de garantia em termos genéricos, que podem ser aplicados aos negócios (produto ou serviço). Ter um modelo de qualidade que define responsabilidades, crie procedimentos e processos, capacite recursos para realização de uma gestão da qualidade. A empresa, ao adotar essa norma, com certeza vai ganhar produtividade e credibilidade, aumentando sua competitividade no mercado, podendo ser uma diferenciação e, desse modo, possibilitar à empresa buscar novas oportunidades em um mercado global. A certificação é possível seguindo-se os passos: 1. Empresa contrata consultoria específica. 2. Empresa se qualifica para a auditoria de acreditação da ISO. 3. É feita uma avaliação da conformidade do sistema de garantia da qualidade e não se certifica o SOFTWARE e sim a capacidade de desenvolvimento. Geralmente certifica-se por área de atividade da empresa (não na totalidade). 4. Uma vez qualificada (auditoria de validade), a empresa recebe o certificado. 5. Começam as auditorias de vigilância – semestrais ou anuais. A ISO 9000 surge como alternativa para melhoria do processo de desenvolvimento das empresas, gerando produtos e serviços mais competitivos nos mercados nacional e internacional. A certificação ISO surge como um diferencial para que a empresa consiga atingir melhores patamares e oportunidades num mercado que hoje se apresenta na forma global. 5.1 NBR 13596 A seguir mostramos quais são as características das normas NBR 13596, que são uma versão brasileira da ISO 9126. 08 Quadro 1 – Características da norma NBR 13596 Quadro 2 – Mais características da norma NBR 13596 Mas como podemos aplicar as normas ISO/NBR? Para avaliar um software segundo uma norma, deve-se tentar atribuir valores (notas ou conceitos) a cada uma das subcaracterísticas. Porém, é difícil aplicar uma norma sem se estar familiarizado com todo o processo de avaliação de software. Guias para a avaliação da qualidade descrevem, detalhadamente todos os passos para se avaliar um software. 5.2 ISO 9000-3 Trata-se de um guia, criada em 1993, para a aplicação da ISO 9001 voltada ao desenvolvimento, fornecimento e manutenção de um software. Ela especifica 09 os requisitos mínimos para assegurar a qualidade de produtos de software e serviços, porém não define modelos ou impõe sistemas de qualidade. Ela agrupa as atividades do ciclo de vida em nove categorias: análise crítica do contrato, especificação dos requisitos do comprador, planejamento do desenvolvimento, planejamento da qualidade, projeto e implementação, ensaios e validação, aceitação, cópia, entrega e instalação, manutenção. Ela agrupa as atividades relacionadas a suporte em nove situações: gestão de configuração, controle de documentos, registros da qualidade, medição, regras, práticas e convenções, ferramentas e técnicas, aquisição, produto de software incluído e treinamento. A seguir, o fluxo do processo para a certificação. Figura 2 – Fluxo do processo para certificação A seguir, um quadro com mais algumas normas ISO e as suas características. 010 Quadro 3 – Normas ISO e características Leitura complementar Engenharia de Software – Uma abordagem profissional 8. ed. Por Roger Pressman e Bruce Maxim. Capítulo 21, item 8. FINALIZANDO No desenvolvimento de softwares, a qualidade no processo deve existir desde o início. Possuir aferições em cada fase, com métricas, fatores de qualidade e padrões é de vital importância para o sucesso. Buscar inconsistências ter um bom SQA – Software Quality Assurance, realizar avaliações, auditorias, revisões constantemente e ter atividades de controle das mudanças fará toda a diferença no sucesso do desenvolvimento. Num mundo tão competitivo em que estamos, ter uma boa documentação e qualidade no produto que se está entregando selecionará a empresa, que crescerá ou não no mercado de software. 011 REFERÊNCIAS PRESSMAN, R.; MAXIM, B. Engenharia de Software: uma abordagem profissional. 8. ed. Porto Alegre: McGraw-Hill, 2016.