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 Modelos e Padrões da Qualidade de Software
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 Visão popular pode ser diferente do seu uso profissional
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 3. Visão popular pode ser diferente do seu uso profissional.
Exemplo: Carro O que um determinado produto apresenta para considerarmos que o mesmo tem qualidade?
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 Qualidade é escrever tudo o que se deve fazer e fazer tudo o que foi escrito
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é Classificação da rede hoteleira
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 portabilidade (ISO 9126 e NBR 13596)
Fatores da Qualidade do Produto
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 Esse processo inclui medições e critérios de qualidade
Características do Processo Facilidade de compreensão Visibilidade Facilidade de manutenção Aceitabilidade Robustez Rapidez
Ciclo de aprimoramento do processo
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 na eliminaçã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 Definir e garantir a execução da visão e estratégia da alta direção da empresa
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
TQM Total Quality Management
Gurus da Qualidade Armand Feigenbaum W.Edwards Deming Joseph M. Juran Karou Ishikawa Philip Crosby Tom Peters
Armand 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 Focou no atendimento às expectativas do cliente
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 necessidades de seus usuários
Atores da Qualidade de Software
Prevenção X Detecção
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 Verificações e validações
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 podem surgir nos produtos
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 Guia Modelo
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 São normas relacionadas à qualidade
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 Definiu modelos internacionais focados no processo 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 O CMM categoriza as organizações em 5 níveis de maturidade
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
CMM Capability Maturity Model
CMM Capability Maturity Model
CMM Capability Maturity Model
CMM Capability Maturity Model
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 Onde integra e evolui os modelos do CMM
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 Apropriado para organizações de diversos tamanhos
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 Melhoria do processo
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 parte 9: Dicionários
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 Implementação mais gradual (7 níveis)
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]
Níveis MPS.br / CMMI
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