Publicado em: 31/07/2021

O que é qualidade de software e qualidade do produto?

Introdução

Na área de desenvolvimento de software a qualidade tem um espaço importante nos projetos. Mas para definir o que é qualidade é necessário primeiramente um estudo amplo que envolve desde o domínio do software até as necessidades de usabilidade dos usuários finais.

Qualidade de software

Qualidade de software implica em custos para o cliente e para a empresa de software, tempo dedicado a manutenção, erros que podem causar quedas no sistema, má reputação para a empresa desenvolvedora.

Na visão do produto a qualidade está ligada a valores inerentes do produto, a manufatura, atendimento das metas do usuário, ao valor e custo benefício.

Quando falamos de software, a qualidade está ligada a manufatura e atendimento das metas do usuário. Ou seja, “O grau em que o sistema, componente ou processo atende os requisitos do cliente ou do usuário” (IEEE 610, 1990). Fatores que afetam a qualidade do software são:

  • tecnologias de desenvolvimento, como linguagens de programação, IDEs, compiladores, bibliotecas e frameworks;
  • qualidade das pessoas, que quanto mais capacitadas estiverem, melhor deverá ser o produto final;
  • gerência do desenvolvimento, que está relacionado com a gestão dos custos envolvidos, tempo dedicado e cronograma;
  • qualidades de processo que estão relacionados ao gerenciamento das pessoas e custos envolvidos dentro do desenvolvimento do software;

Existem custos dentro do desenvolvimento de um software de qualidade que estão ligados à prevenção, para evitar problemas de qualidade, de avaliação, que certificam a qualidade desejada, e os custos de falhas, ligados à resolução de problemas conforme eles acontecem.

Qualidade do processo e do produto

Como definir o grau? Como avaliá-lo? O que especificar? Como especificar? Pode-se fazer uso de modelos de qualidade, que definem as características de qualidade de um software ou sistema computacional, que servem para auxiliar na especificação de requisitos e medir e avaliar a qualidade de um produto de software.

ISO 250000

É uma família de normas que trata dos requisitos de avaliação da qualidade de produto de software, é uma reorganização de outras normas como a ISO 9126 e ISO 14598. Possui 5 divisões, onde cada uma possui várias edições:

  • Gerenciamento de qualidade (ISO 2500x) - Definição de modelos, conceitos e termos comuns;
  • Modelo de qualidade (ISO 2501x) - Definição de modelos de qualidade;
  • Medição da qualidade (ISO 2502x) - Definição de um modelo de referência para medição;
  • Requisitos de qualidade (ISO 2503x) - Especificação de requisitos de software;
  • Avaliação de qualidade (ISO 2504x) - Recomendações para avaliação da qualidade de um produto de software;

O modelo de qualidade é definido a partir de uma hierarquia que é composta por características, subcaracterísticas, propriedades de qualidade, esta última são mensuráveis e que dão valor para o grau que considera-se nas características e subcaracterísticas.

O modelo da qualidade é dividido em três partes: qualidade do produto, que é mensurável a partir dos desenvolvedores; qualidade em uso, que representa quanto o uso de software cumpre às necessidades e metas dos seus usuários; qualidade de dados, que é definido pela ISO 25012.

O modelo qualidade de produto, são elas:

  • Adequação funcional: se trata do quanto o produto provê funcionalidade que cumprem as necessidades;
  • Eficiência de execução: uso de recursos pelo programa;
  • Compatibilidade: o quanto o produto pode compartilhar informações com outros softwares;
  • Usabilidade: como o produto se adequa às necessidades dos usuários e o quanto é fácil de utilizá-lo;
  • Confiabilidade: quanto o produto executa as suas funções dentro das especificações;
  • Segurança: o quão integro os dados estão e a responsabilidade do produto em cima disso;
  • Manutenibilidade: a facilidade de prestar manutenção;
  • Portabilidade: quão fácil é portar o produto para ambientes diferentes.

Cada stakeholder tem uma necessidade diferente para cada característica da qualidade. Então a definição de qualidade para o produto de software passa diretamente pela necessidade de saber quais são esses stakeholders. A definição dos graus das subcaracterísticas podem ser feitas auxiliadas pelas métricas associadas utilizando a ISO 25022 e ISO 25023.

Conclusão

A definição de qualidade pode ser bem ampla, ela dependerá em boa parte das necessidades e metas dos stakeholders e dos usuários do produto de software. Assim é possível utilizar as padronizações,como no caso das ISO 2500x para auxiliar no desenvolvimento e levantamento de requisitos, métricas importantes para o projeto e organização do tempo e recursos para o cumprimento dos prazos e metas. Não é possível ter tudo por questões financeiras, tempo e disponibilidade de recursos de mão de obra, pois seria necessário mensurar tudo possível dentro do projeto e isso eleva os custos.

OBS: Esse texto faz parte de uma série de textos que irei publicar aqui e que eu produzi durante meus estudos da disciplina de Engenharia de Software. Espero que goste.