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.