Você está na página 1de 48

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
Gerenciamento de Qualidade

● Gerenciar a qualidade tanto


do processo como do
produto de software

Slide 2
Tópicos
● Garantia e padrões de qualidade
● Planejamento de qualidade
● Controle de qualidade
● Medição e métricas de software

Slide 3
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 4
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 5
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 defeitos,
defeitos se preocupa
também com outras características de qualidade
do produto.

Slide 6
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 7
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
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 9
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
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 11
Garantia e padrões de qualidade
● 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

Slide 12
Importância dos padrões
● 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.

Slide 13
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
Qualidade de produto e de
processo
● 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.

Slide 15
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 16
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
Atividades de gerenciamento de
qualidade de processo
● 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.

Slide 18
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 19
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 20
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
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 22
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 23
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
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 25
Métrica de Software
● 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).

Slide 26
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
Suposições para medidas
● 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.

Slide 28
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
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 30
Métricas de produto
● 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.

Slide 31
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 32
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
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
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 35
Melhoria de processo
● 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.

Slide 36
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
Estágios de melhoria de processo
● 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

Slide 38
Qualidade de processo e de
produto
● 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.

Slide 39
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
O Intituto de Engenharia de
Software (SEI)
● 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

Slide 41
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
Níveis do modelo de maturidae
● 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

Slide 43
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
Problemas com o modelo da SEI
● 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

Slide 45
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 46
Pontos chave
● Gerenciamento 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
organizacional.
organizacional
● Padrões de software reuni as melhores práticas
● Revisão é a abordagem mais utilizada para
avaliar a qualidade de software.

Slide 47
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.

Slide 48