Upload
diego-gameiro-porto
View
216
Download
0
Embed Size (px)
Citation preview
1/44Qualidade de SoftwareCIn/UFPE
Introdução à Introdução à QualidadeQualidade
Qualidade de Software 2/44
Acúmulode trabalho
Abandono de planos e
procedimentos
Sucesso depende muito do esforço heróico das
pessoasPoucarepetibilidade
Produto funciona, mas com defeitos;
prazo e custo maiores; e menos
funcionalidade
Clientes e funcionários insatisfeitos
Situação atual da maioria das empresas de SW
2| 256
Qualidade de Software 3/44CIn/UFPE
ContextualizaçãoContextualização Globalização Globalização
– Novas exigências, alta competitividade, concorrência internacional
Qualidade como Arma Competitiva Qualidade como Arma Competitiva – Equiparação com padrões internacionais,
garantia de conformidade do produto, garantia da satisfação do cliente
No contexto dos Sistemas de Informação No contexto dos Sistemas de Informação – Garantia de conformidade do software com os
requisitos especificados qualidade de software
Qualidade de Software 4/44CIn/UFPE
Qualidade: O que é?Qualidade: O que é? ““É atender plenamente os requisitos do É atender plenamente os requisitos do
cliente” cliente” ““É superar a expectativa do cliente”É superar a expectativa do cliente”
“ “ A totalidade das características de uma A totalidade das características de uma entidade que lhe confere a capacidade de entidade que lhe confere a capacidade de
satisfazer às necessidades explícitas e satisfazer às necessidades explícitas e implícitas”implícitas”
(NBR ISO 8402)(NBR ISO 8402)
Qualidade de Software 5/44CIn/UFPE
Benefícios da QualidadeBenefícios da Qualidade Na visão do fornecedor (ex: equipe interna de TI Na visão do fornecedor (ex: equipe interna de TI
ou fornecedor externo – do mercado)ou fornecedor externo – do mercado)– Maior produtividade– Maior precisão nas estimativas– Redução de defeitos no produto– Aumento da confiabilidade do produto– Menos esforço de re-trabalho– Menos horas extras de trabalho– Redução do tempo para atender o mercado– Redução de custo de desenvolvimento e manutenção– Maior competitividade– Maior índice de satisfação do cliente/usuário final
Qualidade de Software 6/44CIn/UFPE
Benefícios da QualidadeBenefícios da Qualidade Na visão do contratanteNa visão do contratante
– Auxilia a definição de critérios para seleção e descredenciamento de fornecedores
– Auxilia a definição de processos de acompanhamento do progresso e desempenho dos fornecedores nas etapas de desenvolvimento, entrega e pós-entrega dos produtos
– Auxilia a definição de critérios para avaliação e aceitação dos produtos entregues pelo fornecedor
Qualidade de Software 7/44CIn/UFPE
EvoluçãoEvolução
Total Quality ManagementTotal Quality Management
Garantia da QualidadeControle da Qualidade
Inspeção
Detecção de ErroRetificação
Métodos estatísticosDesempenho de processoPadrões de qualidade
Sistemas da QualidadeCusto da qualidadeSolução de problemasPlanejamento da qualidade
Estratégia de qualidadeGrupos de trabalhoEnvolvimento de clientes e fornecedores
Qualidade de Software 8/44CIn/UFPE
Gurus da QualidadeGurus da Qualidade Armand FeigenbaumArmand Feigenbaum W.Edwards DemingW.Edwards Deming Joseph M.JuranJoseph M.Juran Karou IshikawaKarou Ishikawa Philip CrosbyPhilip Crosby Tom PetersTom Peters
Qualidade de Software 9/44CIn/UFPE
Armand FeigenbaumArmand Feigenbaum Definiu TQM como um sistema efetivo que Definiu TQM como um sistema efetivo que
integra a qualidade do desenvolvimento, integra a qualidade do desenvolvimento, qualidade de manutenção, e esforços de qualidade de manutenção, e esforços de melhoria da qualidade de vários grupos melhoria da qualidade de vários grupos em uma organizaçãoem uma organização
Qualidade de Software 10/44CIn/UFPE
Joseph M.JuranJoseph M.Juran Melhoria estruturada da qualidade Melhoria estruturada da qualidade
– Estudar sintomas de defeitos e/ou falhas encontrados– Desenvolver uma teoria para as causas destes defeitos
e/ou falhas– Testar a teoria até que a causa seja encontrada– Simular ação remediadora por áreas apropriadas
PPreocupou-se com o impacto nos trabalhadores reocupou-se com o impacto nos trabalhadores individuais e no envolvimento e motivação da individuais e no envolvimento e motivação da força de trabalho nas atividades de melhoria da força de trabalho nas atividades de melhoria da qualidadequalidade
Qualidade de Software 11/44CIn/UFPE
W.Edwards DemingW.Edwards Deming Considerado no Japão o “pai” do controle Considerado no Japão o “pai” do controle
da qualidadeda qualidade Afirmou que qualidade inicia com o alto Afirmou que qualidade inicia com o alto
nível gerencial e é uma atividade nível gerencial e é uma atividade estratégica. Enfatiza a necessidade dos estratégica. Enfatiza a necessidade dos métodos estatísticos, participação, métodos estatísticos, participação, educação e proposta de melhoriaeducação e proposta de melhoria
Qualidade de Software 12/44CIn/UFPE
Karou IshikawaKarou Ishikawa Baseando seu trabalho nos de Deming, Baseando seu trabalho nos de Deming,
Juran e Feigenbaum, Ishikawa criou os Juran e Feigenbaum, Ishikawa criou os conceitos de círculos da qualidade e conceitos de círculos da qualidade e diagramas de causa-e-efeito. diagramas de causa-e-efeito.
Considerou a participação do trabalhador Considerou a participação do trabalhador como a chave do sucesso da como a chave do sucesso da implementação do TQM.implementação do TQM.
Qualidade de Software 13/44CIn/UFPE
Philip Crosby Philip Crosby Definiu 4 certezas para o Gerenciamento Definiu 4 certezas para o Gerenciamento
da Qualidadeda Qualidade– Qualidade significa atendimento aos
requisitos.– Qualidade vem através de prevenção.– Padrão para desempenho da qualidade e
“defeito zero”.– A medida de qualidade é o preço da não-
conformidade.
Qualidade de Software 14/44CIn/UFPE
Tom PetersTom Peters Focou no atendimento às expectativas do Focou no atendimento às expectativas do
clientecliente
Qualidade de Software 15/44CIn/UFPE
Total Quality Management Total Quality Management (TQM)(TQM)
Aspectos FundamentaisAspectos Fundamentais– Atender as necessidades e expectativas do cliente (a
mais importante “parte” da organização).– Consideração ao cliente e fornecedor interno.– Envolver todas as pessoas da organização.– Examinar custos relacionados com a qualidade.– Desenvolver sistemas e procedimentos que suportem
qualidade e melhoria.– Desenvolver um processo de melhoria contínua.
Qualidade de Software 16/44CIn/UFPE
Elementos-chave do TQMElementos-chave do TQM
TQMMelhoria Contínua
Foco no Cliente
Melhoria deProcesso
Lado Humanoda Qualidade
Métricas, Modelos, Medição e Análise
Stephen Kan
Qualidade de Software 17/44CIn/UFPE
Gestão da QualidadeGestão da Qualidade ““Atividades coordenadas para orientar e Atividades coordenadas para orientar e
controlar uma organização com relação à controlar uma organização com relação à qualidade” (ISO9000:2000).qualidade” (ISO9000:2000).
PrincípiosPrincípios– Foco no cliente– Liderança– Envolvimento das pessoas– Abordagem de processo– Abordagem sistêmica– Melhoria contínua– Tomada de decisão baseada em fatos– Relacões de “ganha-ganha”.
Qualidade de Software 18/44CIn/UFPE
Garantia da Qualidade Garantia da Qualidade XX
Controle da QualidadeControle da Qualidade Controle da QualidadeControle da Qualidade
– Evita que produtos defeituosos sejam entregues aos clientes;
– Natureza reativa.– Objetiva monitoração de processo, e detecção
e correção de defeitos.– Ex: Inspeções, ensaios e testes.
Qualidade de Software 19/44CIn/UFPE
Garantia da Qualidade Garantia da Qualidade XX
Controle da QualidadeControle da Qualidade Garantia da QualidadeGarantia da Qualidade
– Tenta produzir software com uma baixa taxa de defeitos;
– Natureza proativa.– Definição de procedimentos, padrões,
treinamentos.– Gerência e melhoria de processo.
Qualidade de Software 20/44CIn/UFPE
Atividades de SQAAtividades de SQA O SEI (Software Engineering Institute) O SEI (Software Engineering Institute)
recomenda as seguintes atividades para o recomenda as seguintes atividades para o grupo de SQAgrupo de SQA– Preparar um plano de SQA;– Participar da descrição do projeto de software;– Revisar as atividades dos engenheiros de
software;– Documentar e consertar os desvios;– Registrar discordâncias e reportar para o
gerente;– Gerenciar mudanças e métricas de software.
Qualidade de Software 21/44CIn/UFPE
Custos da QualidadeCustos da Qualidade Custos da PrevençãoCustos da Prevenção
– Atividades de planejamento e implementação de sistemas da qualidade.
Custos de AvaliaçãoCustos de Avaliação– Verificações no processo de produção.
Custos de Falhas e CorreçãoCustos de Falhas e Correção– Custos de refazer atividades devido a erros
efetuados.
Qualidade de Software 22/44CIn/UFPE
Política da QualidadePolítica da Qualidade ““Intenções e diretrizes globais de uma Intenções e diretrizes globais de uma
organização relativas à qualidade, organização relativas à qualidade, formalmente expressas pela alta formalmente expressas pela alta administração.” (ISO9000:2000)administração.” (ISO9000:2000)– Alinhada aos objetivos da organização.– Comprometimento em atender os requisitos.– Melhoria contínua.– Comunicação e entendimento.– Análise crítica.
Qualidade de Software 23/44CIn/UFPE
Certificação da QualidadeCertificação da Qualidade Não basta que a qualidade exista, ela deve ser Não basta que a qualidade exista, ela deve ser
reconhecida pelo cliente;reconhecida pelo cliente; Deve existir uma certificação oficial emitida com Deve existir uma certificação oficial emitida com
base em um padrão;base em um padrão; As certificações são dadas por instituições As certificações são dadas por instituições
competentes;competentes; Exemplos de certificação:Exemplos de certificação:
– Selo SIF de qualidade de produtos alimentícios;– Selo ABIC de qualidade do café;– Classificação da rede hoteleira.
Qualidade de Software 24/44CIn/UFPE
Certificação da QualidadeCertificação da Qualidade Por que Normalização Internacional?Por que Normalização Internacional?
– Garantir a confiabilidade do produto.– Reduzir custos e evitar desperdícios e
retrabalhos.– Implementar e utilizar práticas reconhecidas
internacionalmente.– Estabelecer confiança no relacionamento com
o cliente.– Cartão de visita para o mercado internacional.
Qualidade de Software 25/44CIn/UFPE
AuditoriasAuditorias Uma avaliação independente de produtos de Uma avaliação independente de produtos de
trabalho ou processos para verificar sua trabalho ou processos para verificar sua conformidade a padrões, procedimentos e conformidade a padrões, procedimentos e especificações baseados em critérios objetivos. especificações baseados em critérios objetivos. IEEE 1028IEEE 1028
TiposTipos– Primeira parte: realizada por uma organização sobre si
mesma.– Segunda parte: conduzida por uma organização sobre
uma outra para fins da organização condutora da auditoria.
– Terceira parte: realizadas por uma terceira parte independente sem interesse nos resultados da auditoria.
Qualidade de Software 26/44CIn/UFPE
AuditoriasAuditorias Auditorias de CertificaçãoAuditorias de Certificação
– Inicial• Completa, abrangendo todo o escopo de certificação.
– De Manutenção• Periódica, conduzida para determinar a manutenção da
auditoria inicial.
– De Re-certificação• Realizada no final do período de certificação no sentido
de re-emitir o certificado par um novo período.
Qualidade de Software 27/44CIn/UFPE
AssessmentsAssessments Auxilia a organização a melhorar através Auxilia a organização a melhorar através
da identificação de problemas críticos e da identificação de problemas críticos e estabelecimento de ações de melhoria.estabelecimento de ações de melhoria.
ObjetivosObjetivos– Conhecer como a organização trabalha.– Identificar principais problemas.
Foco em revisão e não em auditoriaFoco em revisão e não em auditoria
Qualidade de Software 28/44CIn/UFPE
AssessmentsAssessments PremissasPremissas
– Modelo de processo como base do assessment.
– Confidencialidade.– Envolvimento da alta gerência.– Respeito a diferentes pontos de vista.– Orientação a ações.
Qualidade de Software 29/44CIn/UFPE
AssessmentsAssessments EstágiosEstágios
– Preparação
– Avaliação
– Recomendações• Assessment Report
Qualidade de Software 30/44CIn/UFPE
Qualidade de Software: Qualidade de Software: motivaçãomotivação
O principal objetivo da Engenharia de O principal objetivo da Engenharia de Software (ES) é ajudar a produzir software Software (ES) é ajudar a produzir software de qualidade;de qualidade;
Empresas que desenvolvem software de Empresas que desenvolvem software de qualidade são mais competitivas;qualidade são mais competitivas;
Empresas que utilizam software de alta Empresas que utilizam software de alta qualidade podem, em geral, oferecer um qualidade podem, em geral, oferecer um melhor serviço a um preço mais melhor serviço a um preço mais competitivo.competitivo.
Qualidade de Software 31/44CIn/UFPE
Qualidade de SoftwareQualidade de Software O que o cliente quer?O que o cliente quer?
– Atendimento aos requisitos especificados– Defeito zero– Alto desempenho– Baixo custo– Desenvolvimento rápido– Facilidade de uso– Eficiência nos serviços associados– Inovação
Qualidade de Software 32/44CIn/UFPE
Conceito de Qualidade de Conceito de Qualidade de SoftwareSoftware
““Conformidade a requisitos funcionais e Conformidade a requisitos funcionais e de desempenho explicitamente de desempenho explicitamente declarados, a padrões de declarados, a padrões de desenvolvimento claramente desenvolvimento claramente documentados e a características documentados e a características implícitas que são esperadas de todo implícitas que são esperadas de todo software profissionalmente desenvolvido” software profissionalmente desenvolvido” (Pressman).(Pressman).
Qualidade de Software 33/44CIn/UFPE
Fatores de Qualidade de Fatores de Qualidade de SoftwareSoftware
A noção de qualidade de software pode A noção de qualidade de software pode ser descrita por um grupo de fatores, ser descrita por um grupo de fatores, requisitos ou atributos, tais como: requisitos ou atributos, tais como: confiabilidade, eficiência, facilidade de confiabilidade, eficiência, facilidade de uso, modularidade, legibilidade, etc;uso, modularidade, legibilidade, etc;
Podemos classificar estes fatores em dois Podemos classificar estes fatores em dois tipos principais: externos e internos.tipos principais: externos e internos.
Fatores InternosFatores Externos
Qualidade de Software 34/44CIn/UFPE
Dimensões da Qualidade do Dimensões da Qualidade do SoftwareSoftware
Productquality
Developmenttechnology
Cost, time andschedule
Processquality
Peoplequality
Qualidade de Software 35/44CIn/UFPE
Qualidade de Software: Qualidade de Software: dificuldadesdificuldades
Características dos projetos de softwareCaracterísticas dos projetos de software– Complexidade– Custo focado no conhecimento e no
desenvolvimento– Produção específica e não em série– Imaturidade da área de Engenharia de
Software
Qualidade de Software 36/44CIn/UFPE
Qualidade de Software: Qualidade de Software: processo x produtoprocesso x produto
QUALIDADE DO QUALIDADE DO PRODUTO DE PRODUTO DE SOFTWARESOFTWAREQUALIDADE DO QUALIDADE DO
PROCESSO DE PROCESSO DE DESENVOLVIMENTODESENVOLVIMENTO
Qualidade de Software 37/44CIn/UFPE
Certificação do Produto ou do Certificação do Produto ou do Processo?Processo?
Hoje em dia, a qualidade do processo é Hoje em dia, a qualidade do processo é mais importante do que a qualidade final mais importante do que a qualidade final do produto;do produto;
Existem normas e padrões tanto para Existem normas e padrões tanto para produtos quanto para processos.produtos quanto para processos.
Qualidade de Software 38/44CIn/UFPE
Normas e Modelos Normas e Modelos de Qualidade de SWde Qualidade de SW
ISO 9126 - Norma para qualidade de produtos de softwareISO 9126 - Norma para qualidade de produtos de software ISO 14598 - Guias para avaliação de produtos de softwareISO 14598 - Guias para avaliação de produtos de software ISO 12119 - Norma para qualidade de pacotes de softwareISO 12119 - Norma para qualidade de pacotes de software ISO 12207 - Processos de ciclo de vida do software. ISO 12207 - Processos de ciclo de vida do software. NBR ISO 90003:2004 -Diretrizes para aplicação da norma ISO 9001 NBR ISO 90003:2004 -Diretrizes para aplicação da norma ISO 9001
ao desenvolvimento, fornecimento e manutenção de software.ao desenvolvimento, fornecimento e manutenção de software. CMM- Capability Maturity Model. Modelo do Software Engineering CMM- Capability Maturity Model. Modelo do Software Engineering
Intitute (SEI) para avaliação da maturidade de uma organização Intitute (SEI) para avaliação da maturidade de uma organização que desenvolve software.que desenvolve software.
CMMI- Capability Maturity Model Integrated. Modelo do SEI que CMMI- Capability Maturity Model Integrated. Modelo do SEI que estende o CMM para avaliação de processos de software.estende o CMM para avaliação de processos de software.
SPICE / ISO 15504 - Projeto da ISO/IEC para avaliação dos SPICE / ISO 15504 - Projeto da ISO/IEC para avaliação dos processos de desenvolvimento de software. processos de desenvolvimento de software.
PSP - Personal Software Process - Modelo do SEI que define PSP - Personal Software Process - Modelo do SEI que define disciplinas para qualidade pessoal do engenheiro de software.disciplinas para qualidade pessoal do engenheiro de software.
Qualidade de Software 39/44CIn/UFPE
Qualidade do ProcessoQualidade do Processo ProcessoProcesso
– uma seqüência de passos realizados para um determinado propósito. (IEEE)
– conjunto de recursos e atividades inter-relacionados que transformam insumos em produtos. (ISO 8402)
Processo de software Processo de software – um conjunto de atividades, métodos, práticas
e transformações que as pessoas utilizam para desenvolver e manter software e produtos relacionados. (CMM)
Qualidade de Software 40/44CIn/UFPE
Processo de SoftwareProcesso de Software
PROCESSOPROCESSO
Ferramentas
Métodos, Procedimentos, Padrões, Técnicas
Pessoas habilitadas, treinadas, motivadas
FATORES DE QUALIDADE
• o procedimento que descreve o método escolhido• as ferramentas para darem apoio e facilitarem o trabalho• pessoas treinadas, que compreendam e usem o processo
Qualidade de Software 41/44CIn/UFPE
Desenvolvimento do SW Desenvolvimento do SW REQUISITOS
PRODUTO DE SW
AnáliseAnálise ProjetoProjeto …
verificaçãoverificaçãovalidaçãovalidação
Qualidade do Processo de Qualidade do Processo de SoftwareSoftware
Qualidade de Software 42/44CIn/UFPE
Qualidade do Processo de Qualidade do Processo de SoftwareSoftware
Pontos RelevantesPontos Relevantes– Definição de um ciclo de vida– Conformidade com requisitos especificados– Integridade dos produtos do desenvolvimento
com os requisitos– Controle de versões– Padronização– Testes e Inspeções– Planejamento e gerenciamento efetivo– . . .
Qualidade de Software 43/44CIn/UFPE
Melhoria de Processo Melhoria de Processo de Software de Software
PrincípiosPrincípios– Grandes mudanças devem ser iniciadas de
cima pra baixo.– Todos devem ser envolvidos.– Mudanças efetivas devem ser construídas com
base em conhecimento.– Mudanças são contínuas.– Mudanças no processo são incorporadas
através de motivação e esforço.– Melhoria de processo de software requer
investimento.
Qualidade de Software 44/44CIn/UFPE
Princípios Básicos da Princípios Básicos da Qualidade de SoftwareQualidade de Software
Satisfação Satisfação do Clientedo Cliente
Melhoria ContínuaMelhoria Contínuade Processosde Processos
Redução de CustoRedução de Custode Qualidadede Qualidade
ControleControledo Projetodo Projeto
Qualidade de Software 45/44CIn/UFPE
ConclusãoConclusão Qualidade é um conceito complexo, porque significa Qualidade é um conceito complexo, porque significa
diferentes coisas para diferentes pessoas;diferentes coisas para diferentes pessoas; Não há uma simples medida para qualidade de Não há uma simples medida para qualidade de
software que seja aceitável para todos os projetos de software que seja aceitável para todos os projetos de todas as empresas;todas as empresas;
Apesar dos custos elevados, é importante introduzir Apesar dos custos elevados, é importante introduzir sistemas de gerenciamento de qualidade de software, sistemas de gerenciamento de qualidade de software, pois permitem um aumento de produtividade, uma pois permitem um aumento de produtividade, uma melhoria da qualidade do produto final e um aumento melhoria da qualidade do produto final e um aumento da satisfação dos clientes e da própria empresa;da satisfação dos clientes e da própria empresa;
A falta de consciência de muitas empresas e A falta de consciência de muitas empresas e profissionais que lidam com sistemas complexos tem profissionais que lidam com sistemas complexos tem sido um dos maiores problemas em adotarem uma sido um dos maiores problemas em adotarem uma política de qualidade.política de qualidade.