5.1 – Visão Geral da Norma ISO/IEC 9126
Qualidade de Produto de Software
5.1.1 - Características de Qualidade de Software e Métricas.
A seguir apresentamos uma descrição geral da norma padrão ISO/IEC 9126-1 (2001), que tem foco na visão do usuário do produto de software. Este capítulo por objetivo descrever as características e subcaracterísticas do Modelo de Qualidade apresentadas por esta norma ISO. Todas as definições das características bem como de suas subcaracterísticas foram extraídas do texto da norma ISO/IEC 9126-1 (2001).
Estrutura: A norma ISO/IEC 9126 (2001) é dividida em quatro partes : a) ISO/IEC 9126-1: Modelo de Qualidade;
b) ISO/IEC 9126-2: Métricas Externas; c) ISO/IEC 9126-3: Métricas Internas;
d) ISO/IEC 9126-4: Métricas da Qualidade em Uso.
5.1.2 - Descrição da Norma ISO/IEC 9126 – 1 ♦ Descrição do Modelo de Qualidade
O modelo de qualidade ISO/IEC 9126-1 (2001) categoriza os atributos de qualidade de software em seis características: funcionalidade, confiabilidade, usabilidade, eficiência, manutenibilidade e portabilidade. Por sua vez, cada uma delas é subdividida em subcaracterísticas.
As características pretendem abranger todos os aspectos de qualidade de
software, ou seja, deve ser possível especificar qualquer requisito de qualidade utilizando-se das seis características.
A norma ISO/IEC 9126-1 (2001), sendo um modelo de qualidade, privilegia a visão do usuário, seja este um usuário final, o pessoal da manutenção ou os operadores de
software. Por este motivo o modelo é representado de forma hierárquica – em níveis. No primeiro nível estão definidas as características de qualidade de produto. No segundo nível são definidas as subcaracterísticas relacionadas a cada uma das características do nível anterior provendo uma terminologia consistente para qualidade de software. O desdobramento das características em subcaracterísticas serve para delimitar melhor seu escopo (ISO/IEC 9126-1, 2001). No quadro 5 está descrita a característica “Funcionalidade” bem como suas subcaracterísticas:
Característica Funcionalidade: Conjunto de atributos que evidenciam as funções e suas propriedades especificadas. As funções são as que satisfazem às necessidades explícitas ou implícitas. Evidencia que o conjunto de funções atende as necessidades explícitas (objetivos, funções e desempenho esperado) e implícitas, para a finalidade ao qual se destina o produto, buscando com isso satisfazer as necessidades dos usuários.
SUBCARACTERÍSTICA DESCRIÇÃO
Adequação Atributos que evidenciam a presença de um conjunto de funções e
sua apropriação para tarefas especificadas. Demonstra a capacidade de fornecer um conjunto apropriado de funções para tarefas específicas do usuário. Diz respeito à satisfação das condições propostas quando da construção do software, verificando se é apropriado ao uso, conforme especificado.
Acurácia Atributos que evidenciam a capacidade do software em fornecer o
resultado com o grau de precisão desejado.
Interoperacionabilidade Atributos do software que evidenciam sua capacidade de interagir
com um ou mais sistemas. Capacidade do software de se comunicar com outros sistemas.
SUBCARACTERÍSTICA DESCRIÇÃO
Conformidade Atributos que fazem com que o software esteja de acordo com as normas, convenções ou regulamentações previstas em leis ou descrições similares relacionadas à aplicação. Capacidade demonstrada pelo sistema de aderir a padrões e convenções relativas à funcionalidade.
Segurança de Acesso Atributos do software que evidenciam sua capacidade de evitar o acesso não autorizado a programas e dados. Capacidade que o
software apresenta de evitar acessos não autorizados.
Confiabilidade Atributos que evidenciam a capacidade do software de manter seu nível de desempenho, sob condições estabelecidas, durante um período de tempo. Evidencia que o desempenho se mantém ao longo do tempo, estando imune à falhas.
Maturidade Atributos que evidenciam a freqüência com que ocorrem falhas no software causadas por defeitos.
Tolerância a Falhas Atributos que evidenciam a capacidade do software em manter um nível de desempenho especificado em caso de falha. Ocorrendo falhas, determina qual procedimento a ser tomado.
Recuperabilidade Atributos do software que evidenciam sua capacidade de restabelecer
seu nível de desempenho e recuperar os dados diretamente afetados, em caso de falha. Relativo a capacidade do software de recuperar os dados em caso de falha em tempo hábil.
Quadro 5 – Norma ISO/IEC 9126-1 - Característica Funcionalidade (ISO/IEC 9126-1, 2001) Cont.
Característica Usabilidade: Conjunto de atributos que evidenciam o esforço necessário para se poder utilizar o software, bem como o julgamento individual desse uso. Tem foco na medida da facilidade para a utilização do software.
SUBCARACTERÍSTICA DESCRIÇÃO
Inteligibilidade Atributos que evidenciam o esforço do usuário para reconhecer o
conceito lógico e a aplicabilidade do software. Mostra a facilidade de entendimento dos conceitos utilizados e a sua aplicação .
Aprendizado Atributos que mostram o esforço do usuário em aprender sua
aplicação. Relativo ao grau de dificuldade do usuário em aprender a usar o software.
Operacionalidade Atributos que evidenciam o esforço do usuário para executar sua
operação. O usuário deve entender de maneira clara as funções disponíveis e o que elas fazem.
Conformidade Demonstra a capacidade de aderir a padrões, convenções, leis e
prescrições similares relativas à usabilidade.
Quadro 6 – Norma ISO/IEC 9126-1 - Característica Usabilidade (ISO/IEC 9126-1, 2001)
Característica Eficiência: Conjunto de atributos que evidenciam o relacionamento entre o nível de desempenho do software e a quantidade de recursos utilizados, sob condições estabelecidas. Evidencia que os recursos e os tempos envolvidos são compatíveis com o nível de desempenho requerido para o produto.
SUBCARACTERÍSTICA DESCRIÇÃO
Comportamento em
Relação ao Tempo
Atributos que evidenciam o tempo de resposta, tempo de processamento bem como taxas de transferência.
Comportamento em
Relação aos Recursos
Atributos que evidenciam a capacidade do software em usar a quantidade e tipos de recursos adequados para execução de suas funções.
Quadro 7 – Norma ISO/IEC 9126-1 - Característica Eficiência (ISO/IEC 9126-1, 2001)
Característica Manutenibilidade: Conjunto de atributos que evidenciam o
esforço necessário para fazer modificações especificadas no software. A manutenibilidade está relacionada com a facilidade de realizar qualquer tipo de manutenção no software, sejam corretivas, evolutivas ou adaptativas.
SUBCARACTERÍSTICA DESCRIÇÃO
Analisabilidade Atributos que evidenciam o esforço necessário para diagnosticar deficiências ou causas de falhas, ou para identificar partes a serem modificadas.
Modificabilidade Evidenciam o esforço necessário para modificar o software, remover seus defeitos ou adaptá-lo a mudanças ambientais. Facilidade de modificação e remoção de defeitos.
Estabilidade Evidenciam a capacidade de evitar efeitos inesperados, ocasionados por modificações no software. Quando um software precisar sofrer alguma alteração, essa deverá ser feita de forma independente dos demais componentes da solução.
Testabilidade Atributos que evidenciam a capacidade de validar o software modificado. Diz respeito à facilidade do software a ser testado.
Conformidade Demonstra a capacidade de aderir a padrões, convenções, leis e prescrições similares relativas à manutenibilidade.
Quadro 8 – Norma ISO/IEC 9126-1 - Característica Manutenibilidade (ISO/IEC 9126-1, 2001)
Característica Confiabilidade: Conjunto de atributos que evidenciam o comportamento e a capacidade do software em manter seu funcionamento sob condições específicas. Evidencia que os recursos envolvidos são compatíveis com o nível de funcionalidade requerido para o produto.
SUBCARACTERÍSTICA DESCRIÇÃO
Maturidade Atributos que evidenciam o nível de falhas apresentado pelo software
causadas por erros contidos nos mesmos.
Tolerância a Falhas Atributos que evidenciam a capacidade do software em manter
inalterado em caso de falha.
SUBCARACTERÍSTICA DESCRIÇÃO
Recuperabilidade Atributos que evidenciam a capacidade do software em restabelecer
seu nível operacional, bem como, recuperar os dados diretamente afetados pela ocorrência de uma falha.
Conformidade de
Confiabilidade
Demonstra o número de funções no software que apresentam falhas em aderir à conformidade de padrões, convenções ou atos regulatórios relativos a confiabilidade do sistema.
Quadro 9 – Norma ISO/IEC 9126-1 - Característica Confiabilidade (ISO/IEC 9126-1, 2001) Cont.
Característica Portabilidade: Atributos que evidenciam a capacidade do
software de ser transferido de um ambiente para outro. Evidencia que é possível utilizar o produto em diversos sistemas operacionais ou em diferentes máquinas com baixo esforço de adaptação.
SUBCARACTERÍSTICA DESCRIÇÃO
Adaptabilidade Atributos que evidenciam a capacidade do software em ser adaptado
a ambientes diferentes. A transferência de um ambiente para outro deve ser possível sem que haja um nível de mudanças impactante aos resultados do projeto.
Capacidade de
Instalação
Atributos que evidenciam o esforço necessário para instalação em um ambiente especifico. Demonstra a capacidade do software em executar os procedimentos de instalação com poucas intervenções do usuário.
Conformidade Atributos que o tornam compatíveis com padrões ou convenções relacionados à portabilidade.
Capacidade Substituição
Atributos que evidenciam a capacidade e esforço necessário para substituir um software no ambiente estabelecido por outro software. Diz respeito ao grau de dificuldade de substituir um software por outro já instalado.
É importante a obtenção de maiores detalhes sobre como fazer uma avaliação da qualidade de um software. As características e subcaracterísticas da ISO/IEC 9126-1 (2001) fornecem uma base para o trabalho de avaliação da qualidade, porém, falta uma definição em detalhes de como atribuir um conceito para cada item. Daí a importância do trabalho em conjunto da ISO/IEC 9126-1 (2001) com a ISO/IEC 14598-5 (2002), pois essa descreve os passos para avaliação de um software. A figura 23 mostra o relacionamento entre as normas das séries ISO/IEC 9126 e ISO/IEC 14598.
5.1.3 - Escolha das Métricas
Em função do foco deste trabalho estar relacionado à alta disponibilidade de serviços fundamentados em SOA, vamos levar em consideração os aspectos apresentados pela característica de Confiabilidade. Segundo a norma ISO/IEC 9126-2 (2002), confiabilidade de produto de software pode ser definida como a probabilidade de operação livre de falhas de um software, em um ambiente especificado, durante um período de tempo. Suas subcaracterísticas são:
♦ Maturidade (Maturity): Mede o nível de falhas apresentado pelo software causadas por erros contidos nos mesmos;
♦ Tolerância a Falhas (Fault Tolerance): É a capacidade de produto de software em manter um nível especificado de desempenho em caso de falhas ou erros;
♦ Recuperabilidade (Recoverability): Demonstra a capacidade do software em se restabelecer e manter um nível especificado de desempenho bem como ser capaz de recuperar os dados afetados nestes casos de falhas;
♦ Conformidade de Confiabilidade (Reliability Compliance): Mede o grau de conformidade de um produto de software a padrões da indústria, convenções ou questões regulatórias segundo características de confiabilidade.
A precisão de uma avaliação de qualidade depende em grande parte das métricas escolhidas. Para aumentar a confiabilidade dos resultados são apresentadas, a seguir, algumas características. Estas características estão de acordo com os requisitos enumerados na norma ISO/IEC 9126-1 (2001). Tal norma especifica 26 métricas de confiabilidade, oito
internas, que podem ser aplicadas a um produto de software não executável (como uma especificação ou código-fonte) e 18 externas, que são mensuráveis a partir da execução e do comportamento do sistema.
Para análise neste trabalho foram selecionadas métricas externas que podem ser coletadas automaticamente. O objetivo é sermos o menos intrusivo possível em função de estarmos trabalhando com sistemas em ambiente de produção.
De acordo com ISO/IEC 9126-2 (2002) as métricas externas capazes de serem colhidas automaticamente oferecem um menor risco de inserção de falhas no serviço a ser medido. Para esta análise foram selecionadas duas métricas externas, de maior relevância para a medição da disponibilidade, apresentadas no Quadro 11, as quais, não necessitam da intervenção humana durante o período de coleta.
Quadro 11: Quadro de métricas de confiabilidades escolhidas (ISO/IEC 9126-2, 2002) M MÉÉTTRRIICCAA PPRROOPPÓÓSSIITTOODDAAMMÉÉTTRRIICCAA MEMEDDIIDDAAEE F FÓÓRRMMUULLAA I INNTTEERRPPRREETT A AÇÇÃÃOO T TIIPPOODDEE E ESSCCAALLAA TITIPPOODDAAMMEEDDIIDDAA C COOLLEETTAA D DEEDADADDOOSS
Disponibilidade Quanto o sistema ficou disponível para o uso, durante o período de teste? X=To/(To+Tr) To=Tempo total de operação Tr=Tempo total de reparo 0 <= X <= 1 Quanto mais próximo de 1 melhor Absoluta To=Tempo Tr=Tempo X=Tempo/Tempo Monitora mento da Operação do usuário. Log do sistema Tempo médio entre falhas (MTBF)
Com que freqüência o sistema falha durante a operação?
X=T/A T=Tempo total de operação A=nº de falhas detectadas 0 < X Quanto menor o valor de X, melhor. Taxa T=Tempo A=Quantidade X=Tempo/ Quantidade Monitora mento da Operação do usuário. Log do sistema Tempo médio de reparo (MTTR)
Representa a média de tempo em que o sistema permanece indisponível X=T/A T=Tempo total de reparo A=nº de falhas detectadas 0 < X Quanto menor o valor de X, melhor. Taxa T=Tempo A=Quantidade X=Tempo/ Quantidade Monitora mento da Operação do usuário. Log do sistema
Várias métricas contam o número de falhas ou de defeitos (Ver Item 4.5 – Erros,
Faltas e Falhas). Um defeito é um erro na programação sendo percebido quando o usuário detecta uma falha na execução do sistema. Os defeitos só podem ser descobertos por análise cuidadosa do código. Em geral as falhas são mais facilmente detectadas e servem de índice da presença de um defeito.
5.2 – Norma ISO/IEC 14598
Planejamento e Gerenciamento do Processo de Avaliação.
Tal como referenciado por Tsukumo (1997), para estabelecimento de um processo formal para realização da avaliação da qualidade de produtos de software (Serviços) podemos utilizar a norma ISO/IEC 14598-5 (2002). Essa norma provê um conjunto de guias e requisitos que orientam o planejamento e a execução de um processo de avaliação da qualidade do produto de software.
A Norma é dividida em 6 partes, que são: 1. 14598–1: Visão Geral;
2. 14598–2: Planejamento e Gerenciamento;
3. 14598-3: Processo para a Equipe de Desenvolvimento; 4. 14598-4: Processo para o Comprador;
5. 14598-5: Processo para o Avaliador e; 6. 14598-6: Módulos de Avaliação.
Figura 21 - Processos de avaliação – ISO/IEC 14598 (ISO/IEC 14598, 2002 ; TSUKUMO, 1997).
2. Planejamento e Gerenciamento 6. Documentação Módulos de Avaliação 3. Processo para Desenvolvedores 4. Processo para Compradores 5. Processo para Avaliadores
Suporte à Avaliação
Processo de Avaliação
5.2.1 - Descrição da Norma ISO/IEC 14598
A norma fornece uma visão geral para processos de avaliação de produtos de software por meio de guias e formalização de requisitos de avaliação. A avaliação da qualidade de produtos é realizada segundo três aspectos:
♦ Processo de avaliação com foco para desenvolvedores - ISO/IEC 14598-3;
♦ Processo de avaliação com foco em compradores - ISO/IEC 14598-4;
♦ Processo de avaliação com foco em avaliadores - ISO/IEC 14598-5.
Neste estudo será descrito o processo de avaliação de produtos com foco em avaliadores ISO/IEC 14598-5, pois o objetivo final é tratarmos de atributos de qualidade com impacto na disponibilidade dos produtos (serviços).
5.2.2 - ISO/IEC 14598 – 5 - Processo para Avaliadores
Fornece requisitos e recomendações visando implementação da avaliação de produtos de software, podendo ser utilizado para avaliação tanto de produtos em produção como produtos em desenvolvimento.
Características esperadas em um Processo de Avaliação:
Repetível – Permite a avaliação repetida de um produto de acordo com a mesma especificação de avaliação e sendo realizada pelo mesmo avaliador. Devem produzir resultados semelhantes. Estes processos são definidos pela norma como idênticos.
Reprodutível - Avaliação realizada para um produto seguindo a mesma especificação de avaliação e realizada por um avaliador. Este processo também deve produzir resultados semelhantes.
Imparcial – A avaliação não deve sofrer influência de nenhum resultado particular.
Objetivo - Os resultados da avaliação devem ser apenas factuais, não devem sofrer influência de opiniões do avaliador.
O processo de avaliação proposto pela norma inclui cinco atividades, descritas graficamente na figura 22 (ISO/IEC 14598-5, 2002):
Análise de Requisitos da Avaliação; Especificação da Avaliação;
Projeto da Avaliação; Execução da Avaliação e ; Conclusão.
Figura 22 - Atividades do Processo de avaliação (ISO/IEC 14598, 2002)
Análise de Requisitos da Avaliação
Descreve os principais objetivos da avaliação. Nesta fase vários pontos de vista podem ser levados em consideração segundo os diferentes usuários do produto: comprador, fornecedor, desenvolvedor e operador.
Especificação da Avaliação
Define o escopo da avaliação e estabelece as medidas a serem aplicadas no produto a ser avaliado.
Projeto da Avaliação
Produz a documentação da especificação dos procedimentos a serem utilizados pelo avaliador. Este processo é baseado nas medidas de avaliação especificadas na fase de avaliação. O avaliador produz um plano de avaliação descrevendo todos os recursos necessários para execução da avaliação. O avaliador
também deve especificar a distribuição dos recursos de acordo com as ações a serem tomadas.
Execução da Avaliação
O avaliador deve detalhar as atividades de execução da avaliação, propriamente dita, descrevendo as ações para medir o produto de software de acordo com os requisitos definidos na fase de análise de requisitos da avaliação. A execução da avaliação deve seguir o plano de avaliação tal como especificado na fase de especificação da avaliação. Ao final do processo de avaliação deve ser produzido um relatório de avaliação registrando o detalhamento de todas as informações, fornecendo as condições necessárias para repetição do processo.
Conclusão da Avaliação
Nesta fase o avaliador deve analisar e revisar os resultados obtidos, caso necessário, deve corrigir e em seguida disponibilizar os dados resultantes.
Visando um melhor esclarecimento da integração entre as normas, a figura 23 mostra os pontos de relacionamento entre as séries ISO/IEC 9126 e ISO/IEC 14598 (BOENTE et al, 2008):
Um maior detalhamento da integração entre as normas ISO/IEC 9126 (2001) e ISO/IEC 14598 (2002) está demonstrado pela figura 24. Neste diagrama fica claro o relacionamento entre as atividades de escolha, aplicação e avaliação dos atributos visando obter métricas de qualidade de produtos de software (KOSCIANSKI, 1999):