A norma ISO/IEC 9126 prevê a definição de características e o processo de avaliação de qualidade dos produtos de software, durante todo o seu ciclo de vida. Seus conceitos estão estruturados em quatro documentos. O primeiro destes documentos é o ISO/IEC 9126-1 (2002), que define as características consideradas na avaliação da qualidade de software e como estas características são decompostas em sub-características. O Quadro 3 apresenta a relação de características e respectivas sub-características descritas na norma ISO/IEC 9126-1 (2002).
Quadro 3 - Características e Sub-características da ISO 9126-1
Característica de
qualidade Sub-característica
FUNCIONALIDADE Conjunto de atributos que evidenciam a existência de um conjunto de funções e suas propriedades especificadas.
• Adequação
• Acurácia
• Interoperabilidade
• Conformidade
• Segurança de acesso
• Conformidade relacionada à funcionalidade
CONFIABILIDADE
Conjunto de atributos que evidenciam a capacidade do software de manter seu nível de desempenho sob condições estabelecidas durante um período de tempo estabelecido.
• Maturidade
• Tolerância à falhas
• Recuperabilidade
• Conformidade relacionada à confiabilidade
USABILIDADE Conjunto de atributos que evidenciam o esforço necessário para poder-se
utilizar o software, bem como o julgamento individual deste uso, por um conjunto implícito ou explícito de usuários.
• Inteligibilidade
• Apreensibilidade
• Operacionalidade
• Conformidade relacionada à usabilidade
EFICIÊNCIA Conjunto de atributos que evidenciam o relacionamento entre o nível de
desempenho do software e a quantidade de recursos usados, sob condições estabelecidas.
• Comportamento em relação ao tempo
• Comportamento em relação aos recursos
• Conformidade relacionada à eficiência
PORTABILIDADE Conjunto de atributos que evidenciam a capacidade do software em ser
Quadro 3 (cont.) - Características e Sub-características da ISO 9126-1
Característica de
qualidade Sub-característica
• Adaptabilidade
• Capacidade para ser instalado
• Conformidade
• Capacidade para substituir
• Conformidade relacionada à usabilidade
MANUTENIBILIDADE Conjunto de atributos que evidenciam o esforço necessário para fazer
modificações especificadas no software.
• Analisabilidade
• Modificabilidade
• Estabilidade
• Testabilidade
• Conformidade relacionada à manutenibilidade
Complementando a definição de manutenibilidade apresentada pela norma
ISO/IEC 9126-1 (2002), o padrão IEEE Std 610.12 (1990), acrescenta o conceito da
manutenibilidade como “a facilidade com a qual um sistema, ou seus componentes, podem ser modificados para a correção de falhas, para a melhoria de desempenho ou outros atributos e para adaptar-se a um ambiente de mudanças”.
As medidas de qualidade de produto de software que quantificam as características e sub-características definidas no documento ISO/IEC 9126-1 (2002) estão descritas nos outros três documentos da norma.
O segundo documento, que define as medidas externas para avaliação das características de qualidade de produto de software é a norma ISO/IEC 9126-2. As medidas externas definidas nesta norma referem-se aos atributos do tipo externos, apresentados na seção 2.2.1, e estão relacionadas com o comportamento do sistema. De acordo com ISO/IEC 9126-2 (2002), as medidas externas, somente podem ser utilizadas durante a fase de testes do sistema ou durante sua fase de utilização, portanto, a medição é realizada quando da execução do software no seu ambiente operacional. O Quadro 4 apresenta as medidas externas de
manutenibilidade definidas na norma ISO/IEC 9126-2 (2002), as questões que estas medidas visam responder e suas respectivas fórmulas de cálculo.
Quadro 4 - Medidas externas de manutenibilidade (ISO/IEC 9126-2, 2002)
Atributos Questões Fórmula
Capacidade de Análise Rastreabilidade
de Auditoria • O usuário pode identificar qual operação específica causou a falha?
• O mantenedor consegue identificar
facilmente qual operação causou a falha?
X= A / B
A= número de dados efetivamente gravados durante a operação. B= número de dados previstos para serem gravados suficientes para monitorar o status do software durante a operação.
Suporte a função
de diagnóstico • Quão capazes são as funções de diagnóstico no suporte a análise causal?
• O usuário pode identificar qual
operação específica causou a falha?
X= A / B
A= número de falhas que o mantenedor pode detectar.
B= número total de falhas. Capacidade
Análise de Falhas
• O usuário pode identificar qual
operação específica causou a falha?
• O mantenedor consegue identificar
facilmente a causa da falha?
X= 1- A / B
A= número de falhas com causas não identificadas
B= número total de falhas. Eficiência da
Análise de Falhas
• O usuário pode identificar causa da
falha?
• O mantenedor consegue identificar
facilmente a causa da falha?
• Quão fácil é a análise da causa da
falha?
X= Somatório (T) / N T = Tout – Tin
Tout = tempo de diagnóstico da causa da falha
Tin = tempo que o relatório de falha é recebido
N= número de falhas Capacidade de
Monitoração de Status
• O usuário pode identificar causa da
falha utilizando dados monitorados durante a operação do sistema?
• O mantenedor pode identificar causa da
falha utilizando dados monitorados durante a operação do sistema?
X= 1- A / B
A= número de casos que mantenedores (ou usuários) não conseguiram obter dados de monitoração
B= número de casos em que
mantenedores (ou usuários) tentaram obter dados de monitoração.
Capacidade de Mudança Eficiência do
ciclo de mudanças
• A resolução dos problemas ocorre em
um período de tempo aceitável do pondo de vista do usuário?
Tempo médio: Tav= soma(Tu) / N Tu= Trc - Tsn
Tsn= tempo no qual o usuário envia o requisito de alteração no sistema Trc= tempo no qual o usuário recebe nova release do sistema
N= número de releases Tempo de
implementação de falhas
• O mantenedor facilmente modifica o
sistema para resolver alguma falha?
Tempo médio: Tav= soma(Tm) / N Tm= Tout - Tin
Tout= tempo no qual as causas das falhas são removidas do sistema. Tin= tempo no qual as causas das falhas são descobertas.
Quadro 4 (cont.) - Medidas externas de manutenibilidade (ISO/IEC 9126-2, 2002)
Atributos Questões Fórmula
Complexidade de
modificação • O mantenedor facilmente modifica o sistema para resolver algum problema?
T= soma(A/B) / N
A= tempo de trabalho gasto na mudança B= tamanho da mudança
N= número de mudanças Modificação
parametrizada • O usuário ou o mantenedor facilmente modifica parâmetros para alterar o sistema e resolver os problemas?
X=1- A / B
A= número de casos em que o
mantenedor falha em modificar o sistema utilizando parâmetros.
B= número de casos em que o mantenedor consegue modificar o sistema utilizando parâmetros. Capacidade de
controle às mudanças do sistema
• O usuário consegue facilmente
identificar uma nova versão do sistema?
• O mantenedor facilmente modifica o
sistema para resolver algum problema?
X= A / B
A= número de registros de mudança gravados
B= número de registros de mudança planejados
Estabilidade % de sucesso
das mudanças • O usuário pode utilizar o sistema sem interrupções após uma manutenção?
• O mantenedor consegue mitigar as
falhas causadas por efeitos colaterais de manutenções?
X = { (Na / Ta) / (Nb / Tb) }
Na = número de casos em que usuários encontram falhas durante operação após uma modificação
Nb = número de casos em que usuários encontram falhas durante operação antes de uma modificação
Ta = tempo após modificação Tb = tempo antes da modificação Localização do
impacto das mudanças
• O usuário pode utilizar o sistema sem
interrupções após uma manutenção?
• O mantenedor consegue mitigar as
falhas causadas por efeitos colaterais de manutenções?
X= A / N
A= número de falhas novas após modificação
N= número de falhas resolvidas Testabilidade
Disponibilidade de função de teste
• O usuário ou mantenedor consegue,
facilmente, executar testes
operacionais sem a necessidade de preparação de recursos adicionais.
X= A / B
A= número de casos em que são
utilizadas as funções de teste disponíveis B= número de casos possíveis de utilização.
Eficiência do re-
teste • O usuário ou mantenedor consegue, facilmente, executar testes
operacionais e determinar se o sistema está pronto para entrar em produção?
X= Soma(T) / N
T= tempo de teste para assegurar que a falha está resolvida.
N= número de falhas resolvidas. Restartabilidade
do Teste • Após manutenção, o usuário e o mantenedor conseguem facilmente
realizar teste operacional utilizando pontos de checagem?
X= A / B
A= número de casos em que pausa e recomeçam os testes em pontos de checagem
B= número de casos identificados de pausas nos testes
Conformidade relacionada à Manutenibilidade
Conformidade • Quão conforme é a manutenibilidade do
produto a regulamentos, normas e convenções?
X = 1- A / B
A= número de itens de conformidade especificados e não implementados durante teste.
B= número de itens de conformidade especificados.
O terceiro documento é a norma ISO/IEC 9126-3, que define as medidas internas de qualidade de produto de software. Estas medidas internas referem-se a atributos do tipo internos, apresentados na seção 2.2.1, e estão relacionadas com o sistema em si. De acordo com ISO/IEC 9126-3 (2002), as medidas internas devem ser aplicadas aos produtos de software não executáveis, durante a fase de desenvolvimento. Desta forma, estas medidas permitem identificar problemas de qualidade nos estágios iniciais da etapa de desenvolvimento dos produtos, possibilitando a execução de ações corretivas o mais cedo possível. O Quadro 5 apresenta as medidas internas de manutenibilidade definidas na norma ISO/IEC 9126-3 (2002).
Quadro 5 - Medidas internas de manutenibilidade (ISO/IEC 9126-3, 2002)
Atributos Questões Fórmula
Capacidade de Análise Registro de
atividades • Quão completa está o registro do status do sistema? X=A/B A= número de registros de dados
implementados.
B= número de registros de dados a implementar conforme especificação. Disponibilidade
da função de diagnóstico
• Quão completa está a disponibilização
da função de diagnóstico? X=A/B A= número de funções de diagnóstico
implementadas
B= número de funções de diagnóstico necessárias
Capacidade de Mudança Capacidade de
registro de mudanças
• As mudanças na especificação e nos
programas são registradas adequadamente no código com comentários?
X=A/B
A= número de mudanças registradas no código
B= número total de funções modificadas com relação ao código original
Estabilidade Impacto de
mudança • Qual a freqüência de impactos adversos após modificações? X=1-A/B A= número de impactos adversos
detectados após mudanças B= número de mudanças realizadas
Quadro 5 (cont.) - Medidas internas de manutenibilidade (ISO/IEC 9126-3, 2002)
Atributos Questões Fórmula
Localização de impacto da modificação
• Quão grande é o impacto da
modificação no software? X=A/B A= número de variáveis afetadas pela
modificação
B= número total de variáveis Testabilidade
Completude da função de testes “built-in”
• Quão completa é a capacidade do teste
“built-in”? X=A/B A= número de funções de teste “built-in”
implementadas
B= número de funções de teste “built-in” especificadas
Autonomia da
testabilidade • Quão independentemente o software pode ser testado? X=A/B A= número de dependências de outros
sistemas simuladas
B= número total de dependencias de teste de outros sistemas
Capacidade de observação do progresso do teste
• Quão completo é demonstrado o
resultado dos testes durante sua execução?
X=A/B
A= número de pontos de verificação implementados como especificado B= número de pontos de verificação especificados
Conformidade relacionada à Manutenibilidade
Conformidade • Quão conforme é a manutenibilidade do
produto a regulamentos, normas e convenções?
X=A/B
A= número de itens implementados relacionados com a conformidade da manutenibilidade
B= número total de itens de conformidade
O quarto e último documento, a norma ISO/IEC 9126-4, define as medidas de qualidade em uso do software responsáveis pela avaliação dos efeitos da utilização do sistema no seu contexto específico. De acordo com ISO/IEC 9126-4 (2004), estas medidas avaliam se o produto atende as necessidades de usuários específicos em alcançar seus objetivos com relação à produtividade, efetividade, segurança e satisfação.