Gestão da qualidade do software Empenhada em assegurar que o nível de qualidade requerido de um produto de software é atingido Envolve a definição de normas e procedimentos de qualidade apropriados, e a garantia de que são seguidos Deve aspirar a desenvolver uma cultura da qualidade na empresa, onde a qualidade é vista como a responsabilidade de todos Universidade Portucalense Engenharia de Software ES07 2014-2015 1
O que é a qualidade? Simplificando, podemos dizer que qualidade significa que um produto cumpre as especificações Isto é um problema para o software Tensão entre os requisitos de qualidade do cliente (eficiência, fiabilidade, etc.) e os requisitos de qualidade do programador (facilidade de manutenção, reutilização, etc.) Alguns requisitos são difíceis de definir de forma não ambígua As especificações de software são normalmente incompletas e frequentemente inconsistentes Universidade Portucalense Engenharia de Software ES07 2014-2015 2
Âmbito da Gestão da qualidade A gestão da qualidade é especialmente importante em sistemas complexos. A documentação da qualidade é um registo do progresso do trabalho desenvolvido e suporta a continuidade do desenvolvimento quando a equipa de desenvolvimento é alterada Para sistemas mais pequenos, a gestão da qualidade necessita de menos documentação e deve focar em estabelecer uma cultura de qualidade Neste módulo vamos concentrar-nos principalmente nos aspetos dos sistemas de gestão da qualidade que afetam diretamente o trabalho dos programadores Universidade Portucalense Engenharia de Software ES07 2014-2015 3
Atividades da Gestão da qualidade Garantia de qualidade Estabelece procedimentos e normas organizacionais para a qualidade Planeamento da qualidade Seleciona as normas e procedimentos adequados a cada projeto. Pode alterar as normas e procedimentos gerais da empresa, conforme adequado Controlo da qualidade Assegura que as normas e procedimentos são respeitados Universidade Portucalense Engenharia de Software ES07 2014-2015 4
Qualidade do processo e do produto Processo: uma atividade que recebe entradas e gera saídas Por exemplo Processo de Compras: recebe requisições de compra de produtos e retorna os produtos pedidos A qualidade do produto desenvolvido é influenciada pela qualidade do processo de produção Isto é importante no desenvolvimento de software, porque alguns atributos de qualidade do produto são difíceis de avaliar Contudo, há uma relação complexa e mal compreendida entre os processos de desenvolvimento de software e a qualidade do produto final Universidade Portucalense Engenharia de Software ES07 2014-2015 5
Qualidade baseada no processo (1) Há uma ligação direta entre processo de produção e qualidade do produto no que se refere a mercadorias No caso do software é mais complexo, porque: A aplicação de capacidade e experiência individuais é particularmente importante no desenvolvimento de software Fatores externos, tais como a novidade de uma aplicação ou a imposição de prazos apertados, afetam a qualidade do produto É necessário ter cuidado para não impor normas inapropriadas, que poderiam prejudicar e não melhorar a qualidade do produto Universidade Portucalense Engenharia de Software ES07 2014-2015 6
Qualidade baseada no processo (2) Definir o processo Desenvolver o produto Avaliar a qualidade do produto Melhorar o processo N Qualidade OK S Institucionalizar o processo Universidade Portucalense Engenharia de Software ES07 2014-2015 7
Questões práticas Definir normas de processo sobre como devem ser efetuadas as revisões dos projetos, a gestão de configurações, etc. Monitorizar o processo de desenvolvimento para garantir que as normas são seguidas Enviar relatórios sobre o processo aos responsáveis Não usar práticas inadequadas só porque foram estabelecidas normas Faça-se o que está correto e alterem-se as normas Universidade Portucalense Engenharia de Software ES07 2014-2015 8
Garantia de qualidade e normas As normas são a chave para uma gestão efetiva da qualidade Podem ser internacionais, nacionais, da organização ou do projeto Normas de produto definem as características que todos os componentes devem possuir, por exemplo, um mesmo estilo de programação Normas de processo definem como deve ser implementado o processo de desenvolvimento do software Universidade Portucalense Engenharia de Software ES07 2014-2015 9
Problemas com as normas Podem não ser vistas como relevantes e atualizadas pelos engenheiros de software Frequentemente envolvem muito trabalho burocrático (muito preenchimento de papéis) Se não forem suportadas por ferramentas de software, a elaboração da documentação associada pode envolver muito trabalho manual Têm que acompanhar a evolução das ferramentas e soluções Universidade Portucalense Engenharia de Software ES07 2014-2015 10
Aplicabilidade das normas de Qualidade ISO 9001:2000 Quality Management Systems Requirements Um conjunto de normas internacionais para a gestão da qualidade Aplicável a uma gama ampla de organizações, desde indústrias de manufatura a serviços ISO 9001 é um modelo geral do processo de qualidade que pode ser adaptado a cada organização ISO 9001 é aplicável a organizações que concebem, desenvolvem e mantêm produtos, nomeadamente software Universidade Portucalense Engenharia de Software ES07 2014-2015 11
Certificação ISO 9001 As normas e procedimentos da qualidade devem estar documentados num manual da qualidade da organização Uma entidade certificadora externa pode certificar que o manual da qualidade da organização está de acordo com a norma ISO 9001 Alguns clientes requerem que os fornecedores sejam certificados pela norma ISO 9001 Universidade Portucalense Engenharia de Software ES07 2014-2015 12
Estrutura do Sistema da Qualidade Manual da Qualidade Diretrizes da empresa para a Qualidade Pode incluir ou fazer referência a procedimentos Procedimentos Descrevem quem executa as tarefas, a responsabilidade e autoridade: o que é feito, por quem, onde e quando Instruções de trabalho Detalhes de nível operacional e rotinas de execução de tarefas Registos Evidência objetiva da execução das tarefas Universidade Portucalense Engenharia de Software ES07 2014-2015 13
Procedimentos documentados Control of Documents (4.2.3) Control of Records (4.2.4) Internal Audits (8.2.2) Control of Nonconforming Product / Service (8.3) Corrective Action (8.5.2) Preventive Action (8.5.3) Instruções de trabalho Detalhes de nível operacional e rotinas de execução de tarefas Registos Evidência objetiva da execução das tarefas Universidade Portucalense Engenharia de Software ES07 2014-2015 14
Política da Qualidade Política da qualidade Intenções e diretivas globais da organização relativas à qualidade A direção tem que se comprometer com estes objetivos, e garantir que disponibilizará os recursos necessários Universidade Portucalense Engenharia de Software ES07 2014-2015 15
Requisitos gerais: Requisitos gerais do SGQ Identificar processos, a sua aplicação, sequência e interação Definir métricas: o que medir para avaliar a eficiência dos processos; o que se pretende é melhorar a eficiência dos processos, isto é, tornar a empresa mais eficiente Exemplos: orçamentos dos projetos, prazos de execução dos projetos, taxa de erros,... Definir objetivos dos valores medidos Definir ações preventivas e corretivas para garantir melhoria contínua Universidade Portucalense Engenharia de Software ES07 2014-2015 16
Documento Requisitos de documentação Informação e meio de suporte (papel, informático,...) Política da qualidade, manual da qualidade, procedimentos e instruções de trabalho, registos Manual da qualidade Define o âmbito, os procedimentos documentados e a interação entre processos Controlo de documentos Aprovação, revisão, alterações, acesso a versões aprovadas garantia de não utilização de documentos não aprovados ou obsoletos garantia de que a informação correta chega a quem dela precisa Controlo de registos Identificação, armazenamento, proteção, tempo de retenção Universidade Portucalense Engenharia de Software ES07 2014-2015 17
Normas de documentação Particularmente importante os documentos são a manifestação tangível do software Regras de processamento da documentação Relativas a como os documentos devem ser elaborados, validados e mantidos Regras de documentação Relativas ao conteúdo, estrutura e aspeto dos documentos Regras de comunicação de documentos Relativas à compatibilidade dos documentos eletrónicos Universidade Portucalense Engenharia de Software ES07 2014-2015 18
Normas de documentos Regras de identificação dos documentos Como os documentos são identificados de forma não ambígua Regras de estrutura dos documentos Estrutura padrão dos documentos de projeto Regras de apresentação dos documentos Definem fontes, estilos, uso de logótipos, etc. Regras de atualização dos documentos Definem como as alterações em relação às versões anteriores são refletidas no documento Universidade Portucalense Engenharia de Software ES07 2014-2015 19
Disponibilidade de recursos Humanos e materiais Gestão de recursos (1) Infraestrutura Edifícios, instalações, equipamentos, serviços de apoio Ambiente de trabalho Necessário para garantir a conformidade dos produtos com as especificações Universidade Portucalense Engenharia de Software ES07 2014-2015 20
Gestão de recursos (2) Recursos humanos Definir as competências necessárias para desempenhar cada tarefa que afeta a qualidade do produto Plano de formação Para garantir o preenchimento de lacunas nas competências dos colaboradores, suportando a melhoria contínua A eficácia das ações de formação tem que ser avaliada Garantir a manutenção de todos os registos correspondentes Universidade Portucalense Engenharia de Software ES07 2014-2015 21
Realização do produto (1) Planeamento da realização do produto Definir processos de produção, objetivos da qualidade, atividades de verificação, validação, inspeção, medição e aceitação; definição dos registos correspondentes Processos relacionados com o cliente Determinação dos requisitos, técnicos e não técnicos, explícitos e implícitos, normas e legislação aplicáveis Análise crítica dos requisitos; eventual alteração/negociação Comunicação com o cliente Universidade Portucalense Engenharia de Software ES07 2014-2015 22
Projeto e desenvolvimento Realização do produto (2) Planeamento; fases do projeto; atividades de controlo; responsabilidades e autoridade Entradas (requisitos, experiência, documentos diversos) e saídas (de acordo com os requisitos) Revisão do projeto: em momentos pré-definidos, fazer uma análise crítica da evolução do projeto, comparar o realizado com o previsto, identificar problemas e propor soluções Alterações: como controlar e como comunicar; como garantir que TODOS os interessados sabem das alterações introduzidas; como fazer a atualização da documentação Avaliação do projeto: no final, fazer uma análise crítica do que correu bem e mal, e o que é necessário fazer para que no futuro tudo corra melhor; é fundamental, é a garantia de melhoria contínua do processo Universidade Portucalense Engenharia de Software ES07 2014-2015 23
Gestão da qualidade e desenvolvimento de software Processo de desenvolvimento de software D 1 D 2 D 3 D 4 D 5 Processo de gestão da qualidade Normas e procedimentos Plano de qualidade Relatórios de revisão do projeto Universidade Portucalense Engenharia de Software ES07 2014-2015 24
Realização do produto (3) Aquisições (inclui subcontratação) Seleção de fornecedores Especificação das aquisições Inspeção à chegada Controlo dos dispositivos de medida (não aplicável ao sw) Que medidas realizar Garantir que os dispositivos estão calibrados Produção e fornecimento Planos, instruções de trabalho, qualificação do pessoal Propriedade do cliente Identificação, embalagem, armazenamento,... Universidade Portucalense Engenharia de Software ES07 2014-2015 25
Satisfação dos clientes Auditorias internas Medição, análise, melhoria Contra a norma e o SGQ Medição e monitorização dos processos No mínimo, monitorizar; podendo, medir Objetivo: Verificar que os objetivos são alcançados; senão, definir ações corretivas Medição e monitorização do produto Monitorizar e medir características do produto Objetivo: Verificar que os objetivos são alcançados; senão, definir ações corretivas Feito em fases definidas; especial na entrega ao cliente Universidade Portucalense Engenharia de Software ES07 2014-2015 26
Produto não conforme Controlo do produto não conforme (procedimento documentado) Identificar claramente o produto não conforme, para evitar o uso involuntário Exemplo: identificar claramente módulos de software que contêm erros, para que não sejam usados como sendo bons Tratamento da não-conformidade: como proceder com a não conformidade; como garantir que não se repete Análise de dados Mostrar que (se...) o SGQ é eficaz Avaliar onde é possível melhorar Satisfação dos clientes, conformidade dos produtos, processos Universidade Portucalense Engenharia de Software ES07 2014-2015 27
Melhorias Melhoria contínua Ação corretiva Corrigir uma não-conformidade que surgiu Garantir a eficácia da correção Ação preventiva Atuar antes das não-conformidades acontecerem, para evitar que aconteçam Sequência normal de ações: É identificada uma não-conformidade Desencadeia-se uma ação corretiva imediata Estuda-se uma ação preventiva para garantir que não volta a acontecer Universidade Portucalense Engenharia de Software ES07 2014-2015 28
Plano da qualidade do produto (1) Um plano de qualidade estabelece as características desejadas para o produto, e a forma como vão ser avaliadas Define as características mais importantes O plano de qualidade deve definir o processo de avaliação da qualidade Deve estabelecer que normas da organização devem ser aplicadas e, quando necessário, que novas normas devem ser usadas Universidade Portucalense Engenharia de Software ES07 2014-2015 29
Plano da qualidade do produto (2) Estrutura do plano da qualidade do produto Apresentação do produto Planos do produto Descrição dos processos Objetivos de qualidade Riscos e gestão do risco Os planos da qualidade do produto devem ser curtos, caso contrário ninguém os lê Universidade Portucalense Engenharia de Software ES07 2014-2015 30
Revisões da qualidade O objetivo é encontrar defeitos e inconsistências no sistema Quaisquer documentos produzidos no processo podem ser revistos e avaliados As equipas de auditoria/revisão devem ser pequenas, e as auditorias/revisões devem ser de curta duração As auditorias e revisões aos projetos devem ser registadas, e os registos devem ser mantidos Universidade Portucalense Engenharia de Software ES07 2014-2015 31
Controlo da qualidade Os comentários feitos durante a revisão ao projeto devem ser classificados Não requer qualquer ação corretiva Registar para ação corretiva Reconsiderar o desenho/conceção globais. O problema afeta outras partes do sistema. Os erros de requisitos e especificação podem ter que ser comunicados ao cliente Universidade Portucalense Engenharia de Software ES07 2014-2015 32
Medida e métricas de software A medida de software visa obter um valor numérico para um atributo de um produto ou processo de software Isto permite fazer comparações entre diferentes técnicas e processos Embora algumas empresas tenham introduzido programas de medidas, a maior parte das organizações não faz uso sistemático das medidas de software Há poucas normas estabelecidas nesta área Universidade Portucalense Engenharia de Software ES07 2014-2015 33
Métricas de software Qualquer medida que diz respeito a um sistema de software, processo ou documentação relacionada Número de linhas de código de um programa O número de pessoas-dia necessário para desenvolver um componente Permitem quantificar o software e o processo de desenvolvimento de software Podem ser usadas para antecipar atributos do produto, ou para controlar o processo de desenvolvimento de software Podem ser usadas para fazer previsões gerais, ou para identificar componentes anómalos Universidade Portucalense Engenharia de Software ES07 2014-2015 34
Pressupostos das métricas Uma propriedade do software pode ser medida. Existe uma relação entre o que medimos e o que queremos saber. Só podemos medir atributos internos, mas frequentemente estamos interessados em atributos externos. Esta relação está formalizada e foi validada. Pode ser difícil relacionar o que pode ser medido com os atributos de qualidade externos desejados. Universidade Portucalense Engenharia de Software ES07 2014-2015 35
Atributos internos e externos Manutibilidade Número de parâmetros dos métodos Fiabilidade Número de linhas de código do programa Portabilidade Número de mensagens de erro Usabilidade Tamanho do manual do utilizador Universidade Portucalense Engenharia de Software ES07 2014-2015 36
O processo de medida Um processo de medida do software pode fazer parte de um processo de controlo da qualidade A informação recolhida durante este processo deve ser mantida como um recurso da organização Tendo sido implementada uma base de dados de medições, podem fazer-se comparações entre projetos Universidade Portucalense Engenharia de Software ES07 2014-2015 37
O processo de medida Escolher as medições a realizar Analisar os componentes anómalos Selecionar os componentes a serem avaliados Identificar as medidas não normais Medir as características do componente Universidade Portucalense Engenharia de Software ES07 2014-2015 38
Pontos essenciais (1) A gestão da qualidade do software refere-se a assegurar que o software cumpre as normas de qualidade Os procedimentos da qualidade devem ser documentados num manual de qualidade da organização As normas de desenvolvimento de software são uma formalização das melhores práticas As revisões são a forma mais usada para avaliar a qualidade do software Universidade Portucalense Engenharia de Software ES07 2014-2015 39
Pontos essenciais (2) A medida de software recolhe informação acerca do processo de desenvolvimento e do produto de software As métricas de qualidade do produto devem ser usadas para identificar componentes potencialmente problemáticos Não há métricas de software normalizadas e universalmente aplicáveis Universidade Portucalense Engenharia de Software ES07 2014-2015 40
Normas de Qualidade ISO 9000-3 Guidelines for Software Development, Supply, and Maintenance of Software Interpreta a norma ISO 9001 ISO 9126 Software Product Evaluation Universidade Portucalense Engenharia de Software ES07 2014-2015 41
Características da qualidade do produto - ISO 9126 (1/6) Funcionalidade - capacidade para satisfazer necessidades explícitas e implícitas Adequação capacidade de cumprir as funções especificadas e satisfazer os objetivos do utilizador Exatidão (Accuracy) o produto gera resultados precisos ou dentro do esperado Interoperabilidade capacidade de interagir e interoperar com outros sistemas, de acordo com o especificado Segurança capacidade para prevenir o acesso não autorizado Conformidade observância de normas, convenções ou regras estabelecidas Universidade Portucalense Engenharia de Software ES07 2014-2015 42
Características da qualidade do produto - ISO 9126 (2/6) Fiabilidade capacidade do produto manter um nível de eficiência especificado, quando usado nas condições especificadas Maturidade indicação de baixa frequência de falhas Tolerância a falhas capacidade do produto para manter determinados níveis de desempenho mesmo na presença de problemas Recuperabilidade facilidade de recuperação após falha capacidade do produto para restabelecer o nível de desempenho desejado e recuperar dados em caso de ocorrência de falha Universidade Portucalense Engenharia de Software ES07 2014-2015 43
Características da qualidade do produto - ISO 9126 (3/6) Usabilidade capacidade do produto para ser compreendido, aprendido, usado e ser atrativo para o utilizador, quando usado em condições especificadas Inteligibilidade facilidade do utilizador para reconhecer a lógica de funcionamento do produto e sua aplicação Facilidade de aprendizagem (apreensibilidade) facilidade encontrada pelo utilizador para aprender a utilizar o produto Operacionalidade facilidade para operar e controlar o produto Universidade Portucalense Engenharia de Software ES07 2014-2015 44
Características da qualidade do produto - ISO 9126 (4/6) Eficiência Comportamento com relação ao tempo (time behaviour): medida do tempo de resposta e de processamento ou taxas de processamento (throughput), ao executar as funções prescritas Comportamento com relação ao uso de recursos (resource behaviour): medida da quantidade de recursos necessários (CPU, disco e memória, entre outros) e a duração do seu uso ao executar as funções prescritas Universidade Portucalense Engenharia de Software ES07 2014-2015 45
Características da qualidade do produto - ISO 9126 (5/6) Manutibilidade facilidade de manutenção Facilidade de análise (Analisabilidade) esforço necessário para diagnosticar deficiências ou causas de falhas, ou localizar as partes a serem modificadas para corrigir os problemas Facilidade de modificação (Modificabilidade) esforço necessário para realizar alterações, remover falhas ou para adequar o produto a eventuais mudanças de ambiente operacional Estabilidade risco de efeitos inesperados provenientes de modificações Facilidade de teste (Testabilidade) esforço necessário para testar o software alterado Universidade Portucalense Engenharia de Software ES07 2014-2015 46
Características da qualidade do produto - ISO 9126 (6/6) Portabilidade Adaptabilidade facilidade de se adaptar o produto para funcionar em outros ambientes diferentes do originalmente especificado Facilidade de Instalação esforço necessário para se instalar o produto Capacidade para coexistir capacidade do produto para coexistir com outros produtos de software independentes, partilhando recursos num mesmo ambiente Facilidade para substituir (replaceability) esforço necessário para usar o produto em substituição de outro produto, previamente especificado Universidade Portucalense Engenharia de Software ES07 2014-2015 47
Fiabilidade Dependabilidade Probabilidade de funcionamento sem falhas do sistema ao longo de um determinado período de tempo, num dado ambiente, e com objetivos especificados Disponibilidade Probabilidade de que o sistema, num dado momento, esteja operacional e apto a fornecer os serviços requeridos É possível ter grande disponibilidade com baixa fiabilidade, se as falhas forem reparadas rapidamente Segurança (safety) Capacidade do sistema operar, normal ou anormalmente, sem perigo de causar ferimentos, perdas de vidas, ou prejuízos ao ambiente do sistema Segurança (security) Capacidade do sistema se proteger de ataques externos, deliberados ou não Universidade Portucalense Engenharia de Software ES07 2014-2015 48