Entre as várias definições de qualidade de software, podemos dizer que o conceito trata da capacidade de um produto digital satisfazer as necessidades declaradas e implícitas quando usado sob condições especificadas. Porém, como ter uma medida para isso? A ISO/IEC 25010 pode ser uma resposta.
Qual é a ISO para qualidade de software?
ISO é a sigla para International Organization for Standardization, uma organização internacional que promove a padronização de produtos e serviços por meio de normas internacionais. Já o IEC se refere à Comissão Eletrotécnica Internacional, que trabalha para normatização de tecnologias elétricas, eletrônicas e relacionadas. Em conjunto, ambas desenvolvem as normas ISO/IEC e, especificamente a 25010, versa sobre qualidade de software.
Para que serve a ISO/IEC 25010?
Como já introduzido anteriormente, a qualidade de um software é um objetivo do processo de desenvolvimento. Assim, ao desenvolver-se um produto digital, é preciso ter previamente estabelecidas as características de qualidade que se deseja alcançar.
A ISO/IEC 25010 é um padrão ISO para qualidade de software, disponibilizada em 2011, substituindo a ISO/IEC 9126. Ela descreve um modelo de qualidade de software.
Por definição, modelo de qualidade é o conjunto definido de características, categorias de atributos de qualidade de software, e relações entre elas. Essa arquitetura fornece a estrutura para especificar os requisitos de qualidade e avaliá-los.
Quantos atributos possui a norma ISO/IEC 25010?
O modelo de qualidade de software da ISO/IEC 25010 é composto por oito atributos ou características. São elas:
- Adequação Funcional
- Eficiência de performance
- Compatibilidade
- Usabilidade
- Confiabilidade
- Segurança
- Manutenibilidade
- Portabilidade

Cada atributo da ISO/IEC 25010 está organizado em subcaracterísticas, que se relacionam às propriedades do software. Vamos explicar cada atributo e falar sobre suas subdivisões.
Os atributos e subcaracterísticas da ISO/IEC 25010
Adequação funcional
Essa característica envolve a capacidade do software de realizar o que ele se propõe a fazer. As subcaracterísticas são:
- Integridade funcional: cobertura de todas as tarefas e objetivos;
- Correção funcional: quão bem provê os resultados corretos quando preciso;
- Adequação funcional: quão bem é capaz de realizar tarefas e objetivos específicos.
Eficiência de performance
Esse atributo está relacionado à performance do software relacionada à quantidade de recursos utilizados e possui as seguintes subdivisões:
- Comportamento do tempo: tempo de resposta e processamento;
- Uso de recursos: quantidade e tipos de recursos utilizados por um produto ou sistema;
- Capacidade: limite máximo de um produto.
Compatibilidade
É a capacidade de um produto, sistema ou componente de trocar informações, assim como de realizar funções enquanto compartilha um hardware. São subcaracterísticas:
- Coexistência: capacidade de realizar funções eficientemente enquanto compartilha um ambiente ou recursos com outros produtos;
- Interoperabilidade: capacidade de dois ou mais sistemas, produtos ou componentes de trocar informações e as utilizarem.
Usabilidade
Trata-se da capacidade de um produto ou sistema de realizar objetivos eficientemente, efetivamente e de maneira satisfatória. As subcaracterísticas são as seguintes:
- Adequação reconhecível: capacidade de reconhecer se um produto ou sistema é apropriado para suas necessidades;
- Capacidade de aprendizado: facilidade de aprender como utilizar o produto ou sistema;
- Operabilidade: se um produto ou sistema possui atributos que facilitam seu uso e controle;
- Proteção de erro do usuário: capacidade do produto proteger o usuário de erros;
- Estética da interface de usuário: agradabilidade da interface;
- Acessibilidade: capacidade de um produto ou sistema ser utilizado por pessoas com características e capacidades diversas.
Confiabilidade
Diz respeito a quão bem um produto realiza funções específicas sob condições específicas. Estas são as subcaracterísticas deste atributo da ISO/IEC 25010:
- Maturidade: capacidade do produto atingir as necessidades de confiabilidade;
- Disponibilidade: se um sistema, produto ou componente está acessível e operante;
- Tolerância a falhas: capacidade de um sistema, produto ou componente operar apesar de falhas de hardware e/ou software;
- Recuperabilidade: capacidade de recuperar dados em uma possível falha ou interrupção.
Segurança
A capacidade de um produto ou sistema proteger informação e dados de vulnerabilidades é chamada de segurança, dentre as características da ISO/IEC 25010. As subdivisões são:
- Confidencialidade – produto ou sistema é capaz de garantir que dados são acessados apenas por aqueles que têm acesso autorizado.
- Integridade – capacidade de prevenir acesso não-autorizado e modificação de dados ou programas de computador.
- Ausência de repúdio – capacidade de provar que ações ou eventos aconteceram.
- Rastreabilidade de uso – ações de usuários não autorizados devem ser ligados a eles.
- Autenticidade – a identidade de um sujeito ou recurso pode ser provada.
Manutenibilidade
A manutenibilidade é a característica que engloba a capacidade de um produto ou sistema ser modificado, atualizado e adaptado às mudanças de ambiente e requerimentos. Abaixo, vamos ver as subcaracterísticas deste atributo.
- Modularidade: programas ou sistemas podem sofrer mudanças sem impactar em outros componentes;
- Reusabilidade: capacidade de um recurso poder ser utilizado em mais de um sistema;
- Analisabilidade: capacidade de diagnosticar problemas ou causas de falhas, assim como partes a serem modificadas;
- Modificabilidade: capacidade de um produto ou sistema ser modificado sem introduzir defeitos ou diminuir a qualidade atual;
- Testabilidade: efetividade de testes para o sistema, produto ou componente.
Portabilidade
Esta característica é a capacidade de um sistema, produto ou componente de ser transferido de um ambiente para outro. As suas subcaracterísticas são:
- Adaptabilidade: capacidade de um produto ou sistema de ser adaptado a um novo hardware, software ou outros ambientes;
- Facilidade de instalação: capacidade de um produto ou sistema ser instalado ou desinstalado facilmente;
- Capacidade de substituição: capacidade de ser trocado por outro produto similar.
Por que investir em qualidade utilizando a ISO/IEC 25010?
A razão principal para investir em qualidade parece óbvia: desenvolver um produto melhor. Porém, de acordo com Martin Fowler, produzir software de alta qualidade é mais barato.
A alta qualidade reduz o custo, tempo e esforço para adicionar funções novas, além de diminuir o retrabalho inútil. Em última análise, ainda é possível relacionar má qualidade aos efeitos nocivos decorrentes de falhas de software, como perda de clientes, reputação e, esticando a corda ao limite, perda de vidas e danos mais sérios às pessoas.
Por isso tudo, fica clara a importância de normas como a ISO/IEC 25010, no sentido de padronizar o tema de qualidade de software. Este modelo cria bases sólidas tanto para a evolução tecnológica sustentável como para a prevenção e fiscalização de possíveis desvios de rota por parte dos desenvolvedores e empresas.