Histórico da Norma
O desenvolvimento ou seleção de softwares de qualidade se faz necessário uma vez que os computadores estão presentes em diversas áreas de aplicação e sua correta operação é primordial e pode interferir até mesmo na segurança humana.
Dois fatores fundamentais para garantir a qualidade adequada do produto são a especificação e a avaliação da qualidade do produto. Através da definição apropriada das
características de qualidade e da especificação e avaliação de cada característica relevante de qualidade do produto de software utilizando métricas validadas ou amplamente aceitas, essa meta pode ser alcançada.
A NBR 13596 foi criada para suprir essas necessidades. Ela elucida seis características de qualidade e descreve um modelo de processo para avaliação de produto de software. Devido as características e as métricas associadas à essa norma serem úteis tanto para a avaliação de produto de software, quanto para a definição de requisitos de qualidade, entre outros, a NBR 13596 foi substituída por duas outras normas: a NBR ISO/IEC 9126 (Qualidade do produto de software) e NBR ISO/IEC 14598 (Avaliação de produto de software).
Estrutura da Norma
A norma ISO/IEC 9126 foi publicada em 1991 cobrindo a área de produtos de software, propondo características e sub características que definem um produto de qualidade. Após as revisões e melhorias as quais a norma foi submetida, foram criadas 4 divisões, que são:
ISO/IEC 9126-1: Modelo de Qualidade;
ISO/IEC 9126-2: Métricas Externas;
ISO/IEC 9126-3: Métricas Internas;
ISO/IEC 9126-4: Métricas de Qualidade em Uso.
Essas divisões também podem ser vistas na imagem abaixo:
3. Características
As características e suas sub características contidas na ISO/IEC 9126 são as seguintes:
Funcionalidade: verifica se o produto 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: verifica se o produto não contém 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: verifica se o produto é fácil de usar.
Compreensibilidade: é fácil entender o conceito lógico e sua aplicabilidade?
Apreensibilidade: é fácil aprender a usar?
Operacionalidade: é fácil operar e controlar?
Eficiência: verifica se o produto é rápido e conciso.
Comportamento em relação ao tempo: qual o tempo de resposta, tempo de processamento na execução de suas funções?
Comportamento em relação aos recursos: quanto recurso usa? Durante quanto tempo?
Manutenibilidade: verifica se o produto pode ser facilmente modificado.
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: verifica se o produto pode ser utilizado em outros ambientes.
Adaptabilidade: é fácil adaptar a ambientes diferentes?
Instalabilidade: é fácil instalar?
Conformidade: está de acordo com padrões de portabilidade?
Capacidade de substituição: é fácil usar para substituir outro?