Post on 16-Oct-2021
Slide 1
Gerenciamento de Qualidade
Engenharia de Software
2o. Semestre de 2005
UNIVERSIDADE ESTADUAL PAULISTAINSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA
Slide 2
Gerenciamento de Qualidade
● Gerenciar a qualidade tanto do processo como do produto de software
Slide 3
Tópicos
● Garantia e padrões de qualidade
● Planejamento de qualidade
● Controle de qualidade
● Medição e métricas de software
Slide 4
Gerenciamento da qualidade de software
● Preocupa-se em garantir que o nível exigido de qualidade do produto de software seja atingido
● Envolve definir procedimentos e padrões de qualidade que devem ser seguidos
● Devem ajudar a desenvolver uma “cultura de qualidade” onde qualidade deve ser vista como responsabilidade de todos.
Slide 5
O que é qualidade?
● Classicamente, a noção de qualidade é a de que o produto desenvolvido deve cumprir com suas especificações
● Para sistemas de software, existem problemas:• O desenvolvedor também possui requisitos de qualidade (por
ex. facilidade de manutenção)
• Alguns requisitos de qualidade são difíceis de serem especificados de forma não ambígua. (Ex. facilidade de manutenção).
• Especificações de software são usualmente incompletas e inconsistentes.
Slide 6
O compromisso com a qualidade
● Não se pode esperar por uma especificação perfeita antes de implantar procedimentos de gerenciamento de qualidade.
● Deve-se implantar procedimentos para melhorar a qualidade dentro das restrições impostas por uma especificação imperfeita.
● O gerenciamento de qualidade não se preocupa somente em reduzir defeitosreduzir defeitos, se preocupa também com outras características de qualidadeoutras características de qualidadedo produto.
Slide 7
Atividades do gerenciamento de qualidade
● Garantia de qualidade• Estabelecer uma estrutura de procedimentos e de padrões
organizacionais para qualidade.
● Planejamento de qualidade• Seleção e ajustes de procedimentos e de padrões de qualidade para
um projeto específico.
● Controle de qualidade• Garantir que os procedimentos e padrões estão sendo seguidos pela
equipe de desenvolvimento de software.
O gerenciamento de qualidade deve ser uma atividade separada do gerenciamento de projeto, de modo que a qualidade não seja comprometida.
Slide 8
Gerenciamento de qualidade e desenvolvimento de software
Processo de desenvolvimento
de software
Processo de gerenciamento de
qualidade
Padrões eprocedimentos
Plano de qualidade
Relatórios de revisãoDe qualidade
Slide 9
ISO 9000
● Padrão internacional para o gerenciamento de qualidade.
● Aplicável a uma gama de organizações, desde a industria de manufatura até as indústrias de serviços.
● ISO 9001 é aplicável a organizações que projetam, desenvolvem e dão manutenção a produtos
● ISO 9001 é um modelo genérico de um processo de qualidade. Deve ser instanciado por cada organização.
Slide 10
ISO 9001 – áreas cobertas
TreinamentoAuditorias internas de qualidade
Identificação e facilidade de rastreamento do produto
Produtos fornecidos para o comprador
Ação corretivaRevisão do contrato
Status de inspeção e testeEquipamentos de inspeção e teste
Registros de qualidadeControle de documento
Técnicas estatísticasPrestação de serviços
ComprasManuseio, armazenamento, embalagem e entrega
Controle de projetoControle de produto que não estão em conformidade
Sistema de qualidadeResponsabilidade de gerenciamento
Slide 11
Certificação ISO 9000
● Os procedimentos de garantia de qualidade devem ser documentados em um manual de qualidade organizacional
● Instituições independentes podem certificar que o processo de qualidade de uma organização, segundo o manual, está em conformidade com a ISSO 9001
● Cada vez mais, os clientes procuram a certificação da ISO 9000 em fornecedores, como indicativo do nível de seriedade com que consideram a qualidade.
Slide 12
● Padrões são a chave para gerenciamento de qualidade efetivos.
● Podem ser internacionais, nacionais, organizacionais ou padrões de projeto.
● Padrões de produto são os padrões que se aplicam ao produto de software em desenvolvimento. Ex: estilo de programação, etc.
● Padrões de processo definem os processos a serem seguidos durante o desenvolvimento de software. Ex. definições de especificação, processos de projeto e validação, e documentos que devem ser gerados
Garantia e padrões de qualidade
Slide 13
● Encapsulam as melhores práticas – evitam a repetição de erros passados.
● Infra estrutura para o processo de garantia de qualidade – envolve a verificação de conformidade com os padrões
● Ajudam em termos de continuidade – todos os engenheiros de uma organização adotam as mesmas práticas – o esforço de aprendizado é reduzido.
Importância dos padrões
Slide 14
Padrões de produto e de processo
Submissão de documentos a CM (gerenciamento de configuração)
Estrutura do documento de requisitos
Conduta de revisão de projetoFormulário de revisão de projeto
Padrões de processoPadrões de produto
Processo de liberação de versãoModelo de cabeçalho de procedimento
Processo de registro de testeFormulário de pedido de mudança
Processo de controle de mudançaModelo do plano de projeto
Processo de aprovação do plano de projetoEstilo de programação em Java
Slide 15
● A qualidade de um produto desenvolvido é diretamente influenciado pela qualidade do processo de produção.
● Particularmente importante em desenvolvimento de software, uma vez que é difícil avaliar atributos de qualidade do produto sem utilizar o software por um período longo.
● Contudo, a relação entre a qualidade de processo e do produto em produção é complexa – a modificação do processo nem sempre conduz à melhoria da qualidade.
Qualidade de produto e de processo
Slide 16
Qualidade baseada em processo
● Ligação direta entre o processo e produto em produtos manufaturados.
● Mais complexo em software pois:• A aplicação de habilidades individuais e experiências é
particularmente importante no desenvolvimento de software.• Fatores externos, tais como novidade de uma aplicação ou
pressão comercial para a liberação rápida de um produto, podem afetar o produto.
Slide 17
Qualidade baseada no processo
Defina o processoDesenvolvaO produto
Avalie a qualidade Do produto
Melhore o processo
Padronize oprocesso
QualidadeOK?
simnão
Slide 18
● Definição de padrões de processo, como por exemplo: como conduzir revisões, quando devem ocorrer, etc.
● Monitorar o processo de desenvolvimento, a fim de assegurar que os padrões estão sendo seguidos.
● Relatar o processo de software para a gerência de projeto e para o comprador do software.
Atividades de gerenciamento de qualidade de processo
Slide 19
Planejamento de qualidade
● Um plano de qualidade deve estabelecer as qualidades desejadas para o produto e como essas qualidades devem ser avaliadas.
● Deve definir o processo de garantia de qualidade.
● Deve selecionar os padrões organizacionais apropriados a um determinado produto e processo de desenvolvimento e, se necessário, definir novos padrões.
Slide 20
Estrutura do plano de qualidade
● Introdução sobre o produto
● Planos para o produto
● Descrições de processo
● Metas de qualidade
● Riscos e gerenciamento dos riscos.
Planos de qualidade devem ser documentos sucintos.
Slide 21
Atributos de qualidade do software
Facilidade de usoTestabilidadeProteção
PortabilidadeFacilidade de compreensão
Segurança
Facilidade de aprendizado
ComplexidadeRobustez
EficiênciaModularidadeCapacidade de recuperação
Facilidade de reuso
Facilidade de adaptação
Confiabilidade
Slide 22
Controle de qualidade
● Supervisionar o processo de desenvolvimento de software para garantir que os procedimentos e os padrões de garantia de qualidade seja seguidos.
● Duas abordagens para o controle de qualidade• Revisões de qualidade
• Avaliação automática de software e medição quantitativa de alguns atributos de software
Slide 23
Revisões de qualidade
● O principal método de validar a qualidade de um processo ou de um produto.
● Revisores examinam partes ou todo o processo ou o sistema e sua documentação para encontrar potenciais problemas.
● Existem diferentes tipos de revisões com diferentes objetivos• Inspeções para a remoção de defeitos (produto)• Revisões para avaliar o progresso (produto e processo)• Revisões de qualidade (produto e padrões)
Slide 24
Tipos de revisões
Realizar uma análise técnica dos componentes ou da documentação do produto, a fim de encontrar inconsistências entre a especificação e o projeto, código ou documentação dos componentes e garantir que os padrões de qualidade foram seguidos
Revisões de qualidade
Fornecer informações à gerência sobre o progresso geral do projeto. Essa é uma revisão de processo e de produto, e se preocupa com custos, planos e prazos.
Revisões de progresso
Detectar erros detalhados nos requisitos, nos projetos ou no código. A revisão deve ser orientada por uma lista de possíveis erros,
Inspeções de projeto ou programa
ObjetivoTipo de revisão
Slide 25
Medição e métricas de software
● Medição de software se preocupa em obter um valor numérico para alguns atributos de um produto ou de um processo de software.
● Permite comparações objetivas entre técnicas e processos.
● Algumas organizações introduziram programas de medições, porém o uso sistemático de medições ainda não é comum.
● Existem poucos padrões nesta área.
Slide 26
● Qualquer tipo de medição que se refira a um sistema de software, processo ou documentação relacionada• Linhas de código em um programa, número de pessoas-dia
necessário para desenvolver um componente, número de defeitos relatados em um produto de software fornecido, etc.
● Permite que o sofware e o processo de desenvolvimento de software sejam quantificados
● Medidas do processo de software ou produto
● Podem ser usadas para estimar atributos do produto (métricas preditivas) ou controlar o processo de software (métricas de controle).
Métrica de Software
Slide 27
Métricas preditivas e de controle
Processo desoftware
Decisões de gerenciamento
Medições decontrole
Produtos desoftware
Medições preditivas
Slide 28
● Uma propriedade do software pode ser medida
● Existe um relacionamento entre o que podemos medir e o que queremos saber.
● Esse relacionamento pode ser formalizado e validado.
Pode ser difícil relacionar o que pode ser medido com os atributos de qualidade desejados.
Suposições para medidas
Slide 29
Relação entre atributos internos e externos de software
Manutenibilidade
Confiabilidade
Portabilidade
Facilidade de uso
Número de parâmetros deprocedimento
Complexidade ciclomática
Tamanho do programa em
Linhas de código
Número de mensagens de erro
Extensão do manual do usuário
Slide 30
O processo de medição
● Um processo de medição pode ser parte de um processo de controle de qualidade.
● Dados coletados durante esse processo devem ser mantidos como um recurso organizacional (dados históricos)
● Uma vez estabelecido um banco de dados de medição, comparações entre projetos podem ser efetuadas e métricas específicas podem ser aprimoradas.
Slide 31
● Métricas devem predizer a qualidade do produto
● Classes de métricas de produto• Métricas dinâmica – coletadas por medições feitas de um
programa em execução• Métricas estáticas – coletadas por medições feitas das
representações do sistema (projeto, programa, documentação)
Métricas dinâmicas ajudam a avaliar a eficiência e confiabilidade; métricas estáticas ajudam a avaliar a complexidade, facilidade de compreensão e facilidade de manutenção.
Métricas de produto
Slide 32
Métricas estáticas e dinâmicas
● Métricas dinâmicas estão intimamente relacionadas com os atributos de qualidade do software• É relativamente fácil medir o tempo de resposta de um sistema
(atributo de performance) ou número de falhas (atributo de confiabilidade)
● Métricas estáticas tem um relacionamento indireto com atributos de qualidade• É preciso derivar um relacionamento entre essas métricas e
propriedades como complexidade, legibilidade e facilidade de manutenção.
Slide 33
Métricas de produto de software
Medida do tamanho de um programa.
Tamanho do código
Medida da complexidade de controle de um programa. Pode estar relacionada com a facilidade de compreensão.
Complexidade ciclomática
DescriçãoMétricas de software
Ifs de muita profundidade são de difícil compreensão e levam a erros
Profundidade de declarações condicionais aninhadas
Mede o comprimento das variáveis. Quanto maior, mais compreensível o programa.
Extensão dos identificadores
Fan-in - Medida do número de funções que chamam outra função. Fan-out é o número de funções que são chamada pela função.
Fan-in/Fan-out
Slide 34
Métricas de software orientado a objetos
Quanto mais profunda, mais complexo é o projeto.
Profundidade da árvore de herança
Idem ao software convencional. Deve-se fazer uma distinção entre as chamadas de outros métodos dentro do objeto e chamadas de métodos externos.
Método de Fan-in/Fan-out
DescriçãoMétricas de software
Um alto valor para essa métrica indica que a superclasse utilizada pode não ser uma classe principal apropriada para a subclasse.
Número de operações sobrepostas (overloading)
Número de métodos em uma classe ponderados pela complexidade de cada método.
Métodos ponderados por classes
Slide 35
Análise de medições
● A dificuldade está em compreender o que as medidas significam • A análise dos dados coletados é bastante difícil
● Profissionais da área de estatística podem oferecer ajuda valiosa.
● A Análise dos dados deve levar em conta as circunstâncias locais.
Slide 36
● Entender os processos existentes● Introduzir alterações no processo para atingir objetivos
organizacionais que, geralmente, são melhorar a qualidade do produto, reduzir os custos e o tempo de desenvolvimento
● A maioria da literatura relacionada a melhoria de processo tem se concentrado na redução de defeitos. Isso reflete a grande preocupação da indústria em relação a qualidade de seus produtos.
● Outros atributos do processo podem ser o alvo de melhorias.
Melhoria de processo
Slide 37
Atributos de processo
Com que rapidez pode ser concluído o processo de entrega de um sistema?
Rapidez
Até que ponto as atividades do processo podem ser apoiadas por ferramentas CASE?
Facilidade de suporte
O processo pode continuar , mesmo que surjam problemas inesperados?
Robustez
O processo está projetado de tal maneira que seus erros sejam evitados ou identificados antes que resultem em erros no produto?
Confiabilidade
O processo pode evoluir para refletir melhorias de processo identificadas?
Facilidade de manutenção
As atividades de processo culminam em resultados nítidos, de modo que o processo do processo seja externamente visível?
Visibilidade
Até que ponto o processo está explicitamente definido e com que facilidade de pode compreender a definição do processo?
Facilidade de compreensão
DescriçãoCaracterísticas de processo
Slide 38
● Análise de processo• Analisar e modelar (quantitativamente, se possível)
processos existentes
● Identificação de melhoria• Identificar gargalos relativos a qualidade, ao prazo e ao custo
● Introdução de mudançã de processo• Modificar o processo para remover os gargalos identificados
● Treinamento em mudanças de processo• Treinar o pessoal envolvidos em novas propostas de
processo
● Ajuste de mudanças• Descobrir pequenos problemas e propor modificações no
processo
Estágios de melhoria de processo
Slide 39
● A qualidade de processo e qualidade de produto estão intimamente relacionados
● Um bom processo geralmente produz bons produtos
● Em algumas classes produtos manufaturados, o processo é o principal determinante da qualidade do produto
● Para atividades baseadas em projeto, outros fatores também estão envolvidos, em especial a habilidade dos projetistas.
Qualidade de processo e de produto
Slide 40
Principais fatores da qualidade de produtos de software
Qualidade do produto
Tecnologia de
desenvolvimento
Qualidade doprocesso
Custo, tempo e
cronograma
Qualidade dopessoal
Slide 41
● Fundado pelo Dept. de Defesa dos EUA, junto à Universidade Carnegie Mellon
● A missão é a transferência de tecnologia de software, para capacitação das organizações que recebem fundos do DoD para grandes projetos de defesa.
● Modelo de maturidade foi proposto em meados da década de 80, e refinado no início da década de 90.
● O resultado desse trabalho tem tido grande influência na melhoria do processo de software
O Intituto de Engenharia de Software (SEI)
Slide 42
O Modelo de Maturidade de Capacitação da SEI
Nível 1Inicial
Nível 2Repetível
Nível 3Definido
Nível 4Gerenciado
Nível 5Otimização
Slide 43
● Inicial• Essencialmente não controlado
● Repetível• Procedimentos de gerenciamento de produto definidos e usados
● Definido• Procedimentos e estratégias de gerenciamento de projeto definidos e
usados
● Gerenciado• Estratégias de gerenciamento de qualidade definidas e usadas.
● Otimização• Estratégias de melhoria do processo definidas e usadas
Níveis do modelo de maturidae
Áreas-chavede processo
Gerenciamento de configuração de softwareGarantia de qualidade de softwareGerenciamento de contrato de softwareAcompanhamento e supervisão do projeto de softwarePlanejamento de projeto de softwareGerenciamento de requisitos
Revisão por paresCoordenação entre gruposEngenharia de produto de softwareGerenciamento de software integradoPrograma de TreinamentoDefinição de processo as organizaçãoFoco em processo da organização
Gerenciamento da qualidade de sotwareGerenciamento do processo quantitativo
Gerenciamento da mudança de processoGerenciamento da mudança de tecnologiaPrevenção de defeitos
Inicial
Repetível
Definido
Gerenciado
Otimização
Slide 45
● O enfoque é em gerenciamento de projeto em vez de gerenciamento de produto
● Ignora o uso de tecnologias como por exemplo a prototipação.
● Não incorpora a análise de risco como uma área chave de processo.
● Não define o seu domínio de aplicabilidade
Problemas com o modelo da SEI
Slide 46
CMM e ISO 9000
● Existe uma clara correlação entre os processos chave e o padrão ISO 9000.
● O CMM é mais detalhado e prescritivo e inclui uma estrutura de melhoria de processo.
● Em geral, as organizações cuja maturidade de processo é classificada no Nível 2 ou 3 provavelmente são compatíveis com a ISO 9000.
Slide 47
Pontos chave
●● Gerenciamento de qualidade de softwareGerenciamento de qualidade de software tem como objetivo garantir que o software está de acordo com os padrões propostos.
● Procedimentos de garantia de qualidade devem ser documentados em um manual de qualidade manual de qualidade organizacionalorganizacional.
●● Padrões de softwarePadrões de software reuni as melhores práticas●● RevisãoRevisão é a abordagem mais utilizada para
avaliar a qualidade de software.
Slide 48
Pontos chave
● Medições de software são informações coletadas sobre o processo de software e o produto de software.
● Medidas de qualidade do produto devem ser usadas para identificar componentes potencialmente problemáticos.
● Não existe um padrão universalmente aceito sobre métricas de software.