Modelos de Qualidade de Software: Normas, Métricas e Avaliação

Classificado em Computação

Escrito em em português com um tamanho de 12,74 KB

Modelo de Qualidade de Software

A qualidade de um sistema de software pode ser entendida de diversas formas e utilizando diferentes abordagens.

A norma ISO/IEC 9126, ou conjunto de normas que tratam deste assunto no âmbito da ISO, estabelece um modelo de qualidade com os seguintes componentes:

  • Processo de desenvolvimento, cuja qualidade afeta a qualidade do produto de software gerado e é influenciado pela natureza do produto desenvolvido;
  • Produto, compreendendo os atributos de qualidade do produto (sistema) de software. Estes atributos de qualidade podem ser divididos entre atributos internos e externos. Estes se diferenciam pela forma como são aferidos (interna ou externamente ao produto de software) e em conjunto compõem a qualidade do produto de software em si;
  • Qualidade em Uso que consiste na aferição da qualidade do software em cada contexto específico de usuário. Esta é, também, a qualidade percebida pelo usuário.

Aspectos da Qualidade de Software

Os REQUISITOS EXPLÍCITOS de software são a base a partir da qual a qualidade é medida. A falta de conformidade aos requisitos significa falta de qualidade.

PADRÕES especificados definem um conjunto de critérios de desenvolvimento; se os critérios não forem seguidos, o resultado quase que seguramente será a falta de qualidade.

Existe um conjunto de requisitos implícitos que frequentemente não são mencionados na especificação.

Avaliação dos Fatores de Qualidade (FURPS)

Funcionalidade

Conjunto de características e capacidades do programa, generalidades das funções, segurança do sistema global.

Usabilidade

Fatores humanos, estética global, consistência, documentação.

Confiabilidade

Frequência e gravidade de falhas, acurácia dos resultados de saída, tempo médio entre falhas, previsibilidade do programa.

Desempenho

Velocidade de processamento, tempo de resposta, consumo de recursos, eficiência.

Suportabilidade

Capacidade de ampliar o programa, adaptabilidade, capacidade de serviço, capacidade de teste, compatibilidade, capacidade de organizar e controlar elementos da configuração de software, facilidade com que um sistema pode ser instalado, facilidade com que problemas podem ser detectados.

Norma ISO/IEC 9126/1991 ou NBR 13596/1996

Representa a atual padronização mundial para a qualidade do produto de software.

Baseada em 3 níveis:

  • Características
  • Subcaracterísticas
  • Métricas

Cada característica é refinada em um conjunto de subcaracterísticas e cada subcaracterística é avaliada por um conjunto de métricas.

Visões da Qualidade de Software

Visão do Usuário
  • Estão interessados principalmente no uso do software, no seu desempenho e nos efeitos do uso do software.
  • Avaliam o software sem conhecer seus aspectos internos: Confiabilidade, Eficiência, Usabilidade, Portabilidade.
Visão da Equipe de Desenvolvimento

Características de qualidade consideradas pelo usuário, mais características internas - Qualidade dos produtos intermediários do processo de desenvolvimento do software.

Visão do Gerente

Pode ter que balancear os melhoramentos na qualidade com critérios gerenciais, tais como atraso de cronograma ou estouro de orçamento. Deseja otimizar a qualidade dentro das limitações de custo, recursos humanos e prazos.

Características Detalhadas da ISO 9126

FUNCIONALIDADE - Satisfaz as necessidades?

  • Adequação - Propõe-se a fazer o que é apropriado?
  • Acurácia - Faz o que foi proposto de forma correta?
  • Interoperabilidade - É capaz de interagir com os sistemas especificados?
  • Conformidade - Está de acordo com as normas, leis, etc.?
  • Segurança de Acesso - Evita acesso não autorizado a programas e dados?

CONFIABILIDADE - É imune a falhas?

  • Maturidade - Com que frequência apresenta falhas por defeitos no software?
  • Tolerância a Falhas - Ocorrendo falhas, como ele reage?
  • Recuperabilidade - É capaz de recuperar dados em caso de falhas?

USABILIDADE - É fácil de usar?

  • Inteligibilidade - É fácil entender o conceito lógico e sua aplicabilidade?
  • Apreensibilidade - É fácil aprender a usar?
  • Operacionalidade - É fácil operar e controlar?

EFICIÊNCIA - É rápido e “enxuto”?

  • Comportamento em Relação ao Tempo - Qual o tempo de resposta, tempo de processamento e a velocidade na execução de suas funções?
  • Comportamento em Relação aos Recursos - Quanto recurso usa? Durante quanto tempo?

MANUTENIBILIDADE - É fácil de modificar?

  • Analisabilidade - É fácil de encontrar uma falha, quando ocorre?
  • Modificabilidade - É fácil modificar e adaptar?
  • Estabilidade - Existe risco de efeitos inesperados quando se faz alterações?
  • Testabilidade - É fácil validar o software modificado?

PORTABILIDADE - É fácil de usar em outro ambiente?

  • Adaptabilidade - É fácil adaptar a ambientes diferentes?
  • Capacidade de Instalação - É fácil ser instalado?
  • Conformidade - Está de acordo com padrões de portabilidade?
  • Capacidade de Substituição - É fácil usar para substituir?

Normas ISO Relacionadas à Qualidade de Software

ISO 14598-1 - Visão Geral

Ensina a utilizar as outras normas do grupo.

ISO 14598-2 - Planejamento e Gerenciamento

Sobre como fazer uma avaliação, de forma geral.

ISO 14598-3 - Guia para Desenvolvedores

Como avaliar sob o ponto de vista de quem desenvolve.

ISO 14598-4 - Guia para Aquisição

Como avaliar sob o ponto de vista de quem vai adquirir.

ISO 14598-5 - Guia para Avaliação

Como avaliar sob o ponto de vista de quem certifica.

ISO 14598-6 - Módulos de Avaliação

Detalhes sobre como avaliar cada característica.

ISO 12119 - Software de Prateleira

Requisitos de qualidade para este tipo de software; ela também destaca a necessidade de instruções para teste deste pacote, considerando estes requisitos.

ISO 12207 – Ciclo de Vida do Software

Formaliza a arquitetura do ciclo de vida do software.

O que são Métricas de Software?

  1. Esforço para a realização de uma tarefa.
  2. Tempo para a realização de uma tarefa.
  3. Custo para a realização de uma tarefa.
  4. Grau de satisfação do cliente (ADEQUAÇÃO DO PRODUTO AO PROPÓSITO, CONFORMIDADE DO PRODUTO COM A ESPECIFICAÇÃO).
  • Existem poucas métricas de aceitação geral para as características.
  • Grupos ou organizações de normalização podem estabelecer seus próprios modelos de processo de avaliação e métodos para a criação e validação de métricas relacionadas com as características.

Tipos de Métricas de Software

Métricas Diretas

Medidas realizadas em termos de atributos observáveis (geralmente por contagem). Ex: custo, esforço, número de linhas de código, número de páginas, número de diagramas, capacidade de memória.

Métricas Indiretas

Medidas obtidas a partir de outras métricas. Ex: complexidade, eficiência, confiabilidade, facilidade de manutenção.

Métricas Orientadas a Tamanho

São medidas diretas do tamanho dos artefatos de software associados ao processo por meio do qual o software é desenvolvido. Ex: esforço, custo, número de KLOC, número de páginas de documentação.

Métricas Orientadas por Função

Método para medição de software do ponto de vista do usuário, determinado de forma consistente o tamanho e a complexidade de um software.

Métricas de Produtividade

Concentram-se na saída do processo de engenharia de software. Ex.: número de casos por iteração.

Gestão do Conhecimento em Métricas

Por que Medir Software?

  • Entender e aperfeiçoar o processo de desenvolvimento.
  • Melhorar a gerência de projetos e o relacionamento com clientes.
  • Formar uma baseline para estimativas.

O que faz uma Boa Métrica?

  • Facilmente calculada, entendida e testada.
  • Passível de automação (pode ser implementada em um programa).
  • Sugere uma estratégia de melhoria.

"Uma avaliação criada no que 'eu acho' é uma métrica falida."

Estágios da Avaliação da Qualidade

Estágio 1 - Definição de Requisitos de Qualidade

O objetivo é especificar requisitos em termos de características de qualidade e possíveis subcaracterísticas. Os requisitos expressam as exigências do ambiente para o produto de software em consideração, e precisam ser definidos antes do desenvolvimento.

Estágio 2 - Preparação da Avaliação

O objetivo é preparar as bases para a avaliação.

Fases da Preparação:
  • Seleção de Métricas de Qualidade
  • Definição dos Níveis de Pontuação
  • Definição dos Critérios de Julgamento

Estágio 3 - Procedimento de Avaliação

Fases do Procedimento:
  • Fase 1: Medição - As métricas escolhidas são aplicadas ao produto de software.
  • Fase 2: Pontuação - O nível é determinado para o valor medido.
  • Fase 3: Julgamento - Um conjunto de níveis pontuados é sintetizado. A qualidade sintetizada é comparada com outros aspectos, tais como tempo e custo. O resultado é uma decisão gerencial quanto à aceitação ou rejeição ou quanto à liberação ou não liberação do software.

Teoria da Medição

A teoria sobre métricas pode ajudar a resolver estes problemas.

Relações Empíricas

Ajudam a observar as relações do tipo verdadeiro/falso entre entidades do mundo real.

Ex. Relações empíricas entre o atributo altura das pessoas:

  • Binária - O Superman é mais alto do que Papai Noel.
  • Unária - O Superman é alto.
  • Ternária - O Superman é mais alto do que Papai Noel e Mamãe Noel.

Os Quatro Papéis da Medição

  • Entender - Métricas ajudam a entender o comportamento e funcionamento de processos, produtos e serviços de software.
  • Avaliar - Métricas podem ser utilizadas para tomar decisões e determinar o estabelecimento de padrões, metas e critérios de aceitação.
  • Controlar - Métricas podem ser utilizadas para controlar processos, produtos e serviços de software.
  • Prever - Métricas podem ser utilizadas para prever valores de atributos.

Exemplo do Uso do GQM

Métricas GQM:
  • Número de defeitos
  • Número de defeitos por status
  • Número de casos de testes planejados x executados
  • Número de requisitos testados

Principais Barreiras na Medição de Software

  • Falta de comprometimento da alta gerência.
  • Medir custa caro.
  • Os maiores benefícios vêm a longo prazo.
  • Má utilização das métricas.
  • Grande mudança cultural necessária.
  • Dificuldade de estabelecer medições apropriadas e úteis.
  • Interpretações dos dados realizadas de forma incorreta.
  • Obter o comprometimento de todos os envolvidos e impactados.
  • Estabelecer um programa de medições é fácil, o difícil é manter!

Os 5 Níveis de Maturidade do CMM

INICIAL - Organizações Caóticas

A organização não provê um ambiente estável para o desenvolvimento e manutenção de software.

REPETÍVEL - Organizações Disciplinadas

Processos administrativos básicos são estabelecidos para acompanhar custo, cronograma e funcionalidade.

DEFINIDO - Organizações Padronizadas

Todos os projetos usam uma versão aprovada do processo de software padrão da organização para desenvolvimento e manutenção de software.

GERENCIADO - Organizações Previsíveis

Caracterizado pela existência de processos de software passíveis de medida.

OTIMIZADO - Organizações com Melhoria Contínua

Contínua melhoria de processo é possível por retornos quantitativos dos processos e de ideias e tecnologias inovadoras.

Níveis de Maturidade Não Podem Ser Omitidos

  • Sem a disciplina de gerenciamento, o processo de engenharia é sacrificado.
  • Medidas detalhadas são inconsistentes sem um processo definido.

Entradas relacionadas: