1. UNIVERSIDADE ESTADUAL PAULISTA
INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS
DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA
Gerenciamento de Qualidade
Engenharia de Software
2o. Semestre de 2005
Slide 1
3. Tópicos
q Garantia e padrões de qualidade
q Planejamento de qualidade
q Controle de qualidade
q Medição e métricas de software
Slide 3
4. Gerenciamento da qualidade de
software
q Preocupa-se em garantir que o nível exigido de
qualidade do produto de software seja atingido
q Envolve definir procedimentos e padrões de
qualidade que devem ser seguidos
q Devem ajudar a desenvolver uma “cultura de
qualidade” onde qualidade deve ser vista como
responsabilidade de todos.
Slide 4
5. O que é qualidade?
q Classicamente, a noção de qualidade é a de que o
produto desenvolvido deve cumprir com suas
especificações
q 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 5
6. O compromisso com a qualidade
q Não se pode esperar por uma especificação
perfeita antes de implantar procedimentos de
gerenciamento de qualidade.
q Deve-se implantar procedimentos para melhorar
a qualidade dentro das restrições impostas por
uma especificação imperfeita.
q O gerenciamento de qualidade não se preocupa
somente em reduzir defeitos, se preocupa
defeitos
também com outras características de qualidade
do produto.
Slide 6
7. Atividades do gerenciamento de
qualidade
q Garantia de qualidade
• Estabelecer uma estrutura de procedimentos e de padrões
organizacionais para qualidade.
q Planejamento de qualidade
• Seleção e ajustes de procedimentos e de padrões de qualidade para
um projeto específico.
q 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 7
8. Gerenciamento de qualidade e desenvolvimento de
software
Processo de
desenvolvimento
de software
Processo de
gerenciamento de
qualidade
Padrões e Plano de Relatórios de revisão
procedimentos qualidade De qualidade
Slide 8
9. ISO 9000
q Padrão internacional para o gerenciamento de
qualidade.
q Aplicável a uma gama de organizações, desde a
industria de manufatura até as indústrias de serviços.
q ISO 9001 é aplicável a organizações que projetam,
desenvolvem e dão manutenção a produtos
q ISO 9001 é um modelo genérico de um processo de
qualidade. Deve ser instanciado por cada organização.
Slide 9
10. ISO 9001 – áreas cobertas
Responsabilidade de gerenciamento Sistema de qualidade
Controle de produto que não estão em Controle de projeto
conformidade
Manuseio, armazenamento, embalagem e Compras
entrega
Produtos fornecidos para o comprador Identificação e facilidade de rastreamento do
produto
Equipamentos de inspeção e teste Status de inspeção e teste
Revisão do contrato Ação corretiva
Controle de documento Registros de qualidade
Auditorias internas de qualidade Treinamento
Prestação de serviços Técnicas estatísticas
Slide 10
11. Certificação ISO 9000
q Os procedimentos de garantia de qualidade devem ser
documentados em um manual de qualidade
organizacional
q Instituições independentes podem certificar que o
processo de qualidade de uma organização, segundo o
manual, está em conformidade com a ISSO 9001
q 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 11
12. Garantia e padrões de qualidade
q Padrões são a chave para gerenciamento de qualidade
efetivos.
q Podem ser internacionais, nacionais, organizacionais ou
padrões de projeto.
q Padrões de produto são os padrões que se aplicam ao
produto de software em desenvolvimento. Ex: estilo de
programação, etc.
q 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
Slide 12
13. Importância dos padrões
q Encapsulam as melhores práticas – evitam a
repetição de erros passados.
q Infra estrutura para o processo de garantia de
qualidade – envolve a verificação de
conformidade com os padrões
q Ajudam em termos de continuidade – todos os
engenheiros de uma organização adotam as
mesmas práticas – o esforço de aprendizado é
reduzido.
Slide 13
14. Padrões de produto e de
processo
Padrões de produto Padrões de processo
Formulário de revisão de projeto Conduta de revisão de projeto
Estrutura do documento de requisitos Submissão de documentos a CM
(gerenciamento de configuração)
Modelo de cabeçalho de procedimento Processo de liberação de versão
Estilo de programação em Java Processo de aprovação do plano de projeto
Modelo do plano de projeto Processo de controle de mudança
Formulário de pedido de mudança Processo de registro de teste
Slide 14
15. Qualidade de produto e de
processo
q A qualidade de um produto desenvolvido é diretamente
influenciado pela qualidade do processo de produção.
q 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.
q 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.
Slide 15
16. Qualidade baseada em processo
q Ligação direta entre o processo e produto em
produtos manufaturados.
q 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 16
17. Qualidade baseada no processo
Desenvolva Avalie a qualidade
Defina o processo
O produto Do produto
não
sim
Melhore o Qualidade Padronize o
processo OK? processo
Slide 17
18. Atividades de gerenciamento de
qualidade de processo
q Definição de padrões de processo, como por
exemplo: como conduzir revisões, quando
devem ocorrer, etc.
q Monitorar o processo de desenvolvimento, a fim
de assegurar que os padrões estão sendo
seguidos.
q Relatar o processo de software para a gerência
de projeto e para o comprador do software.
Slide 18
19. Planejamento de qualidade
q Um plano de qualidade deve estabelecer as
qualidades desejadas para o produto e como
essas qualidades devem ser avaliadas.
q Deve definir o processo de garantia de
qualidade.
q Deve selecionar os padrões organizacionais
apropriados a um determinado produto e
processo de desenvolvimento e, se necessário,
definir novos padrões.
Slide 19
20. Estrutura do plano de qualidade
q Introdução sobre o produto
q Planos para o produto
q Descrições de processo
q Metas de qualidade
q Riscos e gerenciamento dos riscos.
Planos de qualidade devem ser documentos
sucintos.
Slide 20
21. Atributos de qualidade do
software
Segurança Facilidade de Portabilidade
compreensão
Proteção Testabilidade Facilidade de uso
Confiabilidade Facilidade de Facilidade de
adaptação reuso
Capacidade de Modularidade Eficiência
recuperação
Robustez Complexidade Facilidade de
aprendizado
Slide 21
22. Controle de qualidade
q Supervisionar o processo de desenvolvimento
de software para garantir que os procedimentos
e os padrões de garantia de qualidade seja
seguidos.
q 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 22
23. Revisões de qualidade
q O principal método de validar a qualidade de um
processo ou de um produto.
q Revisores examinam partes ou todo o processo
ou o sistema e sua documentação para
encontrar potenciais problemas.
q 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 23
24. Tipos de revisões
Tipo de revisão Objetivo
Inspeções de projeto ou programa Detectar erros detalhados nos requisitos,
nos projetos ou no código. A revisão deve
ser orientada por uma lista de possíveis
erros,
Revisões de progresso 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 qualidade 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
Slide 24
25. Medição e métricas de software
q Medição de software se preocupa em obter um
valor numérico para alguns atributos de um
produto ou de um processo de software.
q Permite comparações objetivas entre técnicas e
processos.
q Algumas organizações introduziram programas
de medições, porém o uso sistemático de
medições ainda não é comum.
q Existem poucos padrões nesta área.
Slide 25
26. Métrica de Software
q 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.
q Permite que o sofware e o processo de desenvolvimento
de software sejam quantificados
q Medidas do processo de software ou produto
q Podem ser usadas para estimar atributos do produto
(métricas preditivas) ou controlar o processo de software
(métricas de controle).
Slide 26
27. Métricas preditivas e de controle
Processo de Produtos de
software software
Medições de Medições
controle preditivas
Decisões de
gerenciamento
Slide 27
28. Suposições para medidas
q Uma propriedade do software pode ser medida
q Existe um relacionamento entre o que podemos
medir e o que queremos saber.
q Esse relacionamento pode ser formalizado e
validado.
Pode ser difícil relacionar o que pode ser medido
com os atributos de qualidade desejados.
Slide 28
29. Relação entre atributos internos e
externos de software
Número de parâmetros de
procedimento
Manutenibilidade
Complexidade ciclomática
Confiabilidade
Tamanho do programa em
Linhas de código
Portabilidade
Número de mensagens de erro
Facilidade de uso
Extensão do manual do usuário
Slide 29
30. O processo de medição
q Um processo de medição pode ser parte de um
processo de controle de qualidade.
q Dados coletados durante esse processo devem
ser mantidos como um recurso organizacional
(dados históricos)
q 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 30
31. Métricas de produto
q Métricas devem predizer a qualidade do produto
q 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.
Slide 31
32. Métricas estáticas e dinâmicas
q 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)
q 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 32
33. Métricas de produto de software
Métricas de software Descrição
Tamanho do código Medida do tamanho de um
programa.
Complexidade ciclomática Medida da complexidade de
controle de um programa. Pode
estar relacionada com a
facilidade de compreensão.
Fan-in/Fan-out 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.
Extensão dos identificadores Mede o comprimento das
variáveis. Quanto maior, mais
compreensível o programa.
Profundidade de declarações Ifs de muita profundidade são
condicionais aninhadas de difícil compreensão e levam
a erros
Slide 33
34. Métricas de software orientado a
objetos
Métricas de software Descrição
Profundidade da árvore de herança Quanto mais profunda, mais complexo
é o projeto.
Método de Fan-in/Fan-out 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étodos ponderados por classes Número de métodos em uma classe
ponderados pela complexidade de cada
método.
Número de operações sobrepostas Um alto valor para essa métrica indica
(overloading) que a superclasse utilizada pode não
ser uma classe principal apropriada
para a subclasse.
Slide 34
35. Análise de medições
q A dificuldade está em compreender o que as
medidas significam
• A análise dos dados coletados é bastante difícil
q Profissionais da área de estatística podem
oferecer ajuda valiosa.
q A Análise dos dados deve levar em conta as
circunstâncias locais.
Slide 35
36. Melhoria de processo
q Entender os processos existentes
q 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
q 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.
q Outros atributos do processo podem ser o alvo de
melhorias.
Slide 36
37. Atributos de processo
Características de processo Descrição
Facilidade de compreensão Até que ponto o processo está explicitamente definido e
com que facilidade de pode compreender a definição do
processo?
Visibilidade As atividades de processo culminam em resultados
nítidos, de modo que o processo do processo seja
externamente visível?
Facilidade de suporte Até que ponto as atividades do processo podem ser
apoiadas por ferramentas CASE?
Confiabilidade O processo está projetado de tal maneira que seus erros
sejam evitados ou identificados antes que resultem em
erros no produto?
Robustez O processo pode continuar , mesmo que surjam
problemas inesperados?
Facilidade de manutenção O processo pode evoluir para refletir melhorias de
processo identificadas?
Rapidez Com que rapidez pode ser concluído o processo de
entrega de um sistema? Slide 37
38. Estágios de melhoria de processo
q Análise de processo
• Analisar e modelar (quantitativamente, se possível)
processos existentes
q Identificação de melhoria
• Identificar gargalos relativos a qualidade, ao prazo e ao custo
q Introdução de mudançã de processo
• Modificar o processo para remover os gargalos identificados
q Treinamento em mudanças de processo
• Treinar o pessoal envolvidos em novas propostas de
processo
q Ajuste de mudanças
• Descobrir pequenos problemas e propor modificações no
processo
Slide 38
39. Qualidade de processo e de
produto
q A qualidade de processo e qualidade de produto estão
intimamente relacionados
q Um bom processo geralmente produz bons produtos
q Em algumas classes produtos manufaturados, o
processo é o principal determinante da qualidade do
produto
q Para atividades baseadas em projeto, outros fatores
também estão envolvidos, em especial a habilidade dos
projetistas.
Slide 39
40. Principais fatores da qualidade de
produtos de software
Tecnologia de
desenvolvimento
Qualidade do Qualidade do Qualidade do
processo produto pessoal
Custo, tempo e
cronograma
Slide 40
41. O Intituto de Engenharia de
Software (SEI)
q Fundado pelo Dept. de Defesa dos EUA, junto à
Universidade Carnegie Mellon
q 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.
q Modelo de maturidade foi proposto em meados da
década de 80, e refinado no início da década de 90.
q O resultado desse trabalho tem tido grande influência na
melhoria do processo de software
Slide 41
42. O Modelo de Maturidade de
Capacitação da SEI
Nível 5
Otimização
Nível 4
Gerenciado
Nível 3
Definido
Nível 2
Repetível
Nível 1
Inicial
Slide 42
43. Níveis do modelo de maturidae
q Inicial
• Essencialmente não controlado
q Repetível
• Procedimentos de gerenciamento de produto definidos e usados
q Definido
• Procedimentos e estratégias de gerenciamento de projeto definidos e
usados
q Gerenciado
• Estratégias de gerenciamento de qualidade definidas e usadas.
q Otimização
• Estratégias de melhoria do processo definidas e usadas
Slide 43
44. Otimização
Áreas-chave Gerenciamento da mudança de processo
de processo Gerenciamento da mudança de tecnologia
Prevenção de defeitos
Gerenciado
Gerenciamento da qualidade de sotware
Gerenciamento do processo quantitativo
Definido
Revisão por pares
Coordenação entre grupos
Engenharia de produto de software
Gerenciamento de software integrado
Programa de Treinamento
Definição de processo as organização
Foco em processo da organização
Repetível
Gerenciamento de configuração de software
Garantia de qualidade de software
Gerenciamento de contrato de software
Acompanhamento e supervisão do projeto
de software
Inicial Planejamento de projeto de software
Gerenciamento de requisitos
45. Problemas com o modelo da SEI
q O enfoque é em gerenciamento de projeto em
vez de gerenciamento de produto
q Ignora o uso de tecnologias como por exemplo a
prototipação.
q Não incorpora a análise de risco como uma área
chave de processo.
q Não define o seu domínio de aplicabilidade
Slide 45
46. CMM e ISO 9000
q Existe uma clara correlação entre os processos
chave e o padrão ISO 9000.
q O CMM é mais detalhado e prescritivo e inclui
uma estrutura de melhoria de processo.
q 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 46
47. Pontos chave
q Gerenciamento de qualidade de software tem
como objetivo garantir que o software está de
acordo com os padrões propostos.
q Procedimentos de garantia de qualidade devem
ser documentados em um manual de qualidade
organizacional.
organizacional
q Padrões de software reuni as melhores práticas
q Revisão é a abordagem mais utilizada para
avaliar a qualidade de software.
Slide 47
48. Pontos chave
q Medições de software são informações
coletadas sobre o processo de software e o
produto de software.
q Medidas de qualidade do produto devem ser
usadas para identificar componentes
potencialmente problemáticos.
q Não existe um padrão universalmente aceito
sobre métricas de software.
Slide 48