Fundamentos


  • Pressman: a qualidade é um conceito multifacetado e sua definição depende fundamentalmente de quem a está avaliando.
  • Categoriza a qualidade em cinco visões amplas:
Ponto de vista Foco da qualidade Definição na prática Síntese
Transcendental Excelência Inata Qualidade é o que se sente; é reconhecível Percepção de excelência que o software evoca
Focado no Usuário Adequação ao Propósito Qualidade é a satisfação das necessidades do usuário Software é de qualidade atende os requisitos explícitos e implícitos do cliente
Focado na Fabricação (Processo) Conformidade com as Especificações Qualidade é a aderência aos padrões de desenvolvimento e aos requisitos especificados Resultado de um processo bem executado e repetível
Baseado no Valor Custo-Benefício Qualidade é o que o cliente está disposto a pagar Produto de alta qualidade proporciona valor (benefícios) que justifica o custo


Histórico sobre Qualidade


  • Histórico da qualidade de software a partir da necessidade de mitigar a "Crise do Software"
    • Período em que projetos frequentemente excediam prazos, orçamentos e não entregavam a funcionalidade correta
  • A evolução da qualidade passou de uma fase de Correção de Defeitos (foco no produto final) para a Garantia da Qualidade (SQA) com foco na prevenção e melhoria contínua do processo)
    • SQA – Software Quality Assurance: Ao contrário do Teste de Software (que é uma atividade focada na detecção de defeitos no produto final), o SQA é uma atividade de prevenção e avaliação de processo que é aplicada desde o início do projeto.
  • A ênfase mudou de "Qualidade do Produto" para "Qualidade do Processo", reconhecendo que a qualidade do software é diretamente determinada pela qualidade do processo utilizado para criá-lo.


3. Custo da Qualidade Pressman enfatiza que a qualidade é um investimento, não apenas um custo. O Custo da Qualidade (CoQ) é uma métrica usada para quantificar o esforço gasto para garantir a qualidade ou para corrigir a falta dela. O CoQ é dividido em três categorias principais:

Custos de Prevenção: Custos associados a atividades que buscam evitar a ocorrência de defeitos.

Exemplos: Planejamento da Qualidade, Treinamento de Engenharia de Software, Revisões Técnicas Formais.

Custos de Avaliação (ou Detecção): Custos associados à verificação da qualidade do produto durante o desenvolvimento.

Exemplos: Inspeções, Testes de Unidade/Integração/Sistema, Auditorias de Qualidade.

Custos de Falha: Custos resultantes da não conformidade do produto, divididos em:

Falha Interna: Defeitos encontrados antes da entrega ao cliente.

Exemplos: Custos de retrabalho, reparação de bugs após testes internos.

Falha Externa: Defeitos encontrados após a entrega ao cliente.

Exemplos: Suporte ao cliente, custos de garantia, perda de reputação, perda de negócios e responsabilidade legal (o custo mais alto).

Princípio: O custo para corrigir um defeito aumenta exponencialmente quanto mais tarde no ciclo de vida ele é descoberto (sendo o mais caro quando encontrado pelo cliente). Por isso, o investimento em Prevenção é o mais eficiente.

4. Modelos e Padrões de Qualidade Pressman aborda modelos e normas internacionais que fornecem uma estrutura para a melhoria do processo de software, visando garantir a qualidade.

Modelos de Maturidade de Processo: CMMI (Capability Maturity Model Integration): Um modelo de melhoria de processo que fornece uma estrutura para medir e melhorar a maturidade do processo de uma organização. O CMMI organiza as práticas de processo em níveis de maturidade (do Inicial ao Otimizado) e em Áreas de Processo, focando em "o que" deve ser feito para alcançar a qualidade do processo.

MPS.Br (Melhoria de Processo do Software Brasileiro): Embora Pressman se concentre mais no CMMI, ele reconhece modelos regionais. O MPS.Br é um modelo de maturidade e capacidade brasileiro, compatível com CMMI e ISO/IEC 15504, adaptado para a realidade e o custo das pequenas e médias empresas de software no Brasil.

Normas e Padrões ISO (International Organization for Standardization): ISO 12207: Define os processos fundamentais do ciclo de vida do software (aquisição, fornecimento, desenvolvimento, operação, manutenção). Essencial para a perspectiva de fabricação.

ISO/IEC 15504 (SPICE): Foca na avaliação da capacidade do processo (Process Assessment). Usado para avaliar se uma organização está realizando seus processos de forma eficaz, ajudando a estabelecer níveis de capacidade.

ISO 9126 (e a evolução SQuaRE):

ISO 9126 (Histórica): Definiu a qualidade do produto de software com um modelo hierárquico de seis características principais: Funcionalidade, Confiabilidade, Usabilidade, Eficiência, Manutenibilidade e Portabilidade.

ISO/IEC 25000 (SQuaRE – Systems and Software Quality Requirements and Evaluation): É o padrão sucessor da ISO 9126. Amplia e refina o modelo, focando nos Requisitos e Avaliação da Qualidade de Sistemas e Software. É o principal padrão para definir as características de qualidade do produto (visão de produto).