Unidade I Conceito de Qualidade Luiz Leão luizleao@gmail.com http://www.luizleao.com
UNIDADE I : Conceito de Qualidade 1.1 Qualidade de processo de software 1.2 Qualidade de produto de software
UNIDADE II : Fatores e Métricas de Qualidade 2.1 Uma visão geral dos fatores que afetam a qualidade 2.2 Métrica dos fatores de qualidade 2.3 Garantia da Qualidade de Software 2.3.1 Atividades SQA 2.3.2 Revisões de software 2.3.3 Revisões técnicas formais 2.3.4 Indicadores de qualidade 2.3.5 Garantia estatística da qualidade 2.3.6 Medidas e modelos de confiabilidade de software
UNIDADE III: Sistema de Garantia de Qualidade 3.1 A abordagem NBR ISO 9000 3.2 Modelos de qualidade de produto de software 3.2.1 NBR ISO/IEC 9126 (software) 3.2.2 NBR ISO/IEC 12119 (pacote) 3.2.3 NBR ISO/IEC 9241 (usabilidade) 3.2.4 NBR ISO/IEC 14598 (avaliação) 3.3 Modelos de melhoria e avaliação de processo de software 3.3.1 NBR ISO 9000 3 3.3.2 NBR ISO/IEC 12207 (ciclo de vida) 3.3.3 NBR ISO/IEC 15504 (SPICE avaliação) 3.3.4 CMMI (melhoria de processo) 3.3.5 MPS.BR (melhoria de processo)
UNIDADE IV: A Gerência de Risco na Qualidade de Software 4.1 Princípios da gerência de risco 4.2 Atividades da gerência de risco 4.3 Aplicação nos modelos de qualidade de processo de software
Introdução
Qualidade O que é Qualidade? O que é Qualidade de Software? Qualidade do Produto e do Processo Normas e Organismos Normativos
Qualidade O problema da gestão de qualidade não é o que as pessoas NÃO sabem a respeito dela. O problema é o que elas PENSAM que sabem Philip Crosby
O que é Qualidade? O que um determinado produto apresenta para considerarmos que o mesmo tem qualidade? Ex.: Carro Qualidade é um conceito relativo. Diversos aspectos são levados em conta. No caso de um automóvel, fatores como conforto, segurança, desempenho, beleza e custo têm estreita relação com a qualidade.
O que é Qualidade? Qualidade está fortemente relacionada à conformidade com os requisitos. O que é conformidade em relação a requisitos? observado x especificado. Pode haver problemas na observação. Pode haver problemas na especificação.
O que é Qualidade? Qualidade diz respeito à satisfação do cliente. Requisitos são especificados por alguns e com o objetivo de satisfazer outros. Uma especificação depende das escolhas feitas (clientes alvo). Pode haver problemas na especificação.
Benefícios da Qualidade Na visão do fornecedor (ex: equipe interna de TI ou fornecedor externo do mercado) Maior produtividade Maior precisão nas estimativas Redução de defeitos no produto Aumento da confiabilidade do produto Menos esforço de re-trabalho Menos horas extras de trabalho Redução do tempo para atender o mercado Redução de custo de desenvolvimento e manutenção Maior competitividade Maior índice de satisfação do cliente/usuário final
Benefícios da Qualidade Na visão do contratante Auxilia a definição de critérios para seleção e descredenciamento de fornecedores Auxilia a definição de processos de acompanhamento do progresso e desempenho dos fornecedores nas etapas de desenvolvimento, entrega e pós-entrega dos produtos Auxilia a definição de critérios para avaliação e aceitação dos produtos entregues pelo fornecedor
Breve Histórico da Qualidade Relatos Históricos de 4.000 anos atrás no Egito. Cultura Naqada Marco Importante: Revolução Industrial 1920: Controle Estatístico da Produção 1940: Surgimento de vários organismos ligados à qualidade ASQC (American Society for Quality Control) ABNT (Associação Brasileira de Normas Técnicas) ISO (International Standardization Organization) Ainda década de 1940: Japão destaca-se. Toyota - Kanban Década de 1970: Qualidade de Software
Evolução
Gurus da Qualidade Armand Feigenbaum W.Edwards Deming Joseph M.Juran Karou Ishikawa Philip Crosby Tom Peters
Armand Feigenbaum EUA (1922-) 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
William Edwards Deming EUA (1900-1993) 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.
Joseph M.Juran Romênia (1904-2008) Melhoria estruturada da qualidade Estudar sintomas de defeitos e/ou falhas encontrados Desenvolver uma teoria para as causas destes defeitos e/ou falhas Testar a teoria até que a causa seja encontrada Simular ação remediadora por áreas apropriadas Preocupou-se com o impacto nos trabalhadores individuais, no envolvimento e motivação da força de trabalho nas atividades de melhoria da qualidade
Karou Ishikawa Japão (1915-1989) 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 EUA (1926-2001) 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 é defeito zero. A qualidade é medida pelo preço da não-conformidade, e não por índices. Zero Defeito Qualidade Máxima
Tom Peters EUA (1926-2001) Focou no atendimento às expectativas do cliente
Elementos-Chave do TQM
Gestão da Qualidade Atividades coordenadas para orientar e controlar uma organização com relação à qualidade (ISO9000:2000). Princípios Foco no cliente Liderança Envolvimento das pessoas Abordagem de processo Abordagem sistêmica Melhoria contínua Tomada de decisão baseada em fatos Relacões de ganha-ganha.
Garantia da Qualidade X Controle da Qualidade Controle da Qualidade Evita que produtos defeituosos sejam entregues aos clientes; Natureza reativa; Objetiva monitoração de processo, e detecção e correção de defeitos. Ex: Inspeções, ensaios e testes.
Garantia da Qualidade X Controle da Qualidade Garantia da Qualidade Tenta produzir software com uma baixa taxa de defeitos; Natureza proativa. Definição de procedimentos, padrões, treinamentos. Gerência e melhoria de processo.
Política da Qualidade Intenções e diretrizes globais de uma organização relativas à qualidade, formalmente expressas pela alta administração. (ISO9000:2000) Alinhada aos objetivos da organização. Comprometimento em atender os requisitos. Melhoria contínua. Comunicação e entendimento. Análise crítica.
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; As certificações são dadas por instituições competentes; Exemplos de certificação: Selo SIF de qualidade de produtos alimentícios; Selo ABIC de qualidade do café; Classificação da rede hoteleira pela Embratur.
Certificação da Qualidade Por que Normalização Internacional? Garantir a confiabilidade do produto. Reduzir custos e evitar desperdícios e retrabalhos. Implementar e utilizar práticas reconhecidas internacionalmente. Estabelecer confiança no relacionamento com o cliente. Cartão de visita para o mercado internacional.
UNIDADE I : Conceito de Qualidade 1.1 Qualidade de processo de software 1.2 Qualidade de produto de software
Qualidade de Software Conferência da OTAN sobre Engenharia de Software (NATO Software Engineering Conference) (1968) Crise de Software Problemas detectados: Cronogramas não observados. Projetos abandonados. Módulos que não operam corretamente quando combinados. Programas que não fazem exatamente o que era esperado. Sistemas tão difíceis de usar que são descartados. Sistemas que simplesmente param de funcionar. Passados quase 40 anos, o que mudou?
Qualidade de Software Qualidade em geral: É um conceito relativo. Está fortemente relacionada à conformidade com requisitos. Diz respeito à satisfação do cliente. Como isso se manifesta em software?
Qualidade de Software O aspecto não repetitivo do desenvolvimento de software torna essa atividade difícil e em boa medida imprevisível. Delimitar o escopo de um sistema não é trivial. A volatilidade dos requisitos é lugar comum no desenvolvimento de software.
Qualidade de Software Fatores que afetam o desenvolvimento e que influenciam no julgamento dos usuários: Tamanho e complexidade do software; Número de pessoas envolvidas no projeto; Métodos, técnicas e ferramentas utilizadas; Custo x benefício do sistema; Custos associados à existência de erros; Custos associados à detecção e remoção de erros; Etc.
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
Qualidade de Software
Qualidade do Produto x Qualidade do Processo de Software Qualidade do produto de software não se atinge de forma espontânea. A qualidade do produto depende fortemente da qualidade do processo de desenvolvimento.
Qualidade do Processo de Software Um bom processo não garante que os produtos produzidos são de boa qualidade, mas é um indicativo de que a organização é capaz de produzir bons produtos.
Qualidade do Processo de Software Motivação para a busca da Qualidade do Processo de Software: Aumento da qualidade do produto. Diminuição do retrabalho. Maior produtividade. Redução do tempo para atender o mercado (time to market). Maior competitividade. Maior precisão nas estimativas.
Qualidade do Processo de Software A implantação de um Programa de Qualidade começa pela definição e implantação de um processo de software. O processo de software deve estar documentado, ser compreendido e seguido.
O que é Processo de Software? Processos de Software devem estabelecer: Atividades a serem realizadas durante o processo, sua estrutura e organização (decomposição e precedência), incluindo a definição de um modelo de ciclo de vida quando pertinente (ex.: processo de desenvolvimento); Artefatos requeridos e produzidos por cada uma das atividades do processo; Procedimentos (métodos, técnicas, roteiros e padrões) a serem adotados na realização das atividades; Recursos necessários (humanos, hardware e software) para a realização das atividades.
Estrutura do Processo de Software Processo de Software Sub-processos (Desenvolvimento, Manutenção, etc) Atividades Sub-atividades Pré-atividades Artefatos Insumos Produtos Recursos Humanos Software Hardware Procedimentos Métodos Técnicas Roteiros
Exemplo de Processo de Software Processo de Software Processo de Desenvolvimento Análise e Especificação de Requisitos Projeto Projeto Arquitetural Pré-atividade: Análise e Especificação de Requisitos Insumo: Documento de Especificação de Requisitos Produto: Documento de Arquitetura do Sistema Recurso Humano: Projetista de Software Ferramenta de Software: Ferramenta de Modelagem UML Técnica: Modelagem de Objetos Projeto Detalhado Implementação Testes Implantação
Como definir um processo? Processos têm de ser definidos caso a caso, levando-se em consideração as características específicas do projeto em questão: equipe, domínio de aplicação, tipo de software, tecnologias a serem adotadas, restrições de negócio (cronograma, custo, qualidade) etc. Apoio de Normas e Modelos de Qualidade de Processos de Software.
Normas e Organismos Normativos Normas internacionais de qualidade são criadas no trabalho voluntário de especialistas do mundo todo. Essas normas tornaram-se a base para especificar produtos, organizar o fornecimento de serviços e até mesmo para a elaboração de legislação em vários países.
Padrões de Facto Muitas vezes padrões surgem espontaneamente, a partir de uma necessidade ou como uma solução amplamente adotada quando comparada a outras alternativas. Padrões de facto são padrões aplicados na prática, mas que não foram formalizados como um regulamento. Podem ser criados involuntariamente ou por razões comerciais.
Padrões de Jure São criados de maneira formal, regulamentada. São escritos seguindo regulamentos e aprovados por instituições reconhecidas publicamente como capacitadas para tal (ex., ISO, IEEE etc).
ISO International Standardization Organization. Criada em 1946, começou a funcionar em 1947. Conta atualmente com mais de 15.000 documentos internacionais de padronização, tendo aproximadamente 150 países participantes e cerca de 50.000 especialistas que contribuem no mundo inteiro para a criação e verificação dos documentos.
A ISO e as Normas Relacionadas à TI A ISO criou com a IEC (International Eletrotechnical Commission) a primeira comissão conjunta para elaboração de normas, o JTC1 (Joint Technical Committee 1). O JTC1 é responsável pela criação de normas relacionadas a TI e é dividido em subcomissões (SC), que, por sua vez, são divididas em grupos de trabalho (working groups WG).
A ISO e as Normas Relacionadas a QS A subcomissão SC-7 (Engenharia de Software e de Sistemas) trata das normas relacionadas à qualidade de software. Alguns grupos de trabalho da SC-7: WG-2: Documentação de Sistemas WG-6: Avaliação e Métricas WG-7: Gerência do Ciclo de Vida WG-12: Medição do Tamanho Funcional
Etapas na Criação de uma Norma Uma norma possui pelo menos um editor e um ou mais coeditores, que são pessoas de conhecimento técnico reconhecido e podem se dedicar ao projeto. O editor (junto com os co-editores) é responsável pela escrita do primeiro esboço do documento. Esse esboço é distribuído para análise pelos grupos de trabalho internacionais. A partir daí, sugestões de modificações são submetidas, avaliadas e introduzidas, em um ciclo que culmina com a versão final.