Qualidade de Software
Prof. Natália Oliveira M.Sc queiroz.nati@gmail.com
Ementa
Conceitos sobre Qualidade Qualidade do Produto
Qualidade do Processo
Garantida da Qualidade X Controle da Qualidade Conceitos sobre Qualidade de Software
Prevenção X Detecção
Como definir Qualidade ?
Qualidade é um termo que pode ter diferentes interpretações
Existem muitas definições de qualidade propostas na literatura com diferentes pontos de vista
Como definir Qualidade?
1. Qualidade é um termo que pode ter diferentes interpretações
2. Existem muitas definições de qualidade de software propostas na
literatura com diferentes pontos de vista
Exemplo: Carro
O que um determinado produto
apresenta para considerarmos que
Exemplo: Carro
Diversos aspectos são levados em conta
No caso de um automóvel, fatores como
conforto, segurança, desempenho, beleza e $$ têm estreita relação com a qualidade
Conceito de Qualidade
Segundo a atual norma brasileira sobre o assunto (NBR ISO 8402), qualidade é:
“A totalidade das características de uma entidade
que lhe confere a capacidade de satisfazer
às necessidades explícitas e implícitas”
Conceito de Qualidade
Entidade - pode ser um bem ou um serviço Necessidades Explícitas - são as próprias condições e objetivos propostos pelo produtor
Necessidades Implícitas - incluem as diferenças entre os usuários, a evolução no tempo, as implicações éticas, as questões de segurança e outras visões subjetivas.
Para avaliar a qualidade de um produto, você deve fazer uma lista destas necessidades e analisar cada uma destas necessidades.
Conceito de Qualidade
Qualidade é estar em conformidade com os requisitos dos clientes
Qualidade é antecipar e satisfazer os desejos dos clientes
Controle de Qualidade
Pela definição da ISO (Organização Internacional de Padronização), controle de qualidade é “a atividade e técnica operacional que é
utilizada para satisfazer os requisitos de qualidade” O Controle da Qualidade é realizado através de:
Inspeções Revisões Testes
Certificação da Qualidade
Não basta que a qualidade exista, ela deve ser reconhecida pelo cliente
Deve existir uma certificação oficial emitida com base em um padrão
Exemplos de certificação:
Selo SIF de qualidade de produtos alimentícios Selo ABIC de qualidade do café
Organizações Normalizadoras
ISO - Organização Internacional de Padronização IEEE - Instituto de Engenharia Elétrica e Eletrônica ABNT - Associação Brasileira de Normas Técnicas
Para a emissão de certificado, é preciso a realização de todo um processo de avaliação e julgamento de acordo com uma determinada norma.
INMETRO - orgão do governo responsável pelo credenciamento das instituições que realizam a certificação.
Custo da Qualidade
Custos de Falhas e Correção
Custos de refazer atividades devido a erros na execução do processo ou
no produto
Custos da Prevenção
Atividades de planejamento e implementação de sistemas da qualidade
Custos de Avaliação/Certificação
Verificações no processo de produção
Qualidade do Produto
Funcionalidade, confiabilidade, usabilidade, eficiência, manutenibilidade e
Qualidade do Processo
Dos requisitos do usuário à entrega do produto final, existe um processo de desenvolvimento complexo e dividido em fases, que pode comprometer a qualidade do software
A qualidade do processo corresponde ao nível utilizado na implementação de um processo aceitável
Características do Processo
Facilidade de compreensão
Visibilidade
Facilidade de manutenção
Aceitabilidade
Robustez
Rapidez
Garantia da Qualidade X Controle da
Qualidade
Garantia da Qualidade – são os processos que estão destinados a previnir eventuais defeitos
Controle da Qualidade – são as medições locais para detectar e reparar todos os defeitos ainda remanescentes
Garantia da Qualidade X Controle da
Qualidade
Evolução nos Conceitos de Qualidade
Os avanços tecnológicos e a crescente preocupação naeliminação de defeitos, aumento na produtividade e redução de custos motivaram o surgimento de modelos de qualidade para o processo de manufatura
Na década de de 1960, começaram a surgir critérios, modelos e técnicas para a garantia da qualidade no processo de produção.
TQC – Total Quality Control
Modelo desenvolvido no Japão Desenvolvido para implementar a melhoria contínua da qualidade
Baseia-se na participação de todos os setores da empresa e de todos os empregados no estudo e condução do controle da qualidade
TQC – Total Quality Control
Princípios básicos:
Produzir e fornecer produtos e/ou serviços que atendam concretamente às
necessidades do cliente
Garantir a sobrevivência da empresa através do lucro contínuo, adquirido pelo
domínio da qualidade
Identificar o problema mais crítico e solucioná-lo pela mais alta prioridade Falar, raciocinar e decidir com dados e com base em fatos
Gerenciar a organização ao longo do processo e não por resultados
Reduzir metodicamente as distorções através do isolamento de suas causas
fundamentais
Não permitir a venda de produtos defeituosos Não repetir erros
TQM – Total Quality Management
É uma abordagem para sucesso em longo prazo É medida através da satisfação do cliente e baseada na participação de todos os membros da organização
Foca a melhoria de processos, produtos, serviços e cultura organizacional e considera qualidade de um processo como responsabilidade do “dono” do processo
Gurus da Qualidade
Armand Feigenbaum W.Edwards Deming Joseph M. Juran Karou Ishikawa Philip Crosby Tom PetersArmand Feigenbaum
Definiu TQM como um sistema efetivo que integra a qualidade do desenvolvimento, qualidade de manutenção, e esforços de melhoria da qualidade de vários grupos em uma organização
Joseph M. Juran
Preocupou-se com o impacto nos trabalhadores individuais e no envolvimento e motivação da força de trabalho nas atividades de melhoria da qualidade
W.Edwards Deming
Considerado no Japão o “pai” do controle da qualidade
Afirmou que qualidade inicia com o alto nível gerencial e é uma atividade estratégica. Enfatiza a necessidade dos métodos estatísticos, participação, educação e proposta de melhoria
Karou Ishikawa
Baseando seu trabalho nos de Deming, Juran e Feigenbaum, Ishikawa criou os conceitos de círculos da qualidade e diagramas de causa-e-efeito
Considerou a participação do trabalhador como a chave do sucesso da implementação do TQM
Philip Crosby
Definiu 4 certezas para o Gerenciamento da 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
Tom Peters
Qualidade Aplicada ao Software
Mito: Criar programas é uma arte que não pode seguir regras, normas ou padrões.
Causas:
Produtos de software são complexos. Software não se desgasta.
Software é invisível. Sua representação em grafos e diagramas não é precisa.
Não há um acordo entre os profissionais sobre o que é qualidade de software.
Problemas no Desenvolvimento de
Software
Problemas no Desenvolvimento de
Software
Problemas no Desenvolvimento de
Software
Qualidade de Software - Motivação
Empresas que desenvolvem software de qualidade são mais competitivas
Empresas que utilizam software de alta qualidade, podem oferecer um melhor serviço a um preço mais competitivo
A qualidade de software está diretamente relacionada a um gerenciamento rigoroso de requisitos, uma gerência efetiva de projetos e em um processo de desenvolvimento bem definido, gerenciado e em melhoria contínua
Definição de Qualidade de Software
“Conjunto de características a serem
satisfeitas em um determinado grau,
de modo que o software satisfaça às
Técnicas de Prevenção
Treinamento Planejamento Modelagem
Uso de lições aprendidas Melhoria de processo
Técnicas de Detecção
Análise de código Teste e simulação Auditorias
Planejamento da Qualidade de
Software
Compreende em identificar quais padrões são relevantes para o projeto e a determinação de como satisfazé-los
Esse processo deve ser executado em paraledo ao planejamento do projeto
Garantia da Qualidade de Software
É um conjunto de atividades planejadas e implementadas com base no
sistema da qualidade da organização
As atividades são focadas na prevenção de defeitos e problemas, que
Modelos e Padrões de Qualidade de
Sotware
Com o crescimento do setor de software, vários modelos e padrões têm
sido propostos ao longo dos últimos anos
Alguns conceitos fundamentais são importantes de serem entendidos.
Política
Padrão
ISO
International Organization for Standardization (ISO) é uma organização não-governamental, fundada em 1947, com sede em Genebra – Suíça
Foi motivada pela necessidade de referências internacionais para regulamentar obrigações contratuais entre fornecedores e compradores, que
ISO
9000 – Padrões de qualidade gerais para qualquer tipo de organização
9001 – Mais específica: processo de qualidade nas organizações que projetam, desenvolvem e mantêm produtos
Norma ISO9001:2000
É modelo base para auditorias de certificação da família ISO9000
Uma certificação ISO9000, no Brasil, é conduzida por uma empresa acreditada pelo INMETRO
Isso significa que a empresa foi avaliada e julgada por um organismo certificador, pertencente ao Sistema Brasileiro de Certificação, segundo aquela norma
Normas ISO9000 para suporte ao desenvol
vimento de software
Normas e Modelos de Qualidade de
Software
Produto
ISO 9126 - Norma para qualidade de produtos de software ISO 14598 - Guias para avaliação de produtos de software Processo
ISO 12207 - Processos de ciclo de vida do software.
ISO 90003:2004 - Diretrizes para aplicação da norma ISO 9001 ao desenvolvimento, fornecimento e manutenção de software.
ISO 15504 (SPICE) - Projeto da ISO/IEC para avaliação dos processos de desenvolvimento de software.
CMMI - Capability Maturity Model Integrated. Modelo do SEI que estende o CMM para avaliação de processos de software.
mps.BR - Modelo Brasileiro de qualidade de processo de software, baseado nas normas ISO 12207 e 15504, e no modelo CMMI.
Modelos do Software Engineering Institute (SEI)
Instituto americano
Contribuiu para o fortalecimento da área de qualidade de software
CMM – Capability Maturity Model
Modelo largamente adotado pela comunidade de software internacional
Modelo focado na capacidade organizacional e seu
desenvolvimento
Foi motivado por uma solicitação do Departamento de Defesa dos Estados Unidos, que precisava de um instrumento de avaliação dos fornecedores contratados pelo próprio Departamento.
CMM – Capability Maturity Model
CMM – Capability Maturity Model
Cada nível é considerado como pré-requisito do nível seguinte
Não é possível “pular” níveis
Cada nível se apoia nas competências que a organização desenvolveu no nível anterior
CMM – Capability Maturity Model
O CMM foi um dos modelos de qualidade mais adotados pelas indústrias de software brasileiro, juntamente com a norma ISO9001 Foi descontinuado e substituído pelo CMMI
CMMI – Capability Maturity Model
Integration
Consolida um framework de modelos
SPICE
Objetivo – mortalidade de trabalhos de padronização
É um conjunto de documentos
Consiste de um framework de avaliação Facilita o auto-julgamento
Desperta consciência do contexto Produz um perfil do processo
Direciona a adequação das atividades
SPICE
Aplicado para organizações envolvidas com qualquer atividade relacionada ás atividades de computação
A Avaliação examina o processo e determina a efetividade deste
Resultados podem usados para Auto-Avaliação
Documentos do SPICE
O SPICE é composto por 9 partes:
parte 1: Conceitos e Guia Introdutório
parte 2: Modelo de Gerenciamento de Processo
parte 3: Avaliação do Processo
parte 4: Guia para Condução de uma Avaliação
parte 5: Construção, Seleção e Uso das Ferramentas de Avaliação
parte 6: Qualificação e Treinamento dos Avaliadores
parte 7: Guia para o Processo de Melhoria
parte 8: Guia para Orientação da Determinação da Capacidade do Processo
MPS.Br
Criado pela parcerias de universidades, Softex e apoio do governo
Acrônimo de “Melhoria de Processo de Software Brasileiro”
Possui um modelo de referência inspirado no CMMI
Níveis de Maturidade - MPS.Br
G [Parcialmente Gerenciado] F [Gerenciado] E [Parcialmente Definido] D [Largamente Definido] C [Definido] B [Gerenciado Quantitativamente] A [Em Otimização]Ferramentas
ARM – Nasa – Fornece medidas que podem ser usadas para avaliar a qualidade de um documento de requisitos de software Quality Tools Cookbok – Fornece descrições úteis de ferramentas
de gestão de qualidade
Quality Tools and Templates – Descreve uma ampla gama de ferramentas e métodos úteis para a questão de qualidade
Considerações Finais
Importância da Qualidade de Software e do Produto de uma Empresa vai além da maturidade e responsabilidade em manter tal maturidade
Valorização do Produto e Software é um investimento no conforto do cliente e da empresa
Buscar a Qualidade em um processo de desenvolvimento é a principal atividade dos gerentes e desenvolvedores