Introdução Engenharia de Software O principal objetivo da Engenharia de Software (ES) é ajudar a produzir software de qualidade; QUALIDADE DE SOFTWARE Empresas que desenvolvem software de qualidade são mais competitivas; Empresas que utilizam software de alta qualidade podem, em geral, oferecer um melhor serviço a um preço mais competitivo. Prof.: Fábio Arruda O que é qualidade? O que é qualidade? Qualidade, de maneira simplista, significa que um produto deve atender às suas especificações. Três pontos podem ser enfatizados a partir da definição anterior: Requisitos de Software Padrões Requisitos Implícitos Visão Popular de Qualidade Visão Profissional de Qualidade Qualidade é vista como luxo, classe e questão de gosto Qualidade está relacionada com os requisitos designados para o produto Produtos caros, sofisticados e mais complexos são considerados de maior qualidade que produtos similares mais simples Qualidade pode ser discutida, sentida e julgada, mas não pode ser medida, controlada, nem gerenciada.. As não conformidades aos requisitos são consideradas defeitos, falta de qualidade Qualidade pode e deve ser definida, medida, monitorada, gerenciada e melhorada. 1
Visões sobre Qualidade Modelo de qualidade de sofware Isso é problemático para os sistemas de software Formaliza a qualidade de software; Existe uma tensão entre os requisitos de qualidade do usuário (eficiência, confiabilidade, etc.), os requisitos de qualidade do desenvolvedor (facilidade de manutenção, reusabilidade, etc.) e os requisitos da organização (cumprimento de prazo, boa previsão de custo, boa produtividade); Organiza os atributos e permite avaliar a qualidade do Permite entender como os diferentes aspectos (características) contribuem para a qualidade do produto como um todo Modelo de qualidade MacCall Gerenciamento de qualidade de software Em 1997, MacCall et all. propuseram um modelo para avaliação de qualidade de software Dedica-se a assegurar que o nível requerido de qualidade seja atingido em um produto de Corretude Confiabilidade Eficiência Integridade Usabilidade Manutenibilidade Flexibilidade Testabilidade Envolve a definição de padrões e procedimentos apropriados de qualidade e a garantia de que sejam seguidos. Portabilidade Reusabilidade Interoperabilidade Deve objetivar o desenvolvimento de uma cultura de qualidade onde a qualidade é vista como uma responsabilidade de todos. Atividade de gerenciamento de qualidade Garantia de qualidade Estabelece procedimentos e padrões organizacionais para qualidade. Planejamento de qualidade Seleciona procedimentos e padrões aplicáveis para um projeto específico e o modifica quando necessário. Controle de qualidade Assegura que os procedimentos e os padrões sejam seguidos pela equipe de desenvolvimento de O gerenciamento de qualidade deve ser separada do gerenciamento de projeto para assegurar independência. Qualidade de processo e de produto A qualidade de um produto desenvolvido é influenciado pela qualidade do processo de produção. Isso é importante no desenvolvimento de software, visto que os atributos de qualidade de produtos são difíceis de avaliar. Contudo, existe um relacionamento muito complexo e fracamente compreendido entre processos de software e qualidade de produto. 2
Qualidade baseada em processo Qualidade PRÁTICA de processo Definir padrões de processo, tais como o modo como as revisões devem ser conduzidas, o gerenciamento da configuração, etc. Monitorar o processo de desenvolvimento para assegurar que os padrões estejam sendo seguidos. Relatar sobre o processo para a gerência de projeto e para o comprador do Não usar práticas inadequadas simplesmente porque padrões foram estabelecidos. Garantia de qualidade e padrões Importância dos padrões Os padrões são a chave para o gerenciamento efetivo de qualidade. Eles podem ser padrões internacionais, nacionais, organizacionais ou de projeto. Padrões de produto definem características que todos os componentes devem exibir, por exemplo, um estilo de programação comum. Padrões de processo definem como o processo de software deve ser institucionalizados. Engloba as melhores práticas evita a repetição de erros do passado. Eles são um framework para os processos de garantia de qualidade eles envolvem a verificação de aderência aos padrões. Eles fornecem continuidade um pessoal novo pode compreender a organização, pela compreensão dos padrões que são usados. Problemas com padrões Podem não ser vistos como relevantes ou atualizados pelos engenheiros de Envolvem, freqüentemente, muito preenchimento de formulários burocráticos. Se não são apoiados por ferramentas de software, o tedioso trabalho manual é, muitas vezes, envolvido para manter a documentação associada aos padrões. Norma ISO/IEC 9126 Norma ISO/IEC 9126/1991 ou NBR 13596: fornece um modelo de propósito geral o qual define 6 categorias de características de qualidade de sw que são, por sua vez, divididas em subcaracterísticas. Subcaracterísticas podem ser avaliadas por um conjunto de métricas. É uma referência mundial para qualidade de sw ISO: The International Standardization Organization, fundada em 1947, coordena o trabalho de 127 países membros para promover a padronização de normas técnicas em âmbito mundial IEC: The International Electrotechnical Commission, fundada em 1906, conta com mais de 50 países e publica normas internacionais relacionadas com eletricidade, eletrônica e áreas relacionadas 3
Planejamento de qualidade Planos de qualidade Um plano de qualidade estabelece as qualidades do produto desejadas e como elas são avaliadas, e define os atributos de qualidade mais significativos. O plano de qualidade deve definir o processo de avaliação de qualidade. Deve estabelecer quais padrões organizacionais devem ser aplicados e, onde necessário, definir novos padrões a serem usados. Estrutura do plano de qualidade Apresentação do produto; Planos de produto; Descrições de processo; Metas de qualidade; Riscos e gerenciamento de riscos. Os planos de qualidade devem ser documentos breves e sucintos. Se eles forem muito longos, ninguém os lerá. Controle de qualidade Envolve a verificação do processo de desenvolvimento de software para assegurar que procedimentos e padrões estão sendo seguidos. Existem duas abordagens para controle de qualidade Revisões de qualidade; Avaliação automatizada e medições de Revisões de qualidade É o principal método de validação da qualidade de um processo ou de um produto. Um grupo examina uma parte ou o todo de um processo ou de um sistema, bem como sua documentação para descobrir problemas potenciais. Existem diferentes tipos de revisão com objetivos diferentes: Inspeções para remoção de defeitos (produto); Revisões para avaliação de progresso (produto e processo); Revisões de qualidade (produto e padrões). Tipos de revisão O processo de medição Um processo de medição de software pode ser parte de um processo de controle de qualidade. Os dados coletados durante este processo devem ser mantidos como um recurso da organização. Uma vez que um banco de dados de medições foi estabelecido, comparações entre projetos tornam-se possíveis. 4
Processo de medição de produto Suposições de métricas Uma propriedade de software pode ser medida. Existe o relacionamento entre o que podemos medir e o que queremos conhecer. Podemos somente medir atributos internos, mas estamos, muitas vezes, mais interessados em atributos externos de Pode ser difícil relacionar o que pode ser medido em atributos externos de qualidade desejáveis. 5