Qualidade de Software: Normas e Processos

Classificado em Tecnologia

Escrito em em português com um tamanho de 10,88 KB.

**Produto x Processo**

  • Produto - ISO 9126: Norma para qualidade de produto de software.
  • ISO 14598: Guias para avaliação de produtos de software.
  • Processo - ISO 12207: Processo 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 avaliar processos de desenvolvimento de software.
  • CMMI (Capability Maturity Model Integrated): Modelo do SEI que entende o CMM para avaliar os processos de software.
  • MPS.BR: Modelo brasileiro de qualidade de processo de software baseado nas ISO 12207 e 15504 e CMMI.

**Qualidade de Software de Produto - ISO 9126 - Características**

**Funcionalidade (Satisfaz as necessidades?)**

  • Adequação: Presença das funções especificadas.
  • Acurácia: Faz o que foi proposto de forma correta?
  • Interoperabilidade: Interage com sistemas especificados?
  • Conformidade: Está de acordo com as normas, leis?
  • Segurança de acesso: Evita acesso não autorizado aos dados?

**Confiabilidade (É imune a falhas?)**

  • Maturidade: Com que frequência apresenta falhas?
  • 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 e a aplicação?
  • Apreensibilidade: É fácil aprender a usar?
  • Operacionalidade: É fácil controlar e operar?

**Eficiência (É rápido e enxuto?)**

  • Tempo: Tempo de resposta, velocidade de execução?
  • Recursos: Quantos recursos usa?

**Manutenibilidade (É fácil de modificar?)**

  • Analisabilidade: É fácil de encontrar a falha quando ocorre?
  • Modificabilidade: É fácil modificar e adaptar?
  • Estabilidade: Há grande risco quando se altera?
  • Testabilidade: É fácil testar após uma alteração?

**Portabilidade (É fácil de usar em outro ambiente?)**

  • Adaptabilidade: É fácil adaptar a outros ambientes?
  • Capacidade para ser instalado: É fácil instalar em outros ambientes?
  • Conformidade: Está de acordo com padrões de portabilidade?
  • Capacidade para substituir: É fácil usar para substituir outro?

**ISO 9126 - Detalhamento**

  • ISO 9126-1: Modelo de qualidade de software.
  • ISO 9126-2: Métricas externas - efetividade, produtividade, segurança, satisfação.
  • ISO 9126-3: Métricas internas - funcionabilidade, confiabilidade, usabilidade, eficiência, manutenibilidade, portabilidade.
  • ISO 9126-4: Métricas para qualidade de uso.

**Visões**

  • Usuário: Utilização e desempenho. É completo? É fácil?
  • Desenvolvedor: Baseado nas expectativas e requisitos?
  • Gerente de Desenvolvimento: Medida global de qualidade.

**Usos**

  • Definição dos requisitos de qualidade de um produto.
  • Avaliação do software desenvolvido antes da entrega.
  • Antes da aceitação pelo cliente.

**Formas**

Não apresenta formas, propõe que cada empresa desenvolva a sua.

**Normas Relacionadas à Qualidade de Software**

  • ISO 9126: Características e subcaracterísticas da qualidade de software.
  • ISO 14598: Processo de avaliação de software - aspecto gerencial.
  • ISO 12119: Pacotes de software - requisitos de qualidade e testes.
  • ISO 25000 (SQuaRE): Evolução das normas de qualidade de software.

Descrevem um modelo de qualidade e um processo de avaliação do produto de software.

  • ISO/IEC 14598-1: Visão Geral.
  • ISO/IEC 14598-2: Planejamento e Gestão.
  • ISO/IEC 14598-3: Processo para desenvolvedores.
  • ISO/IEC 14598-4: Processo para adquirentes.
  • ISO/IEC 14598-5: Processo para avaliadores.
  • ISO/IEC 14598-6: Documentação de módulos de avaliação.

**ISO 25000 (SQuaRE)**

Conceitos repensados, reformulação das normas, reorganização dos materiais. Norma muito recente.

**Focos da ISO 25000 (SQuaRE)**

  • Gerenciamento: Introdução geral sobre a ISO 25000 e definição de termos.
  • Modelo de Qualidade: Corresponde à ISO 9126, abordando conceitos de qualidade externa/interna e modelo de características/atores.
  • Medição: Define medição, processo de medição e proposta de métricas.
  • Requisitos de Qualidade: Herda da ISO 9126 o conceito do objetivo de qualidade para um produto e a relação com os requisitos do software.
  • Avaliação.

**ISO 12119**

Norma que estabelece os requisitos de qualidade para pacotes de software e instruções de como testar um pacote de software com relação aos requisitos estabelecidos.

  • Descrição do produto: Estabelece as propriedades do produto.
  • Documentação do usuário: Conjunto de documentos fornecido como parte integrante do produto para orientar o usuário na aplicação do mesmo.
  • Programas e dados: Conjunto completo de programas e dados de computador para a aplicação do produto de software e parte integrante do mesmo.

**Abordagem Ideal para Melhoria de Processos**

Descreve as fases, atividades e recursos para uma melhoria com sucesso.

  1. Inicialização: Estímulo, contexto e patrocínio, infraestrutura.
  2. Diagnóstico: Estado atual e desejado, recomendação.
  3. Diretrizes: Prioridade, abordagem, plano de ação.
  4. Realização: Solução, teste piloto, refinamento.
  5. Alavancagem: Implementação, analisar/validar, ações futuras.

**CMM (Modelo de Maturidade da Competência)**

Descreve os elementos chaves de um processo de software eficaz.

Define 5 níveis de maturidade para as empresas mudarem de um processo de software imaturo (ad hoc) para um maduro (disciplinado).

  • A maturidade dos processos influencia a atingir metas de custo, qualidade e cronograma.
  • A qualidade do processo pode ser analisada através do nível de maturidade do processo.

O CMM foi desenvolvido pela SEI (Software Engineering Institute), com a missão de exercer liderança nos estágios avançados da prática de engenharia de software para melhorar a qualidade de sistemas que dependam de software.

"A qualidade de um produto de software é profundamente determinada pela qualidade do processo de desenvolvimento e de manutenção usado para construí-lo."

**Os 5 Níveis do CMM**

  1. Inicial: Organizações caóticas.
  2. Repetível: Organizações disciplinadas.
  3. Definido: Organizações padronizadas.
  4. Gerenciado: Organizações previsíveis.
  5. Otimizado: Organizações com melhoria contínua.

Quanto maior o nível, maior a maturidade. Cada nível prepara para o próximo.

**Nível 1 - Inicial**

Processo ad hoc ou caótico. O sucesso depende de esforço heróico. Os requisitos fluem para dentro e um produto de software é (normalmente) produzido através de algum processo disforme. Espera-se que o produto final funcione.

**Nível 2 - Repetível**

Processos de administração básicos estabelecidos para acompanhar custo, cronograma e funcionalidade. A disciplina está em repetir sucessos anteriores em projetos similares. O processo de construção do software é uma série de caixas pretas com pontos de verificação definidos. Neste nível, não há preocupação com o processo de engenharia de software. Há dependência da experiência de projetos anteriores e novos tipos de produtos geram um desequilíbrio.

**Nível 3 - Definido**

Processos documentados, padronizados e integrados em um processo padrão. Todos os projetos usam uma versão aprovada do processo. Funções e responsabilidades no processo são bem entendidas. A produção do produto de software é visível através do processo. Existe um treinamento do processo e um grupo SEPG (Software Engineering Process Group) facilita a atividade de definição e melhoria do processo.

**Nível 4 - Gerenciado**

São feitas medidas. Os softwares e os produtos são compreendidos e controlados. A gerência tem bases objetivas para tomar a decisão e é capaz de prever o desempenho.

**Nível 5 - Otimizado**

Melhoria contínua do processo. Mudanças disciplinadas como um meio de vida. Mesmo o processo sendo maduro, ele é alvo de contínuas melhorias.

**Considerações sobre os Níveis do CMM**

  • Somente no nível 5 é possível alterar os processos com base em informações e dados concretos.
  • No nível 2, busca-se repetir um processo que deu certo em outros projetos.
  • No nível 3, o processo é definido e padronizado.
  • No nível 4, começa-se a medir a qualidade e a quantidade, levantando dados.
  • No nível 5, inicia-se a melhoria do processo, avaliando se ele é bom ou ruim.
  • No nível 2, detalha-se a entrada e a saída, mas não se analisa o que há nas caixas pretas. Não há comparação com outros processos. O gerenciamento visa a eficiência, mas sem comparação, não é possível saber se o processo é bem ou mal feito. Busca-se estabelecer práticas que deram certo, mas não há gerenciamento.
  • No nível 3, existe uma orientação, o processo é visível e todos entendem.
  • É necessário ter um grupo de qualidade, vigilantes do processo. Um dos requisitos é ter uma área trabalhando nessa área, com treinamento.
  • No nível 4, iniciam-se as métricas e estabelecem-se as medidas.

Entradas relacionadas: