Departamento de Computação
Trabalho de Conclusão de Curso
CIBELE CRISTINA PELIZER SODRÉ
Norma ISO/IEC 9126:
Avaliação de Qualidade de Produtos de Software
Londrina
2006
CIBELE CRISTINA PELIZER SODRÉ
Norma ISO/IEC 9126:
Avaliação de Qualidade de Produtos de Software
Trabalho de Conclusão de Curso
desenvolvido durante o 4º ano do Curso
de
Graduação
em
Ciência
de
Computação como requisito parcial à
obtenção do título de Bacharel.
Orientadora: Katia Romero Felizardo
Londrina
2006
COMISSÃO EXAMINADORA
____________________________________
Profa. Ms. Katia Romero Felizardo
UEL
____________________________________
Prof. Dr. Rodolfo Miranda de Barros
UEL
____________________________________
Profa. Helen Cristina de Mattos Senefonte
UEL
14
DEDICATÓRIA
À minha mãe, que sempre esteve presente
nas horas em que eu precisei e não precisei.
AGRADECIMENTOS
Agradeço a toda a minha família pela estrutura que me foi dada, sendo assim
possível minha formação de vida.
Agradeço à professora Katia Romero Felizardo por todo apoio, incentivo e paciência
dados no decorrer deste trabalho, possibilitando o desenvolvimento do mesmo da
melhor maneira possível.
Agradeço aos professores do Departamento de Computação da UEL e de outros
departamentos pela formação acadêmica proporcionada.
Agradeço aos amigos. Àqueles poucos, porém verdadeiros. Especialmente aos que
estiveram comigo durante este curso e entendem tudo que passei. Como já diz uma
conhecida frase, amigos são a família que podemos escolher.
Agradeço ao meu namorado, amigo e companheiro, que nos últimos três anos
compartilhou comigo as alegrias e tristezas. E que sempre suporta os meus
momentos mais nervosos e estressantes com uma calma impressionante. E está
sempre ao meu lado, independente das escolhas que eu faça.
Agradeço, enfim, a todos aqueles que direta ou indiretamente prestaram apoio,
amizade e confiança e contribuíram para esse momento de vida pelo qual estou
passando.
E à minha Mãe (com M maiúsculo), novamente. Porque sem seu amor incondicional,
as coisas seriam bem mais difíceis.
LISTA DE TABELAS
Tabela 1 – Métricas Externas de Adequação............................................................36
Tabela 2 – Métrica Externa de Acurácia ...................................................................36
Tabela 3 – Métricas Externas de Interoperabilidade .................................................37
Tabela 4 – Métricas Internas de Adequação .............................................................38
Tabela 5 – Métricas Internas de Acurácia .................................................................39
Tabela 6 – Métricas Internas de Interoperabilidade ..................................................40
Tabela 7 – Métricas de Efetividade ...........................................................................41
Tabela 8 – Métricas de Produtividade .......................................................................42
Tabela 9 – Métricas de Segurança............................................................................43
LISTA DE SIGLAS E ABREVIATURAS
ABNT: Associação Brasileira de Normas Técnicas
CMM: Capability Maturity Model
CMMI: Capability Maturity Model Integrated
IEC: International Electrotechnical Comission
ISO: International Organization for Standardization
SEI: Software Engineering Institute
SPICE: Software Process Improvement and Capability dEtermination
TI: Tecnologia da Informação
LISTA DE FIGURAS
Figura 1 – Nível 1 do CMM........................................................................................16
Figura 2 – Nível 2 do CMM........................................................................................16
Figura 3 – Nível 3 do CMM........................................................................................17
Figura 4 – Nível 4 do CMM........................................................................................17
Figura 5 – Nível 5 do CMM........................................................................................18
Figura 6 – Representação da norma ISO/IEC 14598................................................24
Figura 7 – Representação da norma ISO/IEC 9126 e suas representações.............27
Figura 8 – Características e Subcaracterísticas de Qualidade Externa e Interna .....28
Figura 9 – Divisão das Características......................................................................32
Figura 10 – Características de Qualidade em Uso....................................................33
Figura 11 – Relação entre Métricas Internas, Externas e de Qualidade em Uso......35
Figura 12 – Valor satisfatório.....................................................................................46
SUMÁRIO
INTRODUÇÃO ..........................................................................................................11
1 Introdução à Qualidade ..........................................................................................12
1.1 Histórico de Qualidade.....................................................................................12
2 Qualidade de Processo de Software ......................................................................15
2.1 CMM ................................................................................................................15
2.2 ISO/IEC 12207.................................................................................................18
2.3 SPICE ..............................................................................................................19
2.4 Família ISO/IEC 9000 ......................................................................................21
3 Qualidade de Produto de Software ........................................................................23
3.1 ISO/IEC 14598.................................................................................................23
3.2 ISO/IEC 12119.................................................................................................25
4 A Norma ISO/IEC 9126 ..........................................................................................26
4.1 ISO/IEC 9126-1: Modelo de Qualidade............................................................27
4.1.1 Modelo de Qualidade para Qualidade Interna e Externa ..........................28
4.1.2 Modelo de Qualidade para Qualidade em Uso .........................................33
4.2 Métricas ...........................................................................................................34
4.2.1 ISO/IEC 9126-2: Métricas Externas ..........................................................35
4.2.2 ISO/IEC 9126-3: Métricas Internas............................................................37
4.2.3 ISO/IEC 9126-4: Métricas de Qualidade em Uso......................................40
5 Processo de Avaliação ...........................................................................................45
5.1 Definição de Requisitos de Qualidade .............................................................45
5.2 Preparação da Avaliação.................................................................................45
5.3 Procedimento da Avaliação .............................................................................46
5.4 Um Exemplo de Aplicação...............................................................................47
CONCLUSÃO............................................................................................................49
REFERÊNCIAS BIBLIOGRÁFICAS ..........................................................................50
RESUMO
Este trabalho aborda a Qualidade de Software,detalhando normas e padrões de
Qualidade de Processo de Software e Qualidade de Produto de Software. O foco do
trabalho é a descrição da norma ISO/IEC 9126, que é uma norma de Qualidade de
Produto de Software, e suas divisões.
Palavras-chave: Qualidade de Software, ISO/IEC 9126.
ABSTRACT
This work approaches the Software Quality, detailing norms and standards of
Software Process Quality and Software Product Quality. The focus of the work is the
description of norm ISO/IEC 9126, which is a norm of Software Product Quality, and
its divisions.
Keywords: Software Quality, ISO/IEC 9126.
INTRODUÇÃO
A área de TI se torna ampla e abrangente a passos largos. Tendo
isso em vista, espera-se que os produtos resultantes dessa área atendam aos mais
diversos tipos de usuários. Para que as necessidades de tais usuários sejam
satisfeitas, é imprescindível que os produtos tenham qualidade.
Para satisfazer os usuários de software, foram criadas algumas
normas. Para assegurar qualidade no desenvolvimento de software, há as normas
de Qualidade de Processo de Software, como por exemplo, a ISO/IEC 9000, a
ISO/IEC 12207, o modelo de maturidade CMM e o SPICE. Existem também as
normas que avaliam a Qualidade do Produto de Software, que são a ISO/IEC 9126,
ISO/IEC 14598 e a ISO/IEC 12207, para avaliar os produtos já finalizados.
Este trabalho abordará o tema Qualidade de Software de maneira
abrangente e, ao final, será focada a norma de Qualidade de Produto de Software
ISO/IEC 9126.
No Capítulo 1, será feita uma breve introdução acerca de Qualidade
e também será apresentado um histórico para um melhor entendimento sobre a
importância da Qualidade de produtos no decorrer das décadas, apresentando
assim, a evolução desse conceito, até a maneira como isso é abordado atualmente.
No Capítulo 2, são detalhadas algumas normas de melhoria de
Qualidade de Processo de Software. No Capítulo 3, é feita a descrição de normas
que baseiam a avaliação de Qualidade de Produto de Software.
O Capítulo 4 é o foco principal deste trabalho e descreve a norma
ISO/IEC 9126 e suas divisões.
No Capítulo 5, o Processo de Avaliação de um software é explicado
e é dado um exemplo de uso da norma ISO/IEC 9126.
1 INTRODUÇÃO À QUALIDADE
A Qualidade de Software é um tema amplamente discutido da
Engenharia de Software. Para um maior entendimento da importância disso, a
seguir, será feita uma breve introdução sobre Qualidade.
O conceito de qualidade é definido como sendo “um conjunto de
características de todo produto e serviço ou relação planejada, praticada e
verificada, visando superar as expectativas de satisfação das pessoas envolvidas1”
[28] ou “a totalidade das características de uma entidade que lhe confere a
capacidade de satisfazer necessidades explícitas e implícitas do cliente” [22].
Entende-se por entidade tanto o produto como o serviço.
Necessidades explícitas são as condições e objetivos pelo produto expressos na
definição de requisitos, que definem as condições em que o produto deve ser
utilizado, seus objetivos, funções e o desempenho esperado. Entende-se por
necessidades implícitas aquelas que não estão expressas nos documentos do
produtor, mas que são necessárias para o usuário, entre elas as diferenças entre os
usuários, a evolução no tempo, as implicações éticas e questões de segurança.
Qualidade é um termo associado à definição de conformidade às
especificações e à visão de satisfação do cliente, sendo que prazos, pontualidade
de entrega e flexibilidade também são fatores relevantes para avaliação.
1.1 Histórico de Qualidade
O primeiro grande marco da história da qualidade nos tempos
modernos foi a Revolução Industrial. Nessa época houve um grande crescimento no
número de indústrias, o que criou a concorrência entre elas e fez nascer um
processo de melhoria contínua de produtos.
A partir da década de 20, a produção industrial passou a ter um
processo de qualidade, com a finalidade de impedir que chegassem produtos com
_____________
1
Pessoas envolvidas ou partes interessadas: indivíduo ou grupo interessado ou afetado pelo
desempenho ambiental de um sistema de produto ou pelos resultados da avaliação do ciclo de vida
defeito às mãos dos clientes. Como as fábricas já produziam em grande
quantidade, era impossível verificar a qualidade individual de cada peça, como é
feito no produto artesanal. Esse novo processo de qualidade consistia em controle
estatístico da produção, que analisava algumas peças aleatoriamente e fazia a
medição estatística dessas peças. Quanto mais parecidas e aproximadas do padrão
ideal estivessem as medições, maior qualidade possuía aquela linha de produção.
Na década de 40, os principais órgãos ligados à qualidade foram
criados, como a ABNT e a ISO. Durante a Segunda Guerra Mundial, as técnicas de
produção foram melhoradas para a fabricação de materiais bélicos, pois é esperado
que este tipo de material apresente taxa de defeito zero2.
O impulso recebido pelas indústrias manteve-se no pós-guerra e foi
criado um controle de processos envolvendo a produção desde o projeto até o
acabamento. A partir do controle de processos foi criado um novo conceito, a
garantia de qualidade, que é a demonstração de que os produtos e serviços
possuem qualidade perante clientes e público. Nessa época, as indústrias que mais
estavam se desenvolvendo eram a automobilística e aeronáutica. Já havia também
computadores digitais para uso restrito a meios militares e acadêmicos.
Nos anos 60, houve uma mudança no ambiente de negócios devido
à saturação dos mercados, a demanda por produtos diferenciados, adoção da alta
tecnologia nos processos produtivos, redução das barreiras do comércio
internacional e a intensificação da competição internacional. Como conseqüência,
empresas com produtos diferenciados e preços competitivos e acessíveis
assumiram a liderança do mercado.[28] Nessa época, os computadores se
tornaram mais acessíveis e cada vez mais pessoas passaram a usá-los. Com isso
começou a se pensar em Qualidade de Software.
Atualmente a satisfação do cliente e a gestão empresarial moderna
são as bases da qualidade, mas os bons resultados ainda dependem do uso correto
das metodologias pelos desenvolvedores.
_____________
2
Defeito Zero: Atitude de prevenção de defeitos através da compreensão e correspondência às
exigências de um trabalho ou tarefa o tempo todo. Padrão de desempenho proposto por Philip B.
Crosby em que o lema é "fazer certo desde a primeira vez"; sua meta é buscar a excelência pela
prevenção de defeitos. Significa que a qualquer momento, a mais alta prioridade é eliminar os erros
antes de escrever qualquer código novo.
13
O conceito de Qualidade de Software surgiu devido à necessidade
de organização e padronização do desenvolvimento de softwares, que não tinham
planejamento nem norma de qualidade estabelecidos. A única forma de obter um
sistema eficiente3 era através do planejamento feito pelo próprio programador,
entretanto esses sistemas tinham manutenção complicada quando realizada por
outra pessoa e não eram completamente confiáveis. Em conseqüência disso, foram
criados a engenharia de software e os primeiros padrões de qualidade.
A Engenharia de Software busca otimizar a construção do software
e avaliar os produtos de software procurando facilitar o desenvolvimento, o uso, a
adaptação e manutenção, mas também tornando o produto acessível e com custo
reduzido.
A melhoria da Qualidade de Software pode ser dividida em melhoria
de qualidade de processo de software e melhoria de qualidade de produto de
software. As normas para obtenção de qualidade de processo de software fazem
um estudo dos requisitos necessários ao cliente, cria um ciclo de vida para os
processos e, por final, realiza a instalação e manutenção do mesmo. Já as normas
para qualidade de produto de software possuem características que um produto
com qualidade deve ter, modo de medir essas características de qualidade e
descrições para se fazer a avaliação do produto.
_____________
3
Eficiente: os objetivos são obtidos com economia de meios.
14
2 QUALIDADE DE PROCESSO DE SOFTWARE
“Processo de software é um conjunto de atividades e resultados
associados que levam à produção de um produto de software. Esse processo pode
envolver o desenvolvimento de software desde o início, embora, cada vez mais,
ocorra o caso de um software novo ser desenvolvido mediante a expansão e a
modificação de sistemas já existentes”.[21]
O processo de software pode ser dividido em 3 partes: definição,
desenvolvimento e manutenção. A fase da definição busca definir o que o sistema
vai fazer, sua interface e restrições. Já a fase de desenvolvimento define a
arquitetura do sistema, a linguagem de programação a ser usada e como serão
realizados os testes. Por fim, na fase da manutenção, podem ocorrer correções,
mudanças e adaptações do sistema dependendo da necessidade do cliente.
Normas e padrões de qualidade de processo de software foram
criados para auxiliar na obtenção de qualidade do produto de software, pois é
através da melhoria do processo de software que é obtida a qualidade do produto.
Algumas das principais normas serão descritas a seguir.
2.1 CMM
O CMM (Capability Maturiry Model) foi criado em 1991 e procurava
padronizar a qualidade dos softwares desenvolvidos pela força aérea americana
quando foi criado pela SEI.[2] [24] [25]
O modelo é baseado nos princípios de qualidade total e no
amadurecimento gradativo do processo de desenvolvimento do software dentro da
empresa. Cada instituição é avaliada em um dos cinco níveis de maturidade, que
estão divididos em áreas-chave dos temas que são abordados.
As empresas que estão no nível 1, que é chamado de Inicial,
podem obter softwares de alta qualidade dependendo do desempenho dos
desenvolvedores, mas a substituição da equipe pode prejudicar a qualidade. Os
problemas maiores são gerenciais pois o processo é como uma caixa preta na visão
do gerente, onde entram os requisitos e sai o sistema pronto, como ilustrado na
15
Figura 1. Neste nível não há área-chave.
Figura 1 – Nível 1 do CMM
Fonte: [7]
As empresas do nível 2, nível Repetitivo, acompanham e
documentam os métodos de gerenciamento para assegurar o cumprimento de
prazos e custos. As práticas bem-sucedidas em outros projetos podem ser
reaproveitadas. Nessa etapa, é possível visualizar o processo em certos pontos
entre pequenas “caixas-pretas”, como visto na Figura 2. As áreas-chave são:
•
Gerenciamento de requisitos;
•
Planejamento de projeto de software;
•
Acompanhamento de projeto de software;
•
Gerenciamento de subcontrato de software;
•
Garantia de qualidade de software;
•
Gerenciamento da configuração de software.
Figura 2 – Nível 2 do CMM
Fonte: [7]
No nível 3 ou nível Definido, o processo de software é
documentado, integrado e padronizado em processos padrão para a empresa e
todos os projetos usam uma versão aprovada e adaptada para o seu
16
desenvolvimento e manutenção. A Figura 3 mostra que neste nível já é possível
enxergar o que há dentro das “caixas-pretas”. Há sete áreas-chave:
•
Enfoque no processo da organização;
•
Definição do processo da organização;
•
Programa de treinamento;
•
Gerenciamento integrado de software;
•
Engenharia de produto de software;
•
Coordenação intergrupos;
•
Revisão.
Figura 3 – Nível 3 do CMM
Fonte: [7]
No nível 4, também conhecido como nível Gerenciado, tanto o
processo quanto o produto de software são avaliados quantitativamente e avaliados
por medições detalhadas, portanto o gerente tem bases para tomar decisões. As
medições fornecem subsídios para atuar no próprio processo, como pode ser
observado na Figura 4. Suas áreas-chave são:
•
Gerenciamento quantitativo do processo;
•
Gerenciamento da qualidade de software.
Figura 4 – Nível 4 do CMM
Fonte: [7]
17
A melhoria contínua do processo pertence ao nível 5 ou nível
Otimizado. Essa melhoria pode ocorrer devido à realimentação quantitativa do
processo e a partir de idéias e tecnologias novas, como mostra a Figura 5. As três
áreas-chave do nível 5 são:
•
Prevenção de defeito;
•
Gerenciamento de mudanças tecnológicas;
•
Gerenciamento de mudanças no processo.
Figura 5 – Nível 5 do CMM
Fonte: [7]
Em 2001, foi lançada uma evolução do CMM, o CMMI, que pode ter
duas representações: em estágio e contínua. A representação em estágio é similar
à usada no CMM: define um conjunto de áreas de processo para melhoria,
distribuídos em níveis de maturidade. A representação contínua permite que uma
área de processo específica seja selecionada e a empresa melhore em relação a
ela, usando níveis de capacidade para caracterizar a melhoria relacionada a essa
área.
2.2 ISO/IEC 12207
A ISO/IEC 12207 teve seu processo de desenvolvimento iniciado
em 1989, mas só foi aprovado em 1995. Seu objetivo é ajudar na definição dos
papéis dos desenvolvedores de software, de forma a obter uma visão aperfeiçoada
18
para o usuário das operações realizadas. Essa norma propõe processos de ciclo de
vida do software organizados em três classes[20]:
•
Processos fundamentais: atendem desde a contratação do
sistema até a manutenção do produto, passando por
desenvolvimento e operação do mesmo. O ciclo de vida
desses processos é composto por processo de aquisição,
processo de fornecimento, processo de desenvolvimento,
processo de operação e processo de manutenção;
•
Processos de apoio: são empregados para auxiliar na
obtenção de qualidade de outros projetos. São eles:
processo de documentação, processo de gerência de
configuração, processo de garantia de qualidade, processo
de verificação, processo de validação, processo de revisão
conjunta, processo de auditoria e processo de resolução de
problemas;
•
Processos organizacionais: são utilizados fora do domínio do
projeto normalmente para a melhoria da organização. Esses
processos são processo de gerência, processe de infraestrutura, processo de melhoria e processo de treinamento.
2.3 SPICE
O
SPICE
(Software
Process
Improvement
and
Capability
dEtermination) ou ISO/IEC 15504 tem como objetivo gerar normas para avaliar
processos, com o intuito de melhorar o processo continuamente e determinar sua
capacitação.[25] O SPICE foi criado de forma que pudesse ser utilizado por
especialistas que trabalham com as normas já existentes, mas sendo mais
abrangente que elas.
Há duas dimensões definidas nesse modelo: a dimensão de
processo e a dimensão de capacidade. A primeira consiste em uma disposição de
processos essenciais para a prática da engenharia de software, enquanto a
segunda define um modelo de medição que obtenha a capacidade de um processo
19
de atingir seu objetivo.
O SPICE tem como base o conceito de níveis de maturidade de
processos do CMM e a arquitetura dos processos do ciclo de vida de um software
da ISO/IEC 12207.
O modelo define seis níveis de capacitação:
•
Nível 0 – Incompleto: há uma falha geral em realizar o
objetivo do processo. Não existem produtos de trabalho nem
saídas do processo facilmente identificáveis;
•
Nível 1 – Executado: o objetivo do processo em geral é
atingido, embora não necessariamente de forma planejada e
controlada. Há um consenso na organização de que as
ações devem ser realizadas e quando são necessárias.
Existem produtos de trabalho para o processo e eles são
utilizados para atestar o atendimento dos objetivos;
•
Nível 2 – Gerenciado: o processo produz os produtos de
trabalho com qualidade aceitável e dentro do prazo. Isto é
feito de forma planejada e controlada. Os produtos de
trabalho estão de acordo com padrões e requisitos;
•
Nível 3 – Estabelecido: o processo é realizado e gerenciado
usando um processo definido, baseado em princípios de
Engenharia de Software. As pessoas que implementam o
processo usam processos aprovados, que são versões
adaptadas do processo padrão documentado;
•
Nível 4 – Previsível: o processo é realizado de forma
consistente, dentro dos limites de controle, para atingir os
objetivos. Medidas da realização do processo são coletadas
e analisadas. Isto leva a um entendimento quantitativo da
capacitação do processo a uma habilidade de prever a
realização;
•
Nível 5 – Otimizado: a realização do processo é otimizada
para atender às necessidades atuais e futuras do negócio. O
20
processo atinge seus objetivos de negócio e consegue ser
repetido. São estabelecidos objetivos quantitativos de
eficácia e eficiência para o processo, segundo os objetivos
da organização. A monitoração constante do processo
segundo estes objetivos é conseguida obtendo feedback
quantitativo e o melhoramento é conseguido pela análise dos
resultados. A otimização do processo envolve o uso piloto de
idéias e tecnologias inovadoras, além da mudança de
processos ineficientes para atingir os objetivos definidos.
2.4 Família ISO/IEC 9000
Na década de 80, as empresas utilizam TI em seus processos
internos apenas para ter controle de qualidade dos produtos. A partir da década de
90, as instituições passaram a usar a TI em seus processos de negócios, com a
finalidade de obter garantia de qualidade de processos.
Em vista disso, foram lançadas as normas ISO 9001, 9002 e 9003
em 1987 com o objetivo de garantia de qualidade como requisitos entre clientes e
fornecedores. Um ponto forte nessas normas é a flexibilidade, pois elas podem ser
adaptadas ou complementadas para atender os requisitos específicos de cada setor
produtivo.
A ISO 9001 é a norma que abrange o ciclo de vida completo de um
produto ou serviço, sendo que na mesma constam os requisitos para garantia de
qualidade de produtos e serviços.
A ISO 9000-3 foi publicada em 1994 e contém orientações para a
aplicação da ISO 9001 em projeto, desenvolvimento, fornecimento, instalação e
manutenção de softwares. Ela é dividida em três partes: Estrutura, Atividades do
Ciclo de Vida e Atividade de Suporte.
A Estrutura apresenta os aspectos organizacionais em relação ao
sistema de qualidade. São eles: responsabilidade gerencial, sistema de qualidade,
auditoria interna de sistema de qualidade e ação corretiva.
As Atividades do Ciclo de Vida são as próprias atividades relativas
21
ao desenvolvimento que são: revisão do contrato, especificação dos requisitos do
cliente, planejamento de desenvolvimento, planejamento da qualidade, projeto e
implementação, testes e validação, aceitação, reprodução, entrega, instalação e
manutenção.
Já a Atividade de Suporte dão apoio às atividades de
desenvolvimento e são: gerência da configuração, controle da documentação,
registros da qualidade, medições, regras, práticas e convenções, ferramentas e
técnicas, compras, software produto incluso e treinamento.
22
3 QUALIDADE DE PRODUTO DE SOFTWARE
A qualidade de produto de software é baseada em normas que
avaliam se o produto satisfaz o cliente e tem fácil manutenção. É o resultado direto
das atividades realizadas no processo de desenvolvimento do software.
Alguns exemplos de normas de qualidade de produto são as
normas ISO/IEC 14598, 12119 e 9126. Essas normas serão expostas na seqüência,
destacando-se a norma ISO/IEC 9126, enfoque desse trabalho.
3.1 ISO/IEC 14598
A ISO/IEC 14598 possui um conjunto de guias para orientar e
planejar o processo de avaliação de um produto de software, como descrito a seguir
e ilustrado na Figura 6:
•
ISO/IEC 14598-1 – Visão Geral: contém a estrutura de
funcionamento das normas para avaliação da qualidade de
produto de software e a definição dos termos técnicos desse
modelo. Possui também os conceitos e funcionamento de
processo de avaliação de qualquer tipo de software para
utilização de pessoas envolvidas em desenvolvimento e uso
de tecnologia de avaliação e padronização;
•
ISO/IEC 14598-2 – Planejamento e Gerenciamento: são
requisitos e guias para suportar funções de avaliação dos
produtos
de
software,
desenvolvimento,
que
aquisição,
estão
relacionados
padronização,
ao
controle,
transferência e realimentação do uso de tecnologias de
avaliação;
•
ISO/IEC
14598-3
–
Processo
para
Equipe
de
Desenvolvedores: norma para ser usada durante o
desenvolvimento
e manutenção
do
software.
Fornece
critérios para seleção de indicadores de qualidade, guia para
avaliar dados de medição e guia para melhoria do processo
23
de medição;
•
ISO/IEC 14598-4 – Processo para Compradores: norma
para avaliação de produtos tipo pacote com objetivo de
ajudar na aceitação de um produto ou selecionar entre
diversos produtos tendo como base as características de
qualidade da norma ISO/IEC 9126;
•
ISO/IEC 14598-5 – Processo para Avaliadores: possui
orientações para a prática da avaliação do produto, definindo
as atividades necessárias para analisar os requisitos de
avaliação;
•
ISO/IEC 14598-6 – Módulo de Avaliação: define a estrutura
e o conteúdo da documentação que será usada na descrição
dos Módulos de Avaliação. Descreve e desenvolvimento e a
validação dos módulos.
Figura 6 – Representação da norma ISO/IEC 14598
Fonte: [5]
24
3.2 ISO/IEC 12119
A norma ISO/IEC 12119 avalia produtos de software que estão
disponíveis no mercado, conhecidos como Pacotes de Software ou Software de
Prateleira.
Essa norma estabelece os requisitos de qualidade e teste dos
Pacotes de Software. O pacote que será testado deve possuir:
•
Descrição
do
propriedades
Produto:
do
produto
documento
com
o
que
define
objetivo
as
orientar
compradores na avaliação de adequação do produto antes
da aquisição do mesmo;
•
Manual do Usuário: conjunto de documentos fornecidos
como parte integrante do produto e para a aplicação do
mesmo;
•
Programa e Dados: conjunto completo de programas e dados
necessários para a aplicação do produto de software e
também como parte integrante do mesmo.
25
4 A NORMA ISO/IEC 9126
Em 1991, foi publicada a norma ISO/IEC 9126 contendo
características e subcaracterísticas que definem um produto de qualidade. Em
1996, foi lançada sua tradução para o Brasil, chamada NBR 13596. Após as
revisões e sucessivas melhorias foram criadas divisões dessa norma:
•
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.
A norma ISO/IEC 9126-1 apresenta um conjunto de características
que definem um modelo de qualidade e podem ser aplicadas a qualquer produto de
software. Esse modelo de qualidade é formado por duas partes: o Modelo de
Qualidade Interna e Externa (Figura 7a) e o Modelo de Qualidade em Uso (Figura
7b).
Para realizar a avaliação das características de qualidade externa
são utilizadas as métricas externas, ou seja, medições baseadas nas necessidades
do usuário, descritas na ISO/IEC 9126-2 (Figura 7c). Para a avaliação das
características de qualidade interna são utilizadas as métricas internas, descritas na
ISO/IEC 9126-3 (Figura 7d) e a norma ISO/IEC 9126-4 define métricas para a
avaliação das características de qualidade em uso (Figura 7e).
26
Figura 7 – Representação da norma ISO/IEC 9126 e suas representações
Fonte: Adaptação de [6]
Na seqüência serão detalhados o Modelo de Qualidade, as Métricas
Externas, Internas e de Qualidade em Uso, citados acima.
4.1 ISO/IEC 9126-1: Modelo de Qualidade
Como descrito anteriormente, a norma ISO/IEC 9126-1 é formada
por dois Modelos de Qualidade: o Modelo de Qualidade Interna e Externa e o
Modelo de Qualidade em Uso. Esses dois modelos e suas respectivas
características serão detalhados a seguir.
27
4.1.1 Modelo de Qualidade para Qualidade Interna e Externa
Qualidade interna é a totalidade de características do produto de
software na visão interna.[6] Ela é usada para especificar as propriedades do
produto de software intermediário.
Analogamente, a qualidade externa é a totalidade de características
do produto de software do ponto de vista externo. É a qualidade que normalmente é
avaliada quando o produto de software final está sendo testado.
Como é possível visualizar na Figura 8, o modelo de qualidade para
qualidade interna e externa possui definições de seis características básicas que
um produto de software deve ter para ser considerado um software de qualidade:
funcionalidade,
confiabilidade,
usabilidade,
eficiência,
manutenibilidade
e
portabilidade.
Figura 8 – Características e Subcaracterísticas de Qualidade Externa e Interna
Fonte: [6]
A primeira publicação da norma, em 1991, possuía apenas as
características e subcaracterísticas de qualidade para avaliar um produto de
software. Cada característica e subcaracterística está detalhada na seqüência,
28
sendo que o texto em itálico foi extraído da própria norma e representa a definição
de cada uma das subcaracterísticas.[9]
A funcionalidade descreve um conjunto de atributos que evidenciam
a existência de um conjunto de funções, que satisfazem as necessidades explícitas
ou implícitas, e suas propriedades especificadas. Suas subcaracterísticas são:
•
Adequação: “Atributos do software que evidenciam a
presença de um conjunto de funções e sua apropriação para
as tarefas especificadas”;
•
Acurácia: “Atributos do software que evidenciam a geração
de resultados ou efeitos corretos ou conforme acordados”;
•
Interoperabilidade: “Atributos do software que evidenciam
sua capacidade de interagir com sistemas específicos”;
•
Conformidade: “Atributos do software que fazem com que ele
esteja
de
acordo
com
as
normas,
convenções
ou
regulamentações previstas em leis e descrições similares,
relacionadas à aplicação”;
•
Segurança de acesso: “Atributos do software que evidenciam
sua capacidade de evitar o acesso não autorizado, acidental
ou deliberado, a programas e dados”.
A confiabilidade possui um 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.
As
suas
subcaracterísticas básicas são:
•
Maturidade: “Atributos do software que evidenciam a
freqüência de falhas ou defeitos no software”;
•
Tolerância a falhas: “Atributos do software que evidenciam
sua capacidade em manter um nível de desempenho
especificado nos casos de falhas no software ou de violação
nas interfaces especificadas”;
•
Recuperabilidade: “Atributos do software que evidenciam sua
29
capacidade de restabelecer seu nível de desempenho e
recuperar os dados diretamente afetados, em caso de falha,
e no tempo e esforço necessários para tal”.
O conjunto de atributos de usabilidade ou capacidade para uso
evidencia o esforço necessário para poder-se utilizar o software, bem como o
julgamento individual deste uso, por um implícito ou explícito de usuários. As
subcaracterísticas são:
•
Inteligibilidade: “Atributos do software que evidenciam o
esforço do usuário para reconhecer o conceito lógico e sua
aplicabilidade”;
•
Apreensibilidade: “Atributos do software que evidenciam o
esforço do usuário para aprender sua aplicação (por
exemplo: controle de operações, entradas, saídas)”;
•
Operacionalidade: “Atributos do software que evidenciam o
esforço do usuário para sua operação e controle da
operação”.
A característica da eficiência é constituída por um conjunto de
atributos que verifica o relacionamento entre o nível de desempenho do software e
a quantidade de recursos usados, mediante condições estabelecidas. Suas
subcaracterísticas são:
•
Comportamento em relação ao tempo: “Atributos do software
que
evidenciam
seu
tempo
de
resposta,
tempo
de
processamento e velocidade na execução de suas funções”;
•
Comportamento em relação aos recursos: “Atributos do
software que evidenciam a quantidade de recursos usados e
a duração de seu uso na execução de suas funções”.
A manutenabilidade mostra os atributos que avaliam o esforço
necessário
para
fazer
modificações
especificadas
no
software.
Suas
subcaracterísticas são:
•
Analisabilidade: “Atributos do software que evidenciam o
esforço necessário para diagnosticar deficiências ou causas
30
de falhas, ou para identificar partes a serem modificadas”;
•
Modificabilidade: “Atributos do software que evidenciam o
esforço necessário para modificá-lo, remover seus defeitos
ou adaptá-lo a mudanças ambientais”;
•
Estabilidade: “Atributos do software que evidenciam o risco
de efeitos inesperados, ocasionados por modificações”;
•
Testabilidade: “Atributos do software que evidenciam o
esforço necessário para validar o software modificado”.
A portabilidade é a capacidade do software de ser transferido em
um ambiente para outro. As subcaracterísticas são:
•
Adaptabilidade: “Atributos do software que evidenciam sua
capacidade
de
ser
adaptado
a
ambientes
diferentes
especificados, sem a necessidade de aplicação de outras
ações ou meios além daqueles fornecidos para essa
finalidade pelo software considerado”;
•
Capacidade para ser instalado: “Atributos do software que o
tornam
consonante
com
padrões
ou
convenções
relacionadas à portabilidade”;
•
Capacidade para substituir: “Atributos do software que
evidenciam sua capacidade e esforço necessário para
substituir um outro software, no ambiente estabelecido para
este outro software”.
Uma revisão da norma foi feita anos mais tarde e novas
subcaracterísticas foram incluídas a ela. Na característica usabilidade foi
acrescentada a subcaracterística atratividade, que é a capacidade do produto de
ser atraente para o usuário. Outra inclusão foi realizada na característica
portabilidade, com a adição da subcaracterística de coexistência, que é a
capacidade que o software tem de coexistir com outro software independente em
um ambiente comum, compartilhando recursos comuns.
A última modificação feita foi que em todas as características
principais está presente a subcaracterística conformidade. Isso acontece pois em
31
todas as características é possível ser observada a aderência à legislação, padrões
internos e normas diversas associadas a elas.
Assim como as características principais, as subcaracterísticas não
podem ser mensuradas diretamente, portanto elas são divididas em atributos
mensuráveis selecionados pelo avaliador, como é exibido na Figura 9.
Figura 9 – Divisão das Características
Fonte: [27]
É possível que um atributo tenha influência direta sobre mais de
uma característica ou subcaracterística, porém elas não podem se sobrepor umas
às outras. Por exemplo, o número de linhas de código pode ser usado como atributo
tanto de analisabilidade quanto de adaptabilidade. Entretanto, a definição da
característica
de
confiabilidade
não
permite
que
fatores
próprios
de
manutenibilidade sejam considerados.
Na aplicação da norma, deve-se definir quais características e
subcaracterísticas serão mais importantes para o cliente e aplicá-los dando pesos
maiores às mais relevantes. A norma ISO/IEC 9126 define bem as características e
subcaracterísticas que podem ser utilizadas, entretanto os atributos mais
específicos são definidos dependendo do interesse do usuário no produto de
32
software.
4.1.2 Modelo de Qualidade para Qualidade em Uso
Qualidade em uso é a visão de qualidade sob a perspectiva do
usuário e é medido pelo efeito do uso do software. O modelo de Qualidade para
Qualidade em Uso faz a avaliação de quanto o usuário pode atingir seus objetivos
em um ambiente, sem medir as propriedades do produto de software. Esse modelo
possui quatro características de qualidade: Efetividade, Produtividade, Segurança e
Satisfação, como destacado na Figura 10.
Figura 10 – Características de Qualidade em Uso
Fonte: [27]
Cada uma das quatro características de Qualidade em Uso será
descrita a seguir:
•
Efetividade: capacidade do produto de software de permitir
ao usuário atingir metas específicas com acurácia e
completude, em um contexto de uso específico;
•
Produtividade: capacidade do produto de software de permitir
que seus usuários empreguem quantidade adequada de
33
recursos em relação à efetividade alcançada em um contexto
de uso específico;
•
Segurança:
capacidade
do
produto
de
software
de
apresentar níveis aceitáveis de riscos de danos a pessoas,
negócios, software, propriedade ou ambiente em um
contexto de uso específico;
•
Satisfação: capacidade do produto de software de satisfazer
usuários em um contexto de uso específico.
4.2 Métricas
Para avaliar qualidade, é necessário que haja uma maneira de
medí-la. Por isso, é preciso que se estabeleçam métricas. Para saber o valor de
uma determinada característica de qualidade, tem que se criar uma métrica para
quantificá-la e fazer uma medição para determinar a medida, que é o resultado da
aplicação na métrica.[4] As métricas devem resultar em um valor matemático que
verifique se o produto de software tem qualidade.
Uma métrica pode ser definida como sendo toda particularidade
quantificável do software que esteja relacionada a uma característica. Dependendo
do produto analisado, diferentes métricas podem ser aplicadas. Porém essas
métricas devem ser pertinentes ao paradigma e à tecnologia adotada no
desenvolvimento.
Sob o ponto de vista de medição, as métricas de software podem
ser de dois tipos: diretas ou indiretas. As métricas diretas são realizadas em função
dos atributos observados, normalmente determinados por contagem, como o custo,
número de linhas de código, número de páginas e capacidade de memória, entre
outros. As métricas indiretas são obtidas através de outras métricas, e entre seus
exemplos estão funcionalidade, confiabilidade e complexidade.
As métricas usadas pela norma ISO/IEC 9126 são consideradas
métricas indiretas e são classificadas em três tipos: métricas externas, internas e de
qualidade de uso.
34
Para obter qualidade em uso é preciso ter qualidade externa, que
por sua vez é dependente de qualidade interna, como se observa na Figura
11.
Figura 11 – Relação entre Métricas Internas, Externas e de Qualidade em Uso
Fonte: [6]
4.2.1 ISO/IEC 9126-2: Métricas Externas
As métricas externas são usadas para avaliar o produto de software
através de medições baseadas nas necessidades do usuário. Essas métricas usam
medidas de um produto de software derivadas de medidas do comportamento do
sistema do qual faz parte.
As Tabelas 1, 2 e 3 exemplificam algumas métricas externas
descritas na norma ISO/IEC 9126-2.[10]
35
Nome da
métrica
Cobertura de
implementação
funcional
Propósito da
métrica
Identificar a
quantidade de
funções que
estão de
acordo com a
especificação
Medida e
fórmula
X=A/B
A = número de
funções
corretamente
implementadas,
confirmadas
através de
execução de
testes
Tipo de
escala
Interpretação
Tipo de
medida
A=quantidade
0 <= X <= 1
Quanto mais
próximo de 1,
melhor.
Absoluta
B=quantidade
X=quantidade/
quantidade
B = número de
funções
descritas na
especificação
X = 1 - (A / B)
Especificação
de estabilidade
funcional
(volatilidade)
Identificar a
estabilidade da
especificação
funcional de
um sistema
correto depois
de entrar em
produção
A = número de
funções
mudadas
depois de ter
sido colocado
em operação
durante um
período
específico
A=quantidade
0 <= X <= 1
Quanto mais
próximo de 1,
melhor.
Absoluta
B=quantidade
X=quantidade/
quantidade
B = número de
funções
especificadas
Tabela 1 – Métricas Externas de Adequação
Nome da
métrica
Propósito da
métrica
Acurácia
computacional
Qual a
freqüência em
que o usuário
encontra
inacurácia em
resultados que
especificou
Medida e
fórmula
X=A/T
A = número de
inacurácias de
usuário
encontradas
Interpretação
Tipo de
escala
A=quantidade
X >= 0
Quanto mais
próximo de 0,
melhor.
T = Tempo de
operação
Tipo de
medida
Absoluta
T = tempo
X=quantidade/
tempo
Tabela 2 – Métrica Externa de Acurácia
36
Nome da
métrica
Propósito da
métrica
Medida e fórmula
Interpretaçã
o
Tipo de
escala
Tipo de
medida
X=A/B
Troca de
dados
(baseado no
formato de
dado)
Quão
completas são
as interfaces
de função
jusantes?
A = número de
formatos de dados
que estão aprovados
para ser trocado com
outro software ou
sistema durante teste
em dados para troca
A=quantidade
0 <= X <= 1
Quanto mais
próximo de 1,
melhor.
Taxa
B=quantidade
X=quantidade/
quantidade
B = total de formatos
de dados para troca
X = 1 - (A / B)
Troca de
dados
(baseado em
tentativas
bem
sucedidas do
usuário)
Quão bem
sucedidas são
as
transferências
de dados de
informação?
A = número de vezes
que o usuário não
conseguiu trocar
tipos de dados com
outro software ou
sistema por motivos
de falha
A=quantidade
0 <= X <= 1
Quanto mais
próximo de 1,
melhor.
Taxa
B=quantidade
X=quantidade/
quantidade
B = número de vezes
que o usuário tentou
trocar dados
X=A/B
Consistência
de interface
padrão
intersistema
O padrão para
projeto de
interface
identificado na
especificação
segue
consistenteme
nte?
A = número de
“checagem” de itens
da interface de
intersistema que
estão aprovadas por
teste, os quais são
consistentes com
padrões/regras do
intersistema
A=quantidade
0 <= X <= 1
Quanto mais
próximo de 1,
melhor.
Taxa
B=quantidade
X=quantidade/
quantidade
B = total de número
de “checagem” de
itens de interface de
intersistema
Tabela 3 – Métricas Externas de Interoperabilidade
4.2.2 ISO/IEC 9126-3: Métricas Internas
As métricas internas avaliam a especificação ou o código fonte de
um produto de software. Podem ser usadas também em partes intermediárias do
produto em desenvolvimento para garantir qualidade final. O principal objetivo das
métricas internas é assegurar a qualidade externa e qualidade de uso.
37
As Tabelas 4, 5 e 6 exibem algumas métricas internas descritas na
norma ISO/IEC 9126-2.[11]
Nome da
métrica
Cobertura de
implementação
funcional
Propósito da
métrica
Proporção de
implementação
funcional na
revisão
Medida e
fórmula
X=A/B
A = número de
funções
implementadas
confirmadas
na revisão
B = número de
funções
descritas na
especificação
X=A/B
Adequação da
implementação
funcional
Proporção de
adequação da
implementação
funcional na
revisão
A = número de
funções com
problemas que
foram
detectadas na
revisão
Tipo de
escala
Interpretação
A=quantidade
0 <= X <= 1
Quanto mais
próximo de 1,
mais completo.
Absoluta
B=quantidade
X=quantidade/
quantidade
A=quantidade
0 <= X <= 1
Quanto mais
próximo de 1,
mais adequado.
Tipo de
medida
Absoluta
B=quantidade
X=quantidade/
quantidade
B = número de
funções
revisadas
Tabela 4 – Métricas Internas de Adequação
38
Nome da
métrica
Acurácia
computacional
Propósito da
métrica
Proporção de
figuras
significantes
que se
combinam
Medida e
fórmula
X=A/B
A = número de
itens de dados
que
implementam
figuras
significantes
especificadas
confirmados na
revisão
Interpretação
Tipo de
escala
A=quantidade
0 <= X <= 1
Quanto mais
próximo de 1,
mais completo.
Tipo de
medida
Absoluta
B=quantidade
X=quantidade/
quantidade
B = número de
itens de dados
que são
especificados
como figuras
significantes
X=A/B
Precisão da
acurácia
Proporção de
precisão
requerida para
implementação
A = número de
itens de dados
que
implementam o
nível de
precisão de
acurácia
especificada,
confirmados
pela revisão
A=quantidade
0 <= X <= 1
Quanto mais
próximo de 1,
melhor.
Absoluta
B=quantidade
X=quantidade/
quantidade
B = número de
itens de dados
especificados
que requerem
precisão de
acurácia
Tabela 5 – Métricas Internas de Acurácia
39
Nome da
métrica
Propósito da
métrica
Medida e fórmula
Interpretaçã
o
Tipo de
escala
Tipo de
medida
X=A/B
Capacidade
de troca de
dados
(formatos
básicos de
dados)
Proporção de
dados em
formato
compatível
A = número de
formatos de dados
que implementam
consistência de
formato confirmados
pela revisão
0 <= X <= 1
Quanto mais
próximo de 1,
mais
consistente.
A=quantidade
Taxa
B=quantidade
X=quantidade/
quantidade
B = total de formatos
de dados para troca
X=A/B
Consistência
de interfaces
(formatos
básicos de
interfaces)
Proporção de
interfaces em
formato
compatível
A = número de
formatos de
interfaces que
implementam
consistência de
formato confirmados
pela revisão
A=quantidade
0 <= X <= 1
Quanto mais
próximo de 1,
melhor.
Taxa
B=quantidade
X=quantidade/
quantidade
B = número de
formatos de interface
para troca
X=A/B
Consistência
de padrões
intersistema
Proporção de
padrões
compatíveis
A = número de itens
que implementam
consistência com
regras e padrões
confirmados pela
revisão
A=quantidade
0 <= X <= 1
Quanto mais
próximo de 1,
melhor.
Taxa
B=quantidade
X=quantidade/
quantidade
B = total de itens que
são consistentes com
regras e padrões
Tabela 6 – Métricas Internas de Interoperabilidade
4.2.3 ISO/IEC 9126-4: Métricas de Qualidade em Uso
Métricas de qualidade de uso medem quanto um produto de
software atende às necessidades de um usuário específico. As medidas são obtidas
pela observação do uso do produto ou por uma simulação de um ambiente real.
Através das tabelas 7, 8, 9, e 10 serão descritos alguns exemplos
40
de métricas de qualidade em uso segundo a ISO/IEC 9126-4, e as perguntas feitas
para obter um valor.[12]
Nome da
Métrica
Propósito da
Métrica
Medida e Fórmula
Interpretação
Tipo de
Escala
Tipo de
Medida
-
A=?
M1=|1-ΣAi|
Efetividade
da tarefa
Completude
da tarefa
Que proporção da
tarefa é
completada
corretamente?
Que proporção de
tarefas é
completada?
0 <= M1 <= 1
A = valor
proporcional de
cada item perdido
ou incorreto no
resultado da tarefa
X=A / B
A = número de
tarefas
completadas
B = total de tarefas
testadas
X=A / T
Freqüência
de erro
Qual a freqüência
de erros?
A = número de
erros tomados pelo
usuário
T = tempo ou
número de tarefas
Quanto mais
próximo de 1,
melhor.
A=quantidade
0 <= X <= 1
Quanto mais
próximo de 1,
melhor.
Taxa
B=quantidade
X=quantidade/
quantidade
0 <= X
Quanto mais
próximo de 0,
melhor.
Absoluta
A=quantidade
Tabela 7 – Métricas de Efetividade
41
Nome da
Métrica
Propósito da
Métrica
Medida e Fórmula
Interpretação
Tipo de Tipo de Medida
Escala
X = Ta / Tb
Tempo da
tarefa
Quanto tempo
demora-se para
completar uma
tarefa?
Ta = tempo ocioso
do usuário
Tb = tempo da
tarefa
X = M1 / T
X >= 0
Quanto menor,
melhor.
Intervalo
X >= 0
Eficiência da
tarefa
Quão eficientes
são os usuários?
M1 = efetividade da
tarefa
Quanto maior,
melhor.
T = tempo
T = tempo
X=
T = tempo da tarefa
X = M1 / C
Custo efetivo
M1 = efetividade da
tarefa
Qual o custo
efetivo do
usuário?
C = custo total da
tarefa
X = Ta / Tb
Proporção
produtiva
Que proporção do
tempo o usuário
está realizando
ações produtivas?
Grau de
eficiência do
usuário
Quão eficiente é
um usuário
comparado a um
especialista?
Grau de
produtividade
do usuário
Quão produtivo é
um usuário
comparado a um
especialista?
X >= 0
Quanto maior,
melhor.
T = tempo
Absoluta
X=
Ta = tempo
0 <= X <= 1
Ta = tempo
produtivo
Tb = tempo da
tarefa
X=A/B
A = eficiência de um
usuário comum
B = eficiência de um
usuário
especializado
X=A/B
A = produtividade
de um usuário
comum
B = produtividade
de um usuário
especializado
Quanto mais
próximo de 1,
melhor.
Absoluta
Tb = tempo
X = tempo/
tempo
0 <= X <= 1
Quanto mais
próximo de 1,
melhor.
Absoluta
X=A/B
Absoluta
X=A/B
0 <= X <= 1
Quanto mais
próximo de 1,
melhor.
Tabela 8 – Métricas de Produtividade
42
Nome da
Métrica
Propósito da
Métrica
Bem-estar
do usuário
Qual é a
incidência de
problemas de
saúde entre os
usuários do
produto?
Medida e Fórmula
Interpretação
Tipo de
Escala
Tipo de
Medida
X= A / B
A = número de
usuários com LER,
fadiga ou dor-decabeça
A=quantidade
0 <= X <= 1
Quanto mais
próximo de 0,
melhor.
Absoluta
B=quantidade
X=quantidade/
quantidade
B = total de usuários
X= A / B
Segurança
das pessoas
afetadas
pelo sistema
Segurança
dos
pacientes
Danos
econômicos
Qual o nível de
A = número de
perigo incidente
pessoas colocadas
às pessoas
em perigo
afetadas pelo uso
B = total de pessoas
do sistema?
afetadas pelo
sistema
X= A / B
Qual a incidência
A = número de
pacientes com
de perigo para o
tratamento prescrito
paciente que
recebe tratamento
incorretamente
pelo sistema?
B = total de
pacientes
X= A / B
Qual a incidência
de danos
econômicos?
A = número de
ocorrências de
danos econômicos
B = total de
situações medidas
X= A / B
Danos no
software
Qual a incidência
de danos no
software?
A = número de
ocorrências de
danos no software
B = total de
situações medidas
A=quantidade
0 <= X <= 1
Quanto mais
próximo de 0,
melhor.
Absoluta
X=quantidade/
quantidade
A=quantidade
0 <= X <= 1
Quanto mais
próximo de 0,
melhor.
Absoluta
A=quantidade
Absoluta
B=quantidade
X=quantidade/
quantidade
A=quantidade
0 <= X <= 1
Quanto mais
próximo de 0,
melhor.
B=quantidade
X=quantidade/
quantidade
0 <= X <= 1
Quanto mais
próximo de 0,
melhor.
B=quantidade
Absoluta
B=quantidade
X=quantidade/
quantidade
Tabela 9 – Métricas de Segurança
43
Nome da
Métrica
Propósito da
Métrica
Medida e Fórmula
Interpretação
Tipo de
Escala
Tipo de
Medida
X= A / B
Escala de
satisfação
Qual o nível de
satisfação do
usuário?
A = questionário
com escala
psicométrica
X>0
Quanto maior,
melhor.
A=quantidade
Taxa
X=quantidade
B = média da
população
Pesquisa de
satisfação
Qual o nível de
satisfação do
usuário em
funções
específicas?
X =A
A = resultado da
pesquisa
Comparação
com valores
anteriores ou
com a média
da população.
A=quantidade
Ordinal
X=quantidade
X= A / B
Uso discreto
do produto
A = número de
Qual proporção vezes que a função,
dos usuários
aplicação ou
potenciais optou
sistema é usado
pelo sistema?
B = número que o
usuário teve a
intenção de usar
A=quantidade
0 <= X <= 1
Quanto mais
próximo de 1,
melhor.
Taxa
B=quantidade
X=quantidade/
quantidade
Tabela 10 – Métricas de Satisfação
44
5 PROCESSO DE AVALIAÇÃO
A avaliação de um software pode ser realizada para aquisição,
fornecimento, desenvolvimento, operação ou manutenção de produtos finais ou
intermediários.
O processo de avaliação de um produto de software é dividido em
três partes: definição de requisitos de qualidade, preparação da avaliação e
procedimento da avaliação.[26]
5.1 Definição de Requisitos de Qualidade
Esse estágio do processo de avaliação consiste em definir as
características e possíveis subcaracterísticas que serão usadas na avaliação.
O modelo da ISO/IEC 9126-1 é o mais utilizado conjuntamente com
o processo de avaliação da ISO/IEC 14598.[16]
5.2 Preparação da Avaliação
Este estágio busca preparar as bases para realizar a avaliação. É
dividido em três fases: seleção de métricas, estabelecimento dos níveis de
pontuação e definição dos critérios de julgamento.
A fase de seleção de métricas depende da parte interessada na
avaliação, que pode ser:
•
Desenvolvedor: procura uma visão de atributos de qualidade
interna e externa para a aplicação aos produtos de software,
onde os atributos internos devem representar a qualidade
externa ao longo do desenvolvimento;
•
Adquirente: avalia o produto através das métricas externas e
de qualidade em uso, podendo haver avaliações preliminares
informais, como observação de usuários e documentação.
45
•
Avaliação por terceira parte: analisa a descrição do produto,
especifica as medições que devem ser executadas no
produto e seus componentes e verificar a especificação
produzida em relação aos requisitos de avaliação.
No estabelecimento dos níveis de pontuação são estabelecidas as
metas para cada métrica, como na Figura 12.
Figura 12 – Valor satisfatório
Na fase de definição dos critérios de julgamento, são mapeados os
resultados das métricas para uma escala, definidos os pesos para as características
e subcaracterísticas avaliadas e calculadas médias ponderadas usando os valores
das métricas e os pesos das respectivas características e subcaracterísticas.
5.3 Procedimento da Avaliação
Este último estágio da avaliação também possui três fases:
obtenção das medidas, comparação dos critérios e julgamento dos resultados.
Na obtenção das medidas, aplicam-se as métricas selecionadas ao
produto de software, obtendo como resultado os valores nas escalas das métricas.
Na comparação de critérios, o valor medido é comparado aos
critérios predeterminados.
Por fim, na fase de julgamento de resultados, um conjunto de níveis
46
de pontuação é sintetizado e comparado com outros aspectos como tempo e custo.
O resultado permitirá a decisão gerencial quanto à aceitação ou rejeição, ou quanto
à liberação ou não-liberação do produto de software.
5.4 Um Exemplo de Aplicação
Para exemplificar o Processo de Avaliação descrito será feita uma
avaliação de qualidade em sites de Instituições de Ensino Superior sob o ponto de
vista do usuário. Para realizar a medição, serão usados os critérios descritos na
norma ISO/IEC 9126-1, com as características de qualidade em uso: efetividade,
produtividade, satisfação e segurança.
As métricas usadas serão algumas das descritas na norma ISO/IEC
9126-4, que medem os efeitos do uso do software em um contexto específico de
uso. Para cada característica, será avaliada apenas uma métrica.
O objetivo do usuário é obter informações sobre os cursos de
graduação: cursos oferecidos, ementas, estrutura curricular e corpo docente.
O resultado da avaliação é mostrado no Quadro 1. Os níveis de
pontuação foram definidos como satisfatório ou insatisfatório. Para um produto ser
considerado aceitável, é necessário que ele tenha pelo menos 80% de resultados
satisfatórios nas avaliações, proporção que é definida pelo avaliador dependendo
das suas necessidades.
47
Definição de
Requisitos
de
Qualidade
Característica
Preparação da Avaliação
Seleção
de métrica
Níveis de
pontuação
Critérios
de
julgamento
Procedimento da Avaliação
Obtenção das
medidas
UEL
Efetividade
Freqüência
de erros
S - Satisfatório
(sem erros)
I - Insatisfatório
(um ou mais
erros)
Aceitável
(80% S)
UNOPAR
Rejeitado
IESB
UEL
Produtividade
Tempo das
tarefas
S - Satisfatório
(tempo <= 10 s)
I - Insatisfatório
(tempo > 10 s)
Aceitável
(80% S)
UNOPAR
Rejeitado
IESB
UEL
Segurança
Danos no
software
S - Satisfatório
(sempre
disponíveis)
I - Insatisfatório
(alguma vez
indisponível)
Aceitável
(80% S)
UNOPAR
Rejeitado
IESB
UEL
Satisfação
Escala de
Satisfação
S - Satisfatório
(todas as
informações)
I - Insatisfatório
(falta alguma
informação)
Aceitável
(80% S)
UNOPAR
Rejeitado
IESB
9S
1I
8S
2I
8S
2I
7S
3I
6S
4I
9S
1I
10 S
0I
10 S
0I
10 S
0I
9S
1I
5S
5I
5S
5I
Comparação
dos critérios
Julgamento
dos
resultados
80%
Aceitável
80%
Aceitável
80%
Aceitável
70%
Rejeitado
60%
Rejeitado
90%
Aceitável
100%
Aceitável
100%
Aceitável
100%
Aceitável
90%
Aceitável
50%
Rejeitado
50%
Rejeitado
Quadro1 – Avaliação de sites Institucionais
48
CONCLUSÃO
Este trabalho teve o objetivo de expor as normas e padrões que
proporcionam Qualidade de Software na fase de desenvolvimento através das
normas de Qualidade de Processo, assim como as normas e padrões que avaliam a
qualidade do produto já finalizado, através das normas de Qualidade de Produto.
O detalhamento ocorreu na norma de Qualidade de Produto de
Software ISO/IEC 9126, onde suas divisões foram mostradas. Com isso, foi
possível perceber que há maneiras efetivas de verificar se um produto de software é
adequado aos diferentes tipos de usuário e suas respectivas necessidades, pois a
norma
possibilita,
através
da
utilização
de
métricas,
avaliar
diferentes
características de um mesmo produto.
49
REFERÊNCIAS BIBLIOGRÁFICAS
[1] KOSCIANSKI, A.; VILLAS-BOAS, A.; REGO, C. M.; ASANOME, C.; SCALET, D.;
ROMERO, D.; CIESLAK, J. M.; PALUDO, M.; FROSSARD, R. S.; VOSTOUPAL, T.
M. Guia para Utilização das Normas Sobre Avaliação de Qualidade de Produto de
Software – ISO/IEC 9126 e ISO/IEC 14598.
[2] TSUKUMO, A. N.; REGO, C. M.; SALVIANO, C. F.; AZEVEDO, G. F.;
MENEGHETTI, L. K.; COSTA, M. C. C.; CARVALHO, M. B.; COLOMBO, R. M. T.
Qualidade de Software: Visões de Produto e Processo de Software. Publicado na II
Escola Regional de Informática da Sociedade Brasileira de Computação Regional de
São Paulo – Piracicaba, SP. Junho de 1997.
[3] VOLPE, R. L. D.; JOMORI, S. M.; ZABEU, A. C. P. CMM – CMMI: Principais
conceitos, diferenças e correlações. Spin-BH, 30 de outubro de 2003.
[4] DUARTE, K. C.; FALBO, R. A. Uma Ontologia de Qualidade de Software.
[5] TELES, F. S. Um Processo para Análise de Desempenho de Produtos de
Software. Recife, 11 de março de 2005.
[6] MACHADO, M. P.; SOUZA, S. F. Métricas e Qualidade de Software.
[7] ROCHA, A. R. C.; MALDONADO, J. C.; WEBER, K. C. Qualidade de software. 1a
Edição. São Paulo: Prentice Hall, 2001.
[8] PRESSMAN, R. S. Engenharia de software, Tradução da 5a Edição. São Paulo:
Mc Graw Hill, 2002
[9] ISO/IEC 9126-1: 2000. Software engineering– Software product quality- Part 1:
Quality Model.
50
[10] ISO/IEC 9126-2: 2000. Software engineering– Software product quality- Part 2:
External Metrics.
[11] ISO/IEC 9126-3: 2000. Software engineering– Software product quality- Part 3:
Internal Metrics.
[12] ISO/IEC 9126-4: 2000. Software engineering– Software product quality- Part 4:
Quality in Use Metrics.
[13] WINTER, L. A.; CORDENONZI, W. Avaliação de Qualidade de Software
Educacional.
[14] SCALET, D. O Modelo da ISO/IEC JTC1/SC7 para a Avaliação de Produto de
Software. Disponível em <http://www.pr.gov.br/celepar/celepar/
batebyte/edições/1994/bb36/modelo.htm>. Acesso em Maio de 2006.
[15] BEVAN, N. ISO and Industry Standards for User Centred Design. Outubro de
2000. Disponível em <http://www.usability.serco.com/trump>.
[16] Seminário de Qualidade de Software do Subcomitê de Software da ABNT.
Modelo de Qualidade e Usabilidade de Software. Agosto de 2001.
[17] CORDEIRO, M. A. Métricas de Software. – Bate byte 101 – Setembro de 2000.
[18] VASCONCELOS, A. Introdução a Métricas de Software. 2005
[19] KOSCIANSKI, A.; SOARES, M. S. Qualidade de Software. 1a Edição. Editora
Novatec.
[20] WEBER, K. Qualidade e Produtividade em Software. 3a Edição. Editora Makron.
51
[21] SOMMERVILLE, I. Engenharia de Software. 6ª Edição. Addison Wesley, 2004.
[22] ISO 8402. Quality Vocabulary, 1994.
[23] ISO 9000. Normas de Gestão da Qualidade e Garantia de Qualidade –
Diretrizes para Seleção e Uso.
[24] BARRETO, J. Qualidade de Software.
[25] LODI, S.; CORDENONZI, W. Aplicação de Produtos de Software Utilizando a
ISO/IEC 9126.
[26] UNICAMP. Universidade de Campinas – Instituto de Computação –
Publicações. Disponível em <http://www.ic.unicamp.br/~cortes/mc726/cap3.pdf>.
Acesso em Julho de 2006.
[27] PALUDO, M. Qualidade de Produto de Software.
[28] SEBRAE. Disponível em <http://www.sebrae.com.br>.
52
Download

Avaliação de Qualidade de Produtos de Software - jeltex