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).