58
Gerenciamento de Qualidade Paulo C. Masiero Cap. 24 - SMVL

Gerenciamento de Qualidade - edisciplinas.usp.br · (Ex. COCOMO) e pode ser expresso em termos de uma fórmula ou modelo . O processo de medição . Métricas de produto •As principais

  • Upload
    vudiep

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Gerenciamento de Qualidade

Paulo C. Masiero

Cap. 24 - SMVL

Introdução

• Melhoria nos níveis gerais de qualidade de software nos anos recentes.

• Diferenças em relação ao gerenciamento da qualidade na manufatura – Os requisitos provêm do cliente e da organização

que desenvolve o software

– Dificuldades em especificar características de qualidade de forma não ambígua ou vaga

– Difícil saber quando a especificação está completa.

GQ: Organizado em três atividades principais

• Garantia de qualidade

– Estabelecer procedimentos e padrões que levam ao software de alta qualidade

• Planejamento de qualidade

– Processo de desenvolvimento de um plano de qualidade para um processo específico

• Controle de qualidade

– Garantir que o processo especificado seja seguido.

GQS: três níveis de preocupações

• Organizacional: estabelecer um “arcabouço” de processos organizacionais e padrões que levem a alta qualidade.

• Projeto: – A. Definir um plano de qualidade: metas,

processos e padrões.

– B. Aplicação de processos específicos de qualidade, verificar que são seguidos e garantir que os resultados estejam em conformidade com os padrões aplicáveis ao projeto.

Qualidade de Processo e de Produto

• Na manufatura há uma ligação nítida entre qualidade do processo de produção e qualidade do produto.

• Na manufatura o processo é relativamente fácil de padronizar e monitorar.

• No desenvolvimento de software esse relacionamento é mais complexo.

• É difícil medir os atributos de qualidade do software.

Gerenciamento de Qualidade de Processo

• Definição de padrões de processo.

– Ex. como e quando as revisões devem ser conduzidas.

• Monitoração do processo de Desenvolvimento

• Relato do processo de software para a gerência e para os clientes.

A Equipe de Garantia de Qualidade

• Equipe de QA (Quality Assurance) ou GQ (Garantia de Qualidade)

• Deve ser independente e responder à gerência acima do nível de gerente de projeto.

• Permite ter uma visão objetiva do software e fazer relatórios sobre a qualidade do software sem ser influenciada pelos problemas do desenvolvimento.

Garantia de qualidade e padrões

• É o processo que define como a qualidade do software pode ser atingida e como a organização de desenvolvimento sabe que o software possui o nível de qualidade desejado.

• Padrões de produto e padrões de processo

• São baseados nas melhores práticas, oferecem um arcabouço de processo e ajudam na continuidade

Garantia de qualidade e padrões (cont.)

• São estabelecidos por instituições diversas: US DoD, BSI, IEEE, NATO

• Problemas na adoção: aumentam o esfoço e a burocracia.

Garantia de qualidade e padrões (cont.)

• Possíveis soluções para o melhorar a taxa de adoção:

– Envolver os engenheiros de software na seleção de padrões de produto

– Revisar e atualizar os padrões regularmente para acompanhar a evolução tecnológica

– Disponibilizar ferramentas de apoio

Padrão ISO 9000

• Padrão internacional para todas as indústrias. É um arcabouço.

• Foi adaptado para a indústria de software • O padrão ISO 9001 descreve vários aspectos do

processo de qualidade e os procedimentos organizacionais que as empresas devem definir.

• Deve ser documentado em um manual de qualidade da organização

• Autoridades certificadoras certificam que o processo de qualidade está de acordo com o que é prescrito pelo padrão ISO 9001

Isso garante a qualidade de um

produto?

ISSO 9001 – Revisão de 2000

ISO 9001

• Não descreve os processos

• Para ser certificada, uma empesa deve mostrar que tem esses processos definidos e os segue, além de mostrar que seus processos de qualidade são seguidos.

Padrões de documentação

• Padrões de documentação são importantes por que os documentos são a única forma tangível de representação do software e de seu processo de desenvolvimento.

• Existem três tipos – Padrões de processo de documentação (como

produzir o documento)

– Padrões de documentos (identificação, estrutura, apresentação e atualização)

– Padrões de intercâmbio de documentos

Processo de produção de documentos

Planejamento de qualidade

• É o processo que define o processo de desenvolvimento de um plano de qualidade para um projeto específico.

• Deve selecionar os padrões organizacionais para cada produto e processo de desenvolvimento.

• Diferem em detalhes de acordo com o tamanho e tipo de sistema a ser desenvolvido.

Humphrey propõe em seu livro clássico sobre gerenciamento de software, a seguinte estrutura:

Atributos de qualidade do software

No P. de Q. deve-se definir quais são os atributos de qualidade mais importantes para o software em desenvolvimento Geralmente é muito difícil otimizar todos os atributos

Controle de Qualidade

• Monitorar os processos de desenvolvimento de software para assegurar que os procedimentos e os processos de garantia de qualidade estão sendo seguidos.

• Existem duas abordagem mais usadas para atingir esse objetivo:

– Revisões de qualidade

– Avaliação automatizada

Revisões de qualidade

• Um grupo de pessoas examina uma parte ou o todo de um processo de software e sua documentação associada

• As conclusões do exame são formalmente registradas e passadas para os autores para corrigir os problemas detectados.

Revisões de qualidade: resumo

• Três a quatro revisores: projetista senior, usuários, projetistas de subsistemas, programadores (convidados e variável)

• Distribuir a documentação antecipadamente

• Revisão de no máximo duas horas. Definir um moderador.

• O autor percorre, ou lê o documento com a equipe de revisão. O moderador registra os problemas e as ações a serem executadas.

Medições e métricas de software

• A medição de software busca encontrar um valor numérico para um atributo de software

• Comparando-se esses valores uns com os outros e com valores históricos, é possível chegar a conclusões sobre a qualidade do software

• Há dois usos principais para as medições – Fazer previsões gerais sobre um sistema

– Identificar componentes anômalos (controle)

Medições e métricas de software

• Algumas empresas usam métricas (ou usaram em algum momento), como a HP, a Nokia e a AT&T

• Na maioria das empresas os processos de desenvolvimento não são bem definidos e isso torna difícil definir padrões para métricas.

• Há também um apoio limitado de ferramentas.

• Geralmente é impossível definir os atributos de software diretamente

• As métricas podem ser estáticas ou dinâmicas.

Medições e métricas de software

• Geralmente é impossível medir diretamente os atributos de qualidade

• Alguns atributos internos (AE) podem ser medidos e eles ajudam a estimar a qualidade dos atributos de qualidade (AQ):

– Os AI devem ser medidos com precisão

– Deve haver um relacionamento entre os AI e os AQ.

– Esse relacionamento é compreendido, foi validado (Ex. COCOMO) e pode ser expresso em termos de uma fórmula ou modelo

O processo de medição

Métricas de produto

• As principais métricas que podem ser coletadas automaticamente, muitas vezes não tem relacionamentos claros com os AQ.

• Ex. facilidade de manutenção e de compreensão vs tamanho e complexidade ciclomática

• É preciso experiência e coletar e analisar grande quantidade de dados.

Métricas de produto

• As métricas podem ser:

– Dinâmicas

• Têm relacionamento mais estreito com os atributos de qualidade.

• Ex. Tempo de execução vs Desempenho

– Estáticas

• Têm relacionamento indireto com os atributos de qualidade.

Exemplos de métricas estáticas genéricas

• Fan-in/Fan-ou

• Extensão de código (tamanho)

• Complexidade ciclomática

• Extensão de identificadores

• Profundidade do aninhamento de declarações condicionais

• Índice de Fog ( compreensão de textos, com base no tamanho das sentenças e das palavras)

Métricas orientadas a objetos

• Profundidade da árvore de herança

• Fan-in/Fan-out de método

• Métodos ponderados por classe

• Número de operações sobrescritas

Deve-se tomar muito cuidado com a análise das medições. Ex. número de solicitações de mudanças.

Aprimoramento de processos

• Compreender os processos existentes e alterá-los para incrementar a qualidade do produto e/ou reduzir tempo e custo de desenvolvimento.

• O aprimoramento é uma atividade cíclica:

Aprimoramento (melhoria) de processos

• Processos de software são complexos

• Geralmente não é possível atender (ou otimizar todas as características). – Ex. Processo rápido vs visibilidade

• De um modo geral, os processo precisam ser adaptados para uma organização, considerando sua cultura organizacional, procedimentos e padrões.

• Simplesmente não é possível transplantar um processo que é usado em outro lugar.

Fatores principais de qualidade de produtos de software

• Qualidade do processo

• Tecnologia de Desenvolvimento

• Qualidade (e treinamento?) de pessoas

• Custo, tempo e cronograma

Classificação de processos

• Processos informais

• Processos gerenciados: existe um processo que define os procedimentos sua programação e relacionamento entre os procedimentos.

• Processos metódicos: existe um método definido e ferramentas de apoio

• Processos em aprimoramento: têm um orçamento específico para aprimoramento e procedimentos para conduzir esses aprimoramentos.

Medições de processos

• São dados quantitativos sobre o processo de software. Ex.

– Esforço (Pessoa-dia, viagens, recursos)

– Tempo gasto em cada atividade

– Eventos específicos (Ex. defeitos por inspeção de código, número de solicitações de mudanças de requisitos etc)

• É preciso saber o que medir.

– GQM: objetivos, questões métricas (Basili e Rombach)

Análise e modelagem de processos

• Estudo dos processos existentes e criação de um modelo abstrato do processo captando suas características principais.

• Técnicas usadas incluem: Questionários e entrevistas, estudos etnográficos

• Há uma interação envolvida: a análise permite definir o que deve ser medido e ao medir se conhece melhor o processo, levando ao aprimoramento.

• O processo representa geralmente uma situação ideal, mas podem ocorrer muitas exceções e imprevisto. Modelos de processos são incompletos e os Gerentes deve lida com as exceções e imprevistos

Processo de mudança de processo

O Framework CMMI

• SEI - Software Engineering Institute

• Início dos anos 90 CMM (Capability Maturity Model) (Paulk et all)

• CMMI (Ahern et all, 2001): evolução do CMMI para incluir a capacidade de aprimoramento e aplicação em um conjunto mais amplo de empresas

• Modelo básico utilizado:

– Áreas de processo (24)

– Objetivos (descrições abstratas de um estado desejado)

– Práticas (como atingir um objetivo)

•É compatível com o CMM para software •Escala de 6 pontos: 1 - não realizado, 2 – Inícial ... •Prescreve os objetivos a serem alcançados em cada nível •O aprimoramento é conseguido galgando-se níveis e incorporando novas práticas ao processo

Princípio básico

• Cada nível tem um conjunto de áreas de processo associada e objetivos genéricos

• Exemplos de áreas para o nível “gerenciado”

– Gerenciamento de requisitos

– Planejamento de projeto

– Monitoração e controle de projeto

– Gerenciamento de acordos com os fornecedores

– Medição e análise

– Garantia de qualidade de processo e produto

– Gerenciamento de Configuração

Modelo CMMI contínuo

• Muitas vezes pode ser mais adequado introduzir uma prática de nível mais elevado antes de uma prática de nível inferior.

• O CMMI-Contínuo avalia cada área de processo e estabelece um nível de avaliação de capacitação de 1 a 6

MPS.BR

• OSCIP: Melhoria de Processo de Software Brasileiro (MPS.BR)

• Baseado no CMMI

• Ligado ao Softex

• MPS: Modelo de Processo de Software

• Treina e certifica implementadores e avaliadores (pessoas e instituições)

MPS.BR - Níveis

• G – Parcialmente gerenciado – G. Projetos – G. Requisitos

• F – Gerenciado – G. Aquisição – Configuração – G. Qualidade (GQA) – G. Portfolio de Projetos – Medição

• E – Parcialmente Definido – Avaliação e medição do processo organizacional – Definição do processo organizacional – G. Recursos Humanos – G. de Reutilização

MPS.BR - Níveis

• D – Largamente Definido – Desenvolvimento de Requisitos – Integração do Produto – Projeto e Construção do Produto – Validação – Verificação

• C – Definido – Desenvolvimento para reutilização – G. de Decisões – G. de Riscos

• B – Gerenciado Quantitativamente • A – Em Otimização