CONCEITOS BÁSICOS DE QUALIDADE DE SOFTWARE
1. Introdução Qualidade de Software tomou por base as teorias e técnicas da gestão de qualidade na manufatura Evolução da Tecnologia da Qualidade Melhoria da qualidade Inspeção do produto Controle de qualidade Melhoria do processo 1920 1940 1960 1980
Inspeção do produto - examinam-se os produtos intermediários e o produto final para se detectar defeitos. Essa tecnologia originou-se na linha de montagem e tornou-se bastante popular. Controle de qualidade – monitoram-se as taxas de defeitos e os custos para se identificar elementos defeituosos dos processos, para que eles possam ser corrigidos. Melhoria do processo – melhora-se o processo de produção para minimizar a introdução de defeitos e ter os custos reduzidos.
2. Alguns Mestres da Qualidade Frederick Taylor (1920) - Administração Científica – Taylorismo - Processos podem ser repetidos, de forma controlada, o que permite a sua padronização e reprodução - Trabalhadores são preguiçosos e devem ser forçados, empurrados e punidos, para manterem-se produtivos bastante contestado
Edwards Deming (1950) - Grande líder do gerenciamento da qualidade - Qualidade está relacionada com o que o cliente necessita e deseja – precisa ser monitorada e adaptada constantemente - Aspectos importantes: - Controle estatístico da qualidade – dados coletados em experiências passadas - Participação do trabalhador no processo decisório – pessoas mais comprometidas com o trabalho - Limitação das fontes de fornecimento – fornecedores mais comprometidos e simplificação do controle das finanças
Armand Feigenbaum (1950) - Introduziu o termo “controle de qualidade total” – envolvimento de todos os setores da empresa; impacto em todos os processos - Aspectos importantes: - Liderança para a qualidade – busca da excelência - Tecnologia moderna da qualidade – abordagem integrada, responsabilidades compartilhadas por todos, melhoria contínua - Compromisso organizacional – motivação contínua, treinamento, qualidade inserida no planejamento estratégico da empresa
Josef Juran (1950) - Qualidade é definida como: - orientada pelas características do produto que satisfazem as necessidades do cliente - orientada pelo custo, com redução de desperdícios e deficiências do processo de produção - Processos da gerência da qualidade: - Planejamento da qualidade – identificação das necessidades dos clientes, definição do produto, plano de fabricação - Controle de qualidade – manutenção da produção dentro dos limites planejados de qualidade e produtividade - Melhoria da qualidade – aperfeiçoamento contínuo
Philip Crosby (1960) - Qualidade é uma medida de conformidade com as especificações – defeito zero nos componentes e no produto final - Benefício obtido com o alcance da qualidade é maior do que o custo envolvido – quality is free
3. Qualidade de Software - No início: função estava no hardware - qualidade de software: funcionalidade adequada ao hardware Com a disseminação do software - Foco no produto: outros atributos de qualidade - Foco no cliente - TQM e processos - Capabilidade e maturidade de processos - Histórico semelhante ao de manufatura - Grande resistência. Dizia-se: “software é diferente” “arte e criatividade” “atividades não repetitivas”
Características da Indústria de Software - Complexidade – requer grande número de projetistas especializados - Produção – deve permitir reprodução fácil, sempre que possível - não há desperdício de material como na manufatura Vantagem de software sobre hardware - fácil de mudar, experimentar, reprogramar, corrigir - Desvantagem?
Crise do Software - Abordagem tradicional com teste final - DoD americano verificou: - grande percentual de sistemas encomendados e não usados desperdício - motivos: ou com problemas de qualidade (confiabilidade, segurança, etc.) ou não atendiam mais às necessidades do cliente - Falta de foco no cliente distância do especificado - Foco no processo - não basta apenas seguir rigidamente um método ou técnica, para se obter um produto final de boa qualidade - bons processos bons produtos - mas é importante especificar adequadamente o sistema certo
As promessas da tecnologia - “There is no silver bullet” (Fred Brooks) - Ferramentas CASE - Metodologias de desenvolvimento - modelos de ciclo de vida, métodos, técnicas, linguagens, ... - A realidade: a melhoria é custosa e gradativa Garantia da qualidade - Ações preventivas para garantir a qualidade - Oposto ao controle da qualidade do produto final - Paralelo com manufatura: - separação dos produtos defeituosos - correção do processo para melhorar o produto
Algumas Técnicas de Qualidade de Software - Inspeção: - exame (visual) de características dos produtos - Teste: - execução e comparação com os resultados esperados - Auditoria: - avaliação independente de produtos e processos - Aplicação em produtos inspeção, teste e auditoria - Aplicação em processos auditoria Uso de Padrões em Software - Padrões de interface - Padrões de processo (modelos) - Normas internacionais
- Produto: 9126 Modelos de Qualidade de Software - Sistema da Qualidade: 9001 - Maturidade: CMM (Capacity Maturity Model) - Pessoal: PSP (Personal Software Process) - Processos/ISO: SPICE
4. Conclusão - Implantação de programas de qualidade: deve levar em conta a realidade da empresa e seus objetivos - Qualidade envolve bom senso e gestão - Não é religião - Não produz milagres - Há muitos obstáculos, não é fácil - Mas é recompensador