Engenharia de Software Qualidade de Software
Prof. Kleber Carrhá 2018.2
www.carrha.com.br
Unidade 2
Qualidade de Software
Qualidade de Software
Como
identificar a
qualidade de
um produto?
Qualidade de Software
A qualidade de um produto é identificada pela identificação da totalidade de suas características que lhe conferem a capacidade de satisfazer as necessidades explícitas e implícitas.
Exemplo:
• Sabor;
• Aparência;
• Temperatura;
• Rapidez no serviço;
• Preço;
• Higiene;
• Valor Nutricional.
Qualidade de um produto
Satisfação de requisitos funcionais e de desempenho explicitamente
declarados, de normas de
desenvolvimento explicitamente documentadas e de características
implícitas que são esperadas em todo o software desenvolvido
profissionalmente.
Área de conhecimento da engenharia de software que objetiva garantir a qualidade do software através da definição e normatização de
processos de desenvolvimento.
Qualidade de Software
Qualidade de Software
Anos 60 - Era Funcional;
Anos 70 - Era do Método;
Anos 80 - Era do Custo;
Anos 90 e depois - Era da Qualidade.
Perspectiva Histórica da Engenharia de Software
Qualidade não é um fator de vantagem no mercado, mas é uma necessidade para a garantia da competitividade.
Qualidade de Software
Contempla três grupos de características de qualidade segundo uma perspectiva externa do software
Relaciona as características externas com as características internas do produto
Propõe métricas subjetivas e indiretas para estimar os fatores de qualidade em análise.
Fatores de Qualidade de McCall
Qualidade de Software
Fatores de Qualidade de McCall
Qualidade de Software
Conjunto planejado e sistemático de todas as ações necessárias para fornecer uma confiança adequada de que o item ou produto está de acordo com os requisitos técnicos estabelecidos.
Controle da Qualidade de Software
Qualidade de Software
Qualidade do Produto;
Qualidade do Processo de Desenvolvimento;
Qualidade do Gerenciamento do Processo.
Preocupações da Engenharia de Software
Qualidade de Software
ISO 9000 / ISO 9000-3;
ISO 9126;
ISO 12207;
ISO/IEC 15504 (SPICE);
MPS.Br;
CMM/CMMI (Capability Maturity Model/Integrated).
Principais Normas Nacionais e Internacionais
Qualidade de Software
ISO é uma organização não-governamental fundada em 1947, em Genebra, e hoje
presente em cerca de 162 países.
Sua função é a de promover a normatização de produtos e serviços, para que a qualidade dos mesmos seja permanentemente melhorada
Em inglês significa "International Organization for
Standardization“, mas para evitar diferentes acrônimos em
outros idiomas, definiu-se ISO, remetendo à palavra “igual” em latim.
Normas ISO
Qualidade de Software
ISO 9000
Fornece diretrizes para seleção das normas ISO 9001, ISO 9002 e ISO 9003 e realização de ajustes que sejam necessários durante seu uso.
ISO 9001, ISO 9002 e ISO 9003
Conjunto de normas que tratam de sistemas da qualidade e que podem ser utilizadas para fins de garantia externa.
Nosso foco será na ISO 9000-3!
ISO - Sistema de Gestão da Qualidade
Qualidade de Software
Guia para a aplicação da ISO 9001 para o
desenvolvimento, fornecimento e manutenção de software, criado em 1993.
É aplicável em situações contratuais, onde:
O contrato exigir esforço de projeto e os requisitos do produto forem indicados principalmente em
termos de desempenho
A confiança no produto puder ser obtida através da demonstração adequada da capacidade de
desenvolvimento, fornecimento e manutenção de um determinado fornecedor.
ISO 9000-3
Qualidade de Software
Sistema da Qualidade
Estrutura;
Responsabilidade do fornecedor;
Responsabilidade do comprador;
Sistema da Qualidade;
Auditorias internas da qualidade;
Ações corretivas;
Análise crítica conjunta.
ISO 9000-3
Qualidade de Software
Atividades do Ciclo de Vida:
Generalidade;
Análise crítica do contrato;
Especificação dos Requisitos do comprador;
Planejamento do desenvolvimento;
Planejamento da qualidade;
Projeto e implementação;
Testes e validação;
Aceitação;
Cópia, entrega e instalação;
Manutenção.
ISO 9000-3
Qualidade de Software
Atividades de Apoio:
Gestão da configuração;
Controle de documentos;
Registros da qualidade;
Medição;
Regras, práticas e convenções;
Ferramentas e técnicas;
Aquisição;
Produto de software incluído;
Treinamento.
ISO 9000-3
Qualidade de Software
Roteiro de Implantação
Atividades de preparação (alta direção);
Diagnóstico inicial;
Estratégia para mudança do comportamento das pessoas;
Adaptar organograma para criar estrutura de suporte ao Sistema da Qualidade;
Definição e padronização da documentação estratégica, tática, operacional e de registros;
Implantação das técnicas, procedimentos e indicadores da qualidade
Implantação das auditorias internas da qualidade;
Análise dos relatórios da qualidade e medidas de melhoria contínua (TQC).
ISO 9000-3
Qualidade de Software
Garante a qualidade do produto de software.
Benefícios:
Definição de requisitos da qualidade de um produto de software;
Avaliação das especificações do software durante o desenvolvimento;
Descrição de características e atributos de software (por exemplo em manuais);
Avaliação de software antes da entrega e antes da aceitação;
Avaliação de produtos de software de terceiros.
ISO 9126
Qualidade de Software
Características de qualidade a serem medidas:
Funcionalidade;
Confiabilidade;
Usabilidade;
Eficiência;
Manutenibilidade;
Portabilidade;
ISO 9126
Qualidade de Software
Framework para processos de ciclo de vida com terminologia bem definida;
Contém processos, atividades e tarefas que devem ser aplicadas durante a aquisição de sistemas que contém software, produtos de software stand-
alone, serviços de software e durante o
fornecimento, desenvolvimento, operação e manutenção de produtos de software.
ISO 12207
Qualidade de Software
Descreve a arquitetura de processos de ciclo de vida de software mas não especifica os detalhes de como implementar ou realizar as atividades e tarefas incluídas nos processo.
Não prescreve:
nome, formato e conteúdo da documentação;
um modelo específico de ciclo de vida;
um método de desenvolvimento de software.
ISO 12207
Qualidade de Software
ISO 12207
PROCESSOS FUNDAMENTAIS Aquisição
Fornecimento
Operação
Manutenção Desenvolvimento
PROCESSOS DE APOIO Documentação
Gerência de Configuração Garantia da Qualidade
Verificação Validação Revisão Conjunta
Auditoria
Resolução de Problemas
PROCESSOS ORGANIZACIONAIS
Qualidade de Software
Definido no Software Engineering Institute (SEI) - Carnegie Mellon University
Modelos de maturidade e capacidade para a produção de Software
Motivação:
Projetos do Departamento de Defesa
5 Níveis de Maturidade para o Processo.
Tem um custo alto de implantação e historicamente um longo tempo para sua implantação
CMM/CMMI
Qualidade de Software
O CMMI (Capability Maturity Model Integration) foi criado pelo SEI como uma integração e evolução dos modelos:
SW-CMM;
SECM - System Engineering Capability Model;
IPD-CMM - Integrated Product Development CMM.
CMM/CMMI
Qualidade de Software
Vantagens:
Eliminação de inconsistências e duplicidades;
Maior clareza do modelo;
Facilidade para entendimento do modelo;
Terminologia padrão;
Estilo consistente;
Garantia de consistência com a ISO 15504;
Manter uma compatibilidade com esforços anteriores de implantação dos modelos.
CMM/CMMI
Qualidade de Software
Objetivos:
Integrar funções organizacionais tradicionalmente separadas;
Facilitar a melhoria de processos a nível corporativo;
Definir os objetivos e as prioridades para a melhoria de processos, focando a produtividade, a performance, o custo e a satisfação dos envolvidos no projeto;
Fornecer um guia para os processos de qualidade;
Fornecer um ponto de referência para avaliação dos processos correntes.
CMM/CMMI
Qualidade de Software
Níveis de Maturidade CMM/CMMI
1. Inicial
Imprevisível e mal controlado
2. Repetível
Repete tarefas
previamente dominadas
3. Definido
Processo caracterizado, bem compreendido
4. Gerenciado
Processo medido e controlado
Processo Disciplinado
Processo de Consistência, Padrão
Processo Previsível
Processo de Melhoria Contínua
5.Em Otimização Foco na melhoria do processo
Gerenciamento de Projeto
Processo de Engenharia Integrada
Qualidade de Produto e Processo
Mudança Gerencial
Qualidade de Software
Admite duas abordagens:
CMM/CMMI
Abordagem de capacidade dos processos.
A organização escolhe em qual processo irá enfatizar a melhoria contínua.
Abordagem da maturidade da organização.
Segue um caminho
Qualidade de Software
CMM/CMMI
Contínua Estágio
Melhorar o desempenho em um único processo. Enfoque de melhoria do processo de forma sistêmica e estruturada
Melhorar desempenho em várias áreas alinhadas
aos objetivos de negócio da organização. Atingir cada um dos estágios garante a base fundamentada necessária para o próximo estágio.
Níveis de capacidade utilizados para mediar as
melhorias. PA’s organizadas em níveis de maturidade.
Melhorar diferentes processos com diferentes
classificações (rates). Permite a organização ter um caminho evolutivo pré-definido para melhoria.
Necessário conhecimento das dependências e
interações entre áreas de Processo (PA). Provê a migração mais fácil do SW-CMM para o CMMI.
Apropriado para quem sabe que processo deve ser
melhorado. Apropriado para quem não sabe como iniciar um
processo de melhoria ou qual processo deve ser prioridade.
Alinhado com a ISO/IEC 15504 devido a
organização idêntica das PAs. Possui grande número de casos de estudo e dados históricos de práticas bem sucedidas.
Qualidade de Software
O Projeto SPICE (Software Process
Improvement and Capability dEtermination) nasceu em 1993 como recomendação da ISO para que fossem supridas necessidades de criação de um padrão internacional concebido especialmente para o setor de software, mais abrangente que os padrões existentes e mais específico que a ISO 9001.
Para se tornar compatível com os padrões existentes, a ISO retirou os detalhes de implementação.
ISO/IEC 15504 - SPICE
Qualidade de Software
Objetivo:
Produzir normas que orientem a avaliação do processo de software visando melhoria contínua do processo e determinação da
capacitação.
Baseou-se no que havia de melhor de modelos pré-existentes, principalmente no CMM
Provê uma estrutura para a avaliação de processos de software que pode ser usada por organizações envolvidas em
planejamento, gerenciamento, monitoramento, controle e melhoria da aquisição, fornecimento, desenvolvimento, operação, evolução e suporte de software.
ISO/IEC 15504 - SPICE
Qualidade de Software
Abordagem:
entender o estado dos processos da organização para a melhoria do processo;
determinar a adequação dos processos da organização a um requisito particular ou classe de requisitos;
determinar a adequação dos processos de outra organização para um contrato particular ou classe de contratos.
ISO/IEC 15504 - SPICE
Qualidade de Software
Abordagem:
entender o estado dos processos da organização para a melhoria do processo;
determinar a adequação dos processos da organização a um requisito particular ou classe de requisitos;
determinar a adequação dos processos de outra organização para um contrato particular ou classe de contratos.
ISO/IEC 15504 - SPICE
Qualidade de Software
Resumo
Aspectos ISO 9000-3 CMM/CMMI(SEI) SPICE Abordagem Verificação de
conformidade de processos a padrões documentados
Classificação das organizações em níveis de maturidade crescente
Avaliação dos processos com o objetivo de
determinar a capacitação da organização e propor melhoria
Meta /
Objetivo Certificar a organização de acordo com os
padrões estabelecidos
Determinar a capacitação da
empresa e apoiar sua evolução de acordo com os 5 níveis
Determinar a capacitação da organização e apoiar sua evolução de acordo com os objetivos da organização
Empresas
alvo Organizações que necessitam de uma certificação
Organizações de grande porte que necessitem de uma
Organizações em geral
Qualidade de Software
Resumo
Aspectos ISO 9000-3 CMM/CMMI(SEI) SPICE Definição de
processos Não estabelece
processos Estabelece 18
processos organizados em 5 níveis
Estabelece 35 processos organizados em 5
categorias
Flexibilidade Não admite
adaptação Não admite adaptação Adaptável aos objetivos da organização
Instrumento de avaliação de nível de capacitação
Check list Questionário Fornece orientações para montar questionário
Inspiração e
Influência Normas militares americanas,
canadenses, sistema de
qualidade do Reino Unido
Princípios de Shewart,
Deming, Juran, Crosby TQM, PDCA, CMM, TRILLIUM, Malcom Baldrige, Bootstrap
Qualidade de Software
Resumo
Aspectos ISO 9000-3 CMM/CMMI(SEI) SPICE Benefícios Difusão extensa,
reconhecimento do valor da
certificação.
Estabelecimento de um roteiro para a melhoria contínua.
Expansão e flexibilização dos modelos citados.
Limitações Risco de colocar a certificação como objetivo principal.
Ausência de apoio à melhoria contínua.
Foco exclusivo no processo.
Pouca consideração à diversidade das
organizações.
Dificuldade de aplicação em pequenas
organizações. Foco
Dificuldade de aplicação devido à grande
quantidade de informações. Foco exclusivo no processo.
Qualidade de Software
Dos métodos de avaliação de processo
apresentados, alguns estão estabelecidos no mercado (CMM), e outros apresentam projetos ambiciosos a nível mundial (SPICE).
Dentre estes, existem modelos que além de avaliar o processo de desenvolvimento
propõem algum mecanismo para melhoria do processo.
Resumo
Qualidade de Software
Não existe um modelo ideal de avaliação de qualidade que seja aplicável indistintamente às organizações, abrangendo os diversos objetivos que elas tem em relação a qualidade.
A qualidade de software não é garantida somente pela qualidade de processo, mas
também pela garantia de qualidade do produto final.
A maior preocupação deve ser sempre a satisfação do usuário final.
Resumo
Qualidade de Software
Qual a importância de implantar um processo de qualidade?