2 considerações sobre qualidade e usabilidade de softwarerangel/ihm/downloads/capitulo2.pdf ·...
TRANSCRIPT
“Some designers cannot understand the apparent stupidity of users who have difficulty accessing the
brilliant functions which, at great cost, have been cleverly built into the software. HCI process method
producers need to recognise that they are now in the same situation, with those stupid system designers
failing to use their sophisticated usability design guides and procedures. So how do we set about taking
our own medicine?”
[Brian Shackel]
2 Considerações sobre Qualidade e Usabilidade de Software ..................23
2.1 Qualidade de Software e Satisfação do Usuário ............................................ 25
2.1.1 Qualidade e Qualidade de Software ................................................................... 26
2.3.2 Facetas da Qualidade de Software..................................................................... 34
2.3.2 Qualidade de Software e Satisfação do Usuário ............................................... 39
2.2 Engenharia, Engenharia de Software e Engenharia da Usabilidade ............ 41
2.2.1 Engenharia .......................................................................................................... 41
2.2.2 Engenharia de Software...................................................................................... 43
2.2.3 Engenharia da Usabilidade ................................................................................. 45
2.3 Usabilidade de Software ................................................................................... 47
2.3.1 Visão de Shackel ................................................................................................. 53
2.3.2 Visão de Nielsen .................................................................................................. 55
2.3.3 Visão da ISO (International Standards Organization) .......................................... 57
O presente capítulo discute aspectos relativos à qualidade e usabilidade de produtos de
software e às técnicas de avaliação de processos interativos usuário-computador, suas
potencialidades e limitações.
A seção 2.1 - Qualidade de Software e Satisfação do Usuário – se inicia com definições do
termo qualidade que servem como ponto de partida para uma discussão sobre a qualidade de
software. São apresentadas definições de diversos autores consagrados, assim como modelos
para a mensuração da qualidade de produtos de software. Finalmente, a seção é encerrada
com comentários sobre a relação existente entre a qualidade de software e a satisfação do
usuário.
A seção 2.2 (Engenharia, Engenharia de Software e Engenharia da Usabilidade) se inicia
com um estudo etimológico da palavra engenharia e apresenta definições de diversos autores
para os termos engenharia de software e engenharia da usabilidade, objetivando justificar o
emprego deste último ao longo deste documento.
Considerações sobre Qualidade e Usabilidade de Software
24
A última seção deste capítulo (Usabilidade de Software) retoma a discussão conduzida na
primeira seção, buscando evidenciar o elo existente entre a qualidade e a usabilidade de
software. Adicionalmente, apresenta considerações sobre usabilidade, discute três visões
clássicas da usabilidade enquanto atributo mensurável de produtos e direciona a discussão
para o âmbito da avaliação de interfaces usuário-computador, sendo encerrada com uma breve
menção às técnicas concebidas para este propósito.
2.1 Qualidade de Software e Satisfação do Usuário
É inegável que, no último quarto de século, as tecnologias de hardware e software evoluíram a
passos largos, estimulando o uso de sistemas baseados em computadores nas mais diferentes
atividades do cotidiano e instituindo uma nova ordem em nível mundial. Após décadas de
concentração de esforços direcionados para o desenvolvimento e o aprimoramento de tecnologias
computacionais, as tendências atuais da engenharia de sistemas apontam para estratégias de
concepção e desenvolvimento de projetos que visam cada vez mais a solução de problemas reais
do usuário.
Também é inegável que os sistemas de software tornaram-se praticamente onipresentes
no cotidiano da vida contemporânea, uma vez que a maioria dos equipamentos elétricos incluem
algum tipo de software [Somm97]. Nas duas últimas décadas, em especial, o software vem
assumindo cada vez mais o papel do hardware como componente de planejamento mais difícil,
menos provável de obter sucesso tanto em termos de cumprimento de prazos quanto do
orçamento de custos e mais arriscado de se administrar [Press95, Somm97]. Em suma,
demandando mais atenção e esforços. Em geral, constata-se que os custos envolvidos em
processos de desenvolvimento de software não estão associados a características do produto
relacionadas com a metodologia adotada para implementá-lo, nem tampouco com a confiança dos
resultados que tal metodologia proporciona. Os custos estão associados, sobretudo, a quão
adequadamente o software é projetado, codificado e documentado, no que diz respeito à
manutenção, portabilidade, interoperabilidade e atualização, dentre outros aspectos [McCa79].
Os recursos investidos por grande parte das corporações de desenvolvimento de produtos
de software são cada vez mais vultuosos. Devido ao aumento da complexidade dos produtos, dos
requisitos de qualidade exigidos e das demandas de mercado, muitos dos problemas encontrados
são específicos ao processo de desenvolvimento de software, dentre os quais podem ser citados
dificuldades de planejamento, ausência ou precariedade de bons programas de avaliação da
qualidade dos produtos desenvolvidos, não cumprimento de prazos e, até mesmo e sobretudo,
falta de estruturação das atividades de desenvolvimento e avaliação dos produtos. Esta é uma das
principais razões que têm impulsionado companhias e instituições diversas do mundo inteiro a
continuarem investindo em recursos físicos, materiais, temporais e econômicos em processos de
otimização do desenvolvimento das aplicações de software que produzem e/ou utilizam.
Problemas de desenvolvimento enquadrados neste contexto compõem um quadro
usualmente rotulado por diversos pesquisadores da área (e.g., Gibbs [Gibb94], Sommerville
[Somm97]) como crise de software (software crisis). Uma análise da situação atual do mercado de
desenvolvimento de software conduz à constatação de que tais problemas vêm recebendo uma
atenção sempre crescente e sendo tratados cada vez mais efetivamente no contexto da
Otimização do Processo de Desenvolvimento de Software (SPI19). Como conseqüência, diversas
abordagens, envolvendo modelos, métodos e métricas variadas têm sido concebidas e validadas
por pesquisadores e equipes de desenvolvimento de software.
Em geral, estas abordagens costumam ser enquadradas por alguns autores (e.g., Thomas
e McGarry [Thom94], Pressman [Press95], Sommerville [Somm97], Solingen e Berghout [Soli97])
19 Software Process Improvement.
Considerações sobre Qualidade e Usabilidade de Software
26
em uma de duas grandes categorias, assim discriminadas:
(i) abordagens top-down, tais como SPICE [Dorl93], BOOTSTRAP [Kuva94] e CMM
[Paul95], fundamentadas na determinação e análise do esforço global de desenvolvimento de
software, segundo características pré-definidas; e
(ii) abordagens bottom-up, tais como AMI [AMI92], GQM [Basi94a] e QIP [Basi94b], que se
fundamentam essencialmente na mensuração de componentes do processo de desenvolvimento,
sem características pré-definidas como fontes de informação básicas.
Em essência, a linha de abordagem top-down aplica um modelo normativo considerado o
melhor modo de desenvolvimento de software, que permite a análise da maturidade de uma
empresa de desenvolvimento de software e a proposição de otimizações relevantes ao contexto do
processo de desenvolvimento [Hump89]. Em contrapartida, a linha de abordagem bottom-up
argumenta que o campo da Engenharia de Software ainda é imaturo, tornando impossível a
definição de tal modelo normativo para desenvolvimento de software [Gibb94]. Portanto, adquire-se
conhecimento empírico através da mensuração de componentes do processo de desenvolvimento
de software, visando o aprimoramento da compreensão do referido processo em contextos
específicos. Nos últimos anos, ambas as linhas de abordagem vêm sendo aplicadas
satisfatoriamente em diversos contextos práticos [Somm97].
Sendo um processo através do qual números ou símbolos são associados a atributos de
entidades do mundo real, possibilitando sua descrição de acordo com regras claramente definidas
[Fent96], a mensuração constitui um auxílio importante em abordagens bottom-up de otimização
de processos de desenvolvimento de software, que sempre incluem algum tipo de plano de
mensuração. Nesse contexto, a qualidade do produto representa um papel de destaque,
exercendo uma forte influência no cotidiano de pesquisadores, projetistas, avaliadores e usuários,
pois dela depende a viabilidade das atividades que estes realizam com o auxílio do produto
[Kitc96]. Atualmente, a motivação para a perseguição da qualidade se afigura evidente, graças à
sua introdução em todos os níveis da produção de bens por técnicos, à sua popularização pela
mídia e à sua elevação de status como critério decisivo na aquisição de bens pelos consumidores.
2.1.1 Qualidade e Qualidade de Software
A busca da qualidade de produtos de software implica a consideração de uma série de
fatores os mais variados, abrangendo questões que vão desde a tomada de decisões por parte dos
empresários até a seleção de métricas mais apropriadas, passando por detalhes de cunho
temporal e econômico concernentes aos investimentos a serem feitos pelas empresas de
desenvolvimento. Um ponto de partida apropriado para uma discussão do assunto pode ser o
questionamento do termo qualidade.
Sem dúvida, a definição do termo qualidade constitui um tema controverso. Uma discussão
interessante do significado do termo pode ser encontrada em Kitchenham e Walker [Kitc86]. Hyatt
e Rosenberg [Hyat96] comentam que embora todos concordem que a qualidade é importante, mas
ninguém concorda com o que qualidade significa. Kitchenham [Kitc96] afirma que qualidade é difícil
de definir e impossível de medir, porém fácil de reconhecer. Gillies [Gill92] acrescenta que a
qualidade é transparente quando presente, porém facilmente reconhecida em sua ausência.
Considerações sobre Qualidade e Usabilidade de Software
27
Por outro lado, as definições dos dicionários são excessivamente vagas ou sujeitas a uma
grande diversidade de interpretações para servirem de respaldo para uma discussão. O Novo
Dicionário da Língua Portuguesa [Holl86], por exemplo, define qualidade como “1. Propriedade,
atributo ou condição das coisas ou das pessoas capaz de distingui-las das outras e de lhes
determinar a natureza. 2. Numa escala de valores, qualidade (1) que permite avaliar e,
conseqüentemente, aprovar, aceitar ou recusar qualquer coisa.”
O Oxford Advanced Learner’s Dictionary [Horn90], por sua vez, define o termo equivalente
inglês quality como “1 (a) grau de excelência ou mérito (degree of goodness or worth). (b)
excelência global (general excellence). 2 (a) atributo, característica (attribute, characteristic).
(b) aspecto especial ou distintivo (special or distinguishing feature).”
Percepções de qualidade por diferentes domínios do conhecimento humano, incluindo
filosofia, economia e marketing, foram examinadas e relatadas por Garvin [Garv84, Garv88], que
as encarou como diferentes facetas de um conceito complexo. O autor descreveu as facetas do
termo a partir de cinco perspectivas diferentes, a saber:
(i) Transcendental, baseada na descrição platônica do ideal e no conceito aristotélico de
forma, este ponto de vista encara a qualidade como algo que pode ser reconhecido, mas não
definido;
(ii) Do usuário, embasada no compromisso entre as suas necessidades e as
características do produto (altamente personalizada e inerente ao contexto de modelagem de
desempenho e confiabilidade, visto que se avalia comportamentos de produtos com relação à
funcionalidade esperada e aos padrões de uso);
(iii) Do produto, fundamentada em características inerentes ao produto, assumindo que a
mensuração e o controle de suas propriedades intrínsecas (denominadas indicadores de qualidade
internos) resultam na otimização de seu comportamento externo (qualidade em uso);
(iv) Do fabricante, focalizada na qualidade do produto durante o seu desenvolvimento e
após a entrega (ou seja, dependente da especificação);
(v) Baseada no custo, respaldada no montante que o consumidor se dispõe a pagar pelo
produto, o que implica a avaliação e revisão dos requisitos de produção à luz de relações de
custos e benefícios.
Portanto, a definição de qualidade está intimamente atrelada à perspectiva que se adote
para visualizá-la. Mensurá-la significa estabelecer referências, prognosticá-la adequadamente e
monitorar processos que impliquem sua otimização, ou seja, vinculá-la à perspectiva sob a qual é
encarada. Diferentes perspectivas implicam a consideração de diferentes aspectos que exercem
influência sobre a qualidade de um produto e, por conseguinte, a concepção de diferentes modelos
de qualidade. O Quadro 2, adaptado de uma das páginas do site da Tantara Management Services
[TMS00], complementa a discussão sobre qualidade, sintetizando aspectos relativos aos pontos de
vista de seis pesquisadores clássicos da área, a saber: Deming [Demi86, Walt86], Garvin [Garv88,
Flow90], Taguchi [in Roy90], Feigenbaum [Feig91], Crosby [Cros92] e Juran [Jura95].
Considerações sobre Qualidade e Usabilidade de Software
29
Os Quadros 3, 4 e 5 apresentam, respectivamente o programa de 14 pontos sugerido por
Deming [Demi86], as oito dimensões da qualidade apontadas por Garvin [Garv94] e o programa de
14 etapas sugerido por Crosby [Cros92] para a otimização da qualidade (referidos no Quadro 2).
Quadro 3 – O programa de 14 pontos de Deming [Demi86].
PROGRAMA DE 14 PONTOS DE DEMING
1. Tornar constante o propósito de otimização do produto e do serviço, objetivando a
competitividade, a permanência no mercado e a oferta de empregos.
2. Adotar a nova filosofia, pelo fato de se estar inserido em uma nova era econômica. (A
administração ocidental deve despertar para os novos desafios, apre(e)nder suas
responsabilidades e assumir a liderança através das mudanças.)
3. Romper a dependência da obtenção da qualidade a partir da inspeção, eliminando a
necessidade de inspeção respaldada em primeiro lugar na qualidade no produto.
4. Encerrar a prática de compensação de custos à base da etiquetagem de preços. Ao invés disto,
minimizar o custo total. Adquirir qualquer item necessário de um único fornecedor,
estabelecendo uma relação de longo prazo baseada na lealdade e confiança.
5. Otimizar intermitentemente e sempre o sistema de produção e o serviço, a fim de otimizar a
qualidade e a produtividade e, assim, progressivamente reduzir os custos.
6. Instituir um programa de treinamento.
7. Tornar efetiva a liderança (ver Ponto 12 e Capítulo 8 do Out of the Crisis, de Deming [Demi86]),
instituindo como meta da supervisão o suporte que possibilite o exercício melhor do trabalho
dos empregados, assim como das máquinas e dispositivos. A supervisão da administração
carece de inspeção do mesmo modo que a supervisão dos empregados do setor de produção.
8. Vencer os medos, de forma que todos possam trabalhar efetivamente para a companhia (ver
Capítulo 3 do Out of the Crisis, de Deming [Demi86]).
9. Romper as barreiras setoriais (equipes de pesquisas, projetos, vendas e produção), estimulando
o trabalho em equipe, a fim de preverem conjuntamente problemas na produção e do uso que
possam ser encontrados no produto ou serviço.
10. Eliminar slogans, exortações e metas que exijam da mão-de-obra a ausência de defeitos e novos
níveis de produtividade. Tais exortações só criam relações de adversidade, quando a maior
parte das causas da baixa qualidade e baixa produtividade é inerente ao sistema e, portanto,
transcende o poder da mão-de-obra.
11. a) Eliminar patamares-padrões de trabalho (cotas).
b) Eliminar a gestão a partir do objetivo. Eliminar a gestão através de números e de metas
numéricas.
12. a) Remover barreiras que privem os empregados do direito de se sentirem orgulhosos de seu
trabalho. Alterar a responsabilidade dos supervisores de meros números para qualidade.
b) Remover barreiras que privem o pessoal da administração e da engenharia do direito de se
sentirem orgulho de seu trabalho. Isto significa abolir a compensação anual por mérito e a
gestão a partir do objetivo (ver Capítulo 3 do Out of the Crisis, de Deming [Demi86]).
13. Instituir um programa vigoroso de educação e auto-aperfeiçoamento.
14. Atribuir a todos o encargo de realizar a transformação. A transformação é trabalho de todos.
Considerações sobre Qualidade e Usabilidade de Software
30
Quadro 4 – As oito dimensões da qualidade [Cros92].
AS OITO DIMENSÕES DA QUALIDADE DE GARVIN
DIMENSÃO DESCRIÇÃO
1. DESEMPENHO (Performance) Características operacionais básicas do produto
2. FACILIDADES SUPLEMENTARES (Features) Características que suplementam o
funcionamento básico do produto
3. CONFIABILIDADE (Reliability)
Probabilidade de apresentação de falhas ou mau
funcionamento em um determinado intervalo de
tempo
4. CONFORMAÇÃO (Conformance) Grau de adequação a padrões pré-estabelecidos
5. DURABILIDADE (Durability) Tempo de vida até a substituição
6. PRESTAÇÃO DE SERVIÇOS (Serviceability) Facilidade de assistência técnica, rapidez e
competência dos serviços de manutenção
7. ESTÉTICA (Aesthetics)
Capacidade de satisfazer aos sentidos
(aparência visual do produto e impressões
auditiva, olfativa ou gustativa por ele causadas)
8. QUALIDADE PERCEBIDA (Perceived quality)
Inferências feitas a partir de aspectos tangíveis e
intangíveis do produto (papel relevante e crítico
da publicidade, da imagem e do rótulo do
produto)
Quadro 5 – O programa de 14 etapas de Crosby [Cros92].
PROGRAMA DE 14 ETAPAS DE CROSBY
1. Evidenciar o comprometimento da administração com a qualidade.
2. Formar equipes de otimização da qualidade com representantes seniores de cada setor.
3. Mensurar processos com o propósito de determinar onde há problemas e/ou onde há
potencialidade para a ocorrência de problemas.
4. Avaliar os custos da qualidade e explicar seu uso como ferramenta de gestão.
5. Estimular a preocupação individual de todos os empregados com a qualidade.
6. Agir no sentido de corrigir os problemas identificados a partir das etapas anteriores.
7. Estabelecer o monitoramento do progresso do processo de otimização (da qualidade).
8. Treinar supervisores a fim de que cumpram ativamente sua parte no programa de otimização da
qualidade.
9. Instituir um “Dia sem Falhas”20
, a fim de que todos se conscientizem da mudança e reafirmem o
comprometimento com o processo de gestão (da qualidade).
10. Encorajar os indivíduos a estabelecerem metas para a otimização em nível pessoal e grupal.
11. Encorajar os empregados a comunicarem aos gerentes os obstáculos defrontados para atingir
suas metas de otimização.
12. Mostrar reconhecimento e apreciar aqueles que participam.
13. Estabelecer conselhos de qualidade que interajam regularmente.
14. Enfatizar que o programa de otimização da qualidade nunca acaba.
20 Zero Defects Day, no original.
Considerações sobre Qualidade e Usabilidade de Software
31
Dixon et al. [Dixo96] descrevem qualidade como uma associação evidente de
características interrelacionadas que refletem adequadamente exigências específicas e implícitas
de um produto, processo ou serviço que são relevantes em um dado contexto atual e sua
circunvizinhança.
Segundo a visão da European Organisation for Quality [EOQ00], expressa através de um
documento redigido durante a presidência finlandesa da União Européia, em 1999, qualidade é a
relação entre requisitos e resultados reais, a diferença entre o que se espera e o que se consegue.
O documento, que dedica duas seções inteiras discutindo aspectos relativos ao termo qualidade21,
acrescenta que a qualidade é baseada em valores e expressa em escolhas, sendo um atributo
valioso na distinção entre o bom e o ruim, o aceitável e o inaceitável, os sem iniciativa e os
empreendedores. A fim de enfatizar as conotações do termo valores, o documento menciona que
são vários os seus significados, embora apresente apenas os dois empregados na discussão, a
saber: (i) idéias genéricas de preferências em situações onde se dispõe de duas ou mais linhas de
ação; e (ii) no contexto de transações envolvendo produtos e serviços, atributo associado à
percepção individual de utilidade e do grau de importância que cada indivíduo confere à transação.
As duas conotações são sintetizadas na Fig. 1, adaptada do original [EOQ00], onde se ilustra do
lado esquerdo o primeiro significado dado ao termo pela EOQ, enquanto o lado direito ilustra a
segunda conotação que a EOQ dá ao termo.
Fig. 1 – Qualidade e valores, segundo a European Organisation for Quality [EOQ00].
Neste ponto, vale a pena questionar o que vem a ser, afinal de contas, qualidade de
software. Na verdade, várias definições têm sido propostas para o termo na literatura da área. Em
geral, a qualidade de um produto é tratada como uma de suas propriedades [Beva95a]. Assim, do
ponto de vista do produto, a qualidade implica a identificação dos atributos que podem ser
projetados ou avaliados, para que o produto seja otimizado. Na verdade, há quase duas décadas o
termo qualidade de software (software quality) tem recebido uma atenção cada vez maior, tanto
dos desenvolvedores quanto dos avaliadores e da comunidade usuária, tornando-se, por
conseguinte, amplamente divulgado.
21 Seções 1 (The European Quality Vision - a background…) e 2 (Quality – philosophical and practice perspectives)
Considerações sobre Qualidade e Usabilidade de Software
32
Segundo Solingen et al. [Soli99], quando se visa a qualidade de produtos de software,
distingue-se duas abordagens possíveis, a saber: a abordagem do processo e a abordagem do
produto. Os autores acrescentam que enquanto a primeira abordagem tenta otimizar a qualidade
de produto indiretamente, a partir da otimização do processo, a segunda tenta fazê-lo diretamente.
Todavia, em muitas circunstâncias, conotações vagas e equivocadas do termo, desvinculadas do
processo e do produto, têm provocado uma certa desvirtuação da meta fundamental da indústria
de software: o aprimoramento dos diversos processos envolvidos na geração de seus produtos
finais [Drom96]. No que diz respeito aos usuários, Gentleman [Gent96] acrescenta que é
surpreendente o número de indivíduos que ainda associa o termo qualidade de software
simplesmente à ausência de erros.
Para alguns autores (e.g. Kitchenham e Pfleeger [Kitc96], Bevan [Beva97]), o contexto é
um aspecto de grande significância [Kitc96, Gent96, Beva97, Bond98] para a definição do termo
qualidade de software. O ponto de vista do qual o termo é focalizado representa outro aspecto
relevante a ser considerado, tendo em vista que os resultados de julgamentos feito por diferentes
indivíduos sobre algo que usam são função de seus pontos de vista [Bond98], assim como de suas
necessidades particulares. No âmbito da Engenharia de Software, não poderia ser diferente, tendo
em vista que projetistas, usuários, fabricantes e avaliadores de ferramentas de software
usualmente encaram o termo qualidade de ângulos distintos, ao aplicá-lo ao mesmo produto. São
as chamadas “perspectivas da qualidade”, mencionadas por diversos autores, e.g., Kusters et al.
[Kust97] e Miller [Mill97].
Qualidade de software é freqüentemente definida em termos da adequação do produto
aos propósitos segundo os quais foi desenvolvido. Entretanto, há de se considerar que diferentes
usuários têm propósitos diferentes para o mesmo produto. Um usuário principiante esporádico
provavelmente estará mais interessado na facilidade de aprendizagem e na tolerância a erros
exibidas pelo produto do que na eficiência por este apresentada. Por outro lado, um gerente de
redes que planeja incorporar o produto a algum sistema maior, estará mais interessado na
capacidade de detecção e de recuperação de falhas que o produto apresenta do que na facilidade
de instalação deste. Uma empresa de treinamento e manutenção do produto se preocupará com
questões relativas à documentação técnica e a facilidade de teste do produto.
Tais considerações parecem conduzir à conclusão que qualidade de software não é
absoluta, mas uma percepção dependente de quem a avalia. Além disso, a qualidade de software
é multifacetada, sendo a importância de cada uma de suas facetas dependente do contexto de
uso, até mesmo para o mesmo indivíduo.
Muitas referências clássicas em Engenharia de Software (e.g., Gilbert [Gilb83], Schach
[Scha90], Hailstone [Hail91]) definem qualidade de software como a implementação correta da
especificação. Tal definição pode ser adequada durante a fase de desenvolvimento de produto,
embora se afigure inadequada quando utilizada para comparar produtos.
Kano et al. [Kano89] definem qualidade de software em três níveis, a saber: (i) qualidade
por excelência (excellent quality), definida como qualquer característica do software que exceda o
nível de desempenho esperado; (ii) qualidade unidimensional, definida como qualquer
característica do software desejada por usuários específicos, porém não inteiramente necessária
para todos as categorias de usuários; e (iii) qualidade esperada, definida como qualquer
Considerações sobre Qualidade e Usabilidade de Software
33
característica necessária ao funcionamento normal do produto.
Denning [Denn92] focaliza o usuário ao definir qualidade de software e associa o termo ao
grau de satisfação do usuário, afirmando que quanto maior for o grau de satisfação do usuário,
mais provável será que este classifique o produto como confiável e de boa qualidade. Esta visão
também é compartilhada pela ISO, através do padrão 8402 [ISO86], que define a qualidade de
uma entidade (processo, produto ou organização) como a totalidade de características daquela
entidade que lhe confere a capacidade de satisfazer as necessidades explícitas e implícitas. Tal
definição estará fundamentada nas características do produto se as necessidades dos usuários
forem bem definidas e comuns. Entretanto, partindo do princípio que grupos diferentes de usuários
têm necessidades diferentes, então a qualidade do produto para cada grupo estará associada a
características diferentes. Deste modo, a qualidade do produto, sob o ponto de vista do ISO 8402
torna-se dependente da percepção do usuário.
De um modo abrangente, as organizações nacionais e internacionais de padronização têm
associado o termo qualidade de produtos (que dá margem à inclusão de produtos de software) ao
atendimento de necessidades ou expectativas. O padrão IEEE 10.12–1990 [IEEE90b] define
qualidade de dois modos, a saber: (1) grau segundo o qual um sistema, componente ou processo
satisfaz as exigências especificadas; e (2) grau segundo o qual um sistema, componente ou
processo satisfaz o cliente ou as necessidades ou expectativas do usuário.
Para o termo qualidade de software, a definição do padrão IEEE 1061–1992 [IEEE92] diz
ser o grau segundo o qual o software possui uma combinação desejada de atributos. O padrão ISO
9000 [ISO87] diz respeito à garantia da qualidade de um produto sob o ponto de vista do
preenchimento de um conjunto de requisitos pré-definidos. Segundo Bevan [Beva97], uma
interpretação literal deste ponto de vista torna a qualidade de um produto dependente do
profissional ou da equipe que especifica os requisitos. Dito de outro modo, um produto pode ser
julgado como sendo de boa qualidade mesmo se a especificação dos requisitos não for apropriada
a um dos contextos de uso para o qual foi desenvolvido.
Pressman [Pres95] não define qualidade de software. No entanto, o autor se refere ao
termo como a conformação de todo produto de software profissionalmente desenvolvido a (i)
requisitos funcionais e de desempenho explicitamente declarados, (ii) padrões de
desenvolvimento claramente documentados e (iii) características implícitas almejadas (e.g.,
um elevado nível de portabilidade). O autor acrescenta que a qualidade de software é uma
combinação complexa de fatores, também denominados indicadores de qualidade, que variam
conforme as aplicações consideradas e os clientes que a solicitam.
Nos últimos 25 anos, têm-se concebido e proposto diversos modelos de qualidade
de software que focalizam diferentes características do produto, às quais se tem associado
uma série de fatores de qualidade. Tais modelos têm servido de suporte à compreensão
de como os indicadores da qualidade de um produto se interrelacionam e às
características consideradas, de modo a tornar praticável sua mensuração [Kitc96]. Dentre
os modelos que têm sido propostos, podem ser mencionados o SQM (Software Quality
Metrics) [McCa77, Boeh78], o modelo de Gilb [Gilb87] e o GQM (Goal Question Metric)
[Basi88].
Considerações sobre Qualidade e Usabilidade de Software
34
2.1.2 Facetas da Qualidade de Software
McCall et al. [McCa77] propuseram um dos primeiros modelos de qualidade de software,
denominado SQM (Software Quality Metrics – Métricas de Qualidade de Software), no qual as
qualidades almejadas para o produto são estruturadas em uma hierarquia de fatores, critérios e
métricas.
Fig. 2 – Fatores de qualidade de software definidos por McCall et al. [McCa77].
Os fatores de qualidade de software do SQM focalizam três aspectos relevantes de
um produto de software – características operacionais, capacidade de revisão e capacidade
de adaptação a novos ambientes (Fig. 2).
Cada fator de qualidade representa uma característica comportamental do
produto. Cada critério de qualidade é um atributo do fator de qualidade relacionado
com o projeto e com a produção do software considerado. Cada métrica de qualidade é
uma medida associada a algum aspecto de um critério de qualidade. Uma ou mais
métricas de qualidade poderão estar associadas a cada critério de qualidade. As setas da
Fig. 3 indicam quais dos critérios pré-definidos exercem influência sobre cada um dos
fatores de qualidade contemplados no modelo.
Considerações sobre Qualidade e Usabilidade de Software
35
Fig. 3 – Critérios e fatores do modelo SQM [McCa77].
(Reusability)
(Correctness)
(Confiability)
(Efficiency)
(Flexibility)
(Integrity)
(Interoperability)
(Maintainability)
(Portability)
(Testability)
(Usability) (Machine Independence)
(Instrumentation)
(Conciseness)
(Communications Commonality)
(Data Commonality)
(Simplicity)
(Access Control)
(Audit Control)
(Generality)
(Modularity)
(Expandability)
(Operability)
(Training)
(Comunicativeness)
(Software-system Independence)
(Traceability)
(Completeness)
(Consistency)
(Accuracy)
(Error Tolerance)
(Execution Efficiency)
(Storage Efficiency)
(Self-descriptiveness)
Considerações sobre Qualidade e Usabilidade de Software
36
O padrão IS09126 – Software product evaluation – Quality characteristics and
guidelines for their use [ISO92] recomenda a composição de um conjunto básico de seis
características independentes para a descrição da qualidade de um produto, com um mínimo de
superposição de atributos, as quais constituem o alicerce para posterior otimização da qualidade
de software. A Fig. 4 ilustra o refinamento dessas características em sub-características.
Fig. 4 – Características e sub-características do modelo contido no padrão ISO 9126 [ISO92].
(Portability)
(Maintainability)
(Functionality)
(Efficiency)
(Confiability)
(Usability)
(Maturity)
(Fault Tolerance)
(Recoverability)
(Time Behaviour)
(Resources Behaviour)
(Suitability)
(Accuracy)
(Security)
(Interoperability)
(Changeability)
(Analyzability)
(Stability)
(Testability)
(Replaceability)
(Adaptability)
(Installability)
(Conformance)
(Understandability)
(Learnability)
(Operability)
Considerações sobre Qualidade e Usabilidade de Software
37
O Quadro 6 apresenta as definições das características do ISO 9126, cujo
equivalente brasileiro é a norma da ABNT NBR13596, que aponta igualmente para as
mesmas características de qualidade de software descritas no Quadro 6.
Quadro 6 – Características de qualidade de software do modelo apresentado
no documento do padrão ISO 9126 [ISO92].
(Reliability)
Conjunto de atributos relacionados com a capacidade de
manutenção do grau de desempenho do produto sob
condições pré-estabelecidas, por um período de tempo
pré-fixado.
(Efficiency)
Conjunto de atributos vinculados à relação entre o
desempenho do produto e a quantidade de recursos
empregados, sob condições pré-estabelecidas.
(Functionality)
Conjunto de atributos que implicam a existência de um
conjunto de funções e propriedades correspondentes, cada
função satisfazendo necessidades pré-estabelecidas ou
subentendidas.
(Maintainability)
Conjunto de atributos associados ao esforço necessário para
a realização de alterações especificadas, incluindo desde
correções, otimizações ou adaptações do produto até
alterações de ambiente ou de requisitos e especificações
funcionais.
(Portability)
Conjunto de atributos associados à capacidade de migração
do produto de um ambiente para outro, considerando-se os
contextos organizacional e computacional (hardware e
software básico)
(Usability)
Conjunto de atributos relativos ao esforço associado ao uso
do produto e à avaliação de tal uso por um universo pré-
estabelecido ou subentendido de usuários.
Vale a pena mencionar que o padrão ISO9126, apesar de recomendar a
mensuração direta das referidas características, não sugere métricas nem indica claramente
como fazê-lo. Apenas sugere que caso a característica desejada não possa ser mensurada
diretamente (especialmente durante a fase de desenvolvimento do produto), deve-se
procurar medir algum outro atributo que possa auxiliar o avaliador a prognosticá-la. Além
disto, apresenta em um de seus anexos uma indicação de como as características podem
ser decompostas em sub-características. No entanto, não apresenta diretrizes para a
implementação de um bom sistema de prognósticos.
Tervonen [Terv96] descreveu um modelo de qualidade de software
fundamentado no modelo SQM e no padrão ISO 9126, denominado Síntese do SQM
(SQM-synthesis model). A Fig. 5 mostra uma representação gráfica dos critérios e fatores
do modelo concebido por Tervonen [Terv96], ilustrando também a correspondência dos
critérios da Síntese do SQM ou modelo GRCM (Goal-Rule-Checklist-Metric) com as
características do padrão ISO 9126.
Considerações sobre Qualidade e Usabilidade de Software
38
Fig. 5 – Critérios e fatores do modelo Sintese do SQM (ou GRCM) [Terv96] e comparação
dos critérios do GRCM com as características do padrão ISO 9126 [ISO92].
(Usability)
(Verifiability)
(Reliability)
(Functionality)
(Maintainability)
(Efficiency)
(Portability)
(Reliability)
(Efficiency)
(Correctness)
(Integrity)
(Interoperability)
(Expandability)
(Maintainability)
(Portability)
(Usability)
(Reusability)
(Nondeficiency)
(Fault Tolerance)
(Availability)
(Likeability)
(Completeness)
(Time Behavior)
(Resource Behavior)
(Audability)
(Survivability)
(Security)
(Compliance)
(Consistency)
(Modularity)
(Readability)
(Instability)
(Generality)
(Maturity)
(Upgradeability)
(Simplicility)
(Stability)
(Conciseness)
(Traceability)
(Adaptability)
(Replaceability)
(Conformance)
(Learnability)
(Ease of Use)
(Usefulness)
(Operability)
Considerações sobre Qualidade e Usabilidade de Software
39
Os modelos SQM [McCa77, Boeh78] e IS09126 [ISO92] diferem basicamente em dois
aspectos: (i) a terminologia em geral; e (ii) a estruturação dos "indicadores" de qualidade,
totalmente hierárquica no padrão ISO (cada sub-característica se relaciona com uma única
característica). Além do mais, as sub-características estão relacionadas com aspectos de
qualidade visíveis ao usuário e não a propriedades internas ao produto analisado.
Modelos como o SQM [McCa77, Boeh78] e o GQM [Basi88, Basi94a] e padrões como o
IS09126 [ISO92] estabelecem uma terminologia para a qualidade de software, embora tendam a
ser rígidos ou abstratos. Além do mais, não podem assegurar o aprendizado e o uso da
terminologia a eles associada, o que pode acarretar a definição insuficiente de estimativas de
qualidade dentro de um determinado contexto avaliatório, bem como o emprego inadequado e
inconsistente de termos de qualidade por projetistas e avaliadores [Terv96].
O GRCM (Goal-Rule-Checklist-Metric), como o autor o denomina, constitui um
refinamento do ISO 9126, apresentando metas (goals) que se fazem corresponder a fatores e
regras (rules), correspondentes a critérios. As listas de inspeção (checklists) explicam aos
avaliadores quais as regras a serem discutidas com os projetistas e quais são as métricas (metrics)
que deverão ser empregadas para implementar a inspeção na prática. A terminologia e o
vocabulário das regras deve ser adequado para o desenvolvimento orientado ao objeto. As listas
de inspeção são empregadas pelos avaliadores para analisar se o projetista realmente seguiu a(s)
regra(s).
Dromey [Drom96, Kitc96] desenvolveu uma abordagem que tenta compensar problemas
inerentes ao SQM e ao padrão IS09126, no tocante à carência de base lógica, visando a
determinação de quais os fatores que deverão ser incluídos na definição de qualidade de um
produto específico, assim como a identificação de quais os critérios específicos que estão
relacionados a cada fator selecionado.
2.1.3 Qualidade de Software e Satisfação do Usuário
Os usuários tendem a avaliar a qualidade de ferramentas de software em termos de sua interação
com o produto final [Kitc96]. Um dos estimadores do grau de interação usuário-produto,
freqüentemente adotado nos últimos 25 anos, tem sido a satisfação (subjetiva) do usuário, que
vem despertando um interesse cada vez maior de pesquisadores de processos interativos usuário-
computador. Além do mais, o fato de vir sendo empregado como fator avaliatório do sucesso de
processos interativos e do desempenho de sistemas de informação [Meln72] possui uma
explicação bastante convincente: o efeito de um bom projeto de interface usuário-computador, que
implica estratégias de comunicação bem estruturadas, se traduz tanto no aumento da
produtividade do processo interativo [Bail83] quanto na satisfação do usuário e na facilidade de
exploração do potencial global do sistema [Neel90].
A satisfação do usuário, por sua vez, associada à idéia de quão aprazível seja o uso do
sistema [Niel93c], se encontra fortemente atrelada à sua concepção e à avaliação da natureza da
aplicação, bem como da interface de comunicação usuário-aplicação; em suma, está intimamente
ligada à natureza do produto considerado. Assim, atributos de um produto que contribuem para a
satisfação do usuário são um misto de requisitos funcionais (ausência ou presença de funções de
Considerações sobre Qualidade e Usabilidade de Software
40
seu interesse) e não-funcionais (qualidade), assim como das limitações do produto (i.e., fatores
determinantes de sua aplicabilidade) [Ride91, Kitc96, Kust97]. A distinção entre requisitos
funcionais e não-funcionais também é expressa por outros pesquisadores da área, dentre os quais
vale a pena mencionar Boehm et al. [Boeh78], Cavano e McCall [Cava78], Deutsch e Willis
[Deut87], Bemelmans [Beme91] e Delen e Rijsenbrij [Dele92]. Além do mais, o nível de confiança e
satisfação do usuário relativo ao uso de um produto depende da atenção dada à maturidade de tal
produto, bem como da organização que o desenvolveu, tanto de uma perspectiva externa quanto
do ponto de vista dos processos internos de desenvolvimento [Curt93].
Cyert e March ([Cyer63], in Bailey [Bail83]) argumentaram que o quotidiano de um usuário
de sistemas computacionais impunha uma necessidade de informação que poderia ser atendida ou
frustrada conforme as características apresentadas pelo produto em uso. Dez anos depois, Powers
e Dickens [Powe73] concluíram, em seu artigo, que o sucesso ou o fracasso de um produto de
software e, por conseguinte, do uso de um sistema computacional, era ditado sobretudo pela
satisfação do usuário. Swanson [Swan74] determinou uma estreita correlação entre a apreciação
dos usuários por um produto e a eficiência dos resultados desse produto.
Lucas [Luca75] mostrou uma relação intima entre o desempenho econômico de uma
equipe de vendas e o sistema de informação por esta usado. Evans ([Evan76] in [Bail83]) sugeriu a
existência de um limite abaixo do qual o usuário evitaria qualquer tipo de interação com o sistema,
buscando outras estratégias alternativas de aquisição da informação de interesse. Newman e
Segev [Newm80] estudaram o grau de correlação existente entre a reação dos usuários de uma
filial bancária a aspectos relativos à satisfação e seu desempenho na organização. Penniman e
Dominick [Penn80] sumariaram em um quadro de estudos de coleta de informações para avaliação
da atitude e comportamento do usuário de sistemas de informação, relacionando estratégias
adotadas, trabalhos associados e comentários pertinentes sobre cada estratégia analisada.
Em suma, apesar de nos últimos vinte anos diversos pesquisadores terem investigado a
influência da satisfação do usuário na qualidade de produtos interativos, o que se apreende numa
leitura revisiva da área é que, na maioria dos casos, não existe um estimador de satisfação que
abranja todos os aspectos subjetivos envolvidos pelo contexto, embora se constate em todos eles
que o grau de satisfação com relação a um determinado produto apresenta, de algum modo, uma
correlação com o sucesso do processo interativo. A visão do usuário, além de relacionar a
qualidade de um produto à confiabilidade por ele apresentada, vincula a conotação do termo à
usabilidade do produto, sobretudo no que diz respeito à facilidade de instalação, de aprendizado e
de uso [Kitc96].
Numa perspectiva de usabilidade, há duas categorias possíveis de estratégias de estudo
da relação qualidade de software x satisfação do usuário: (i) indiretas, que não estudam
propriamente o produto e, por conseguinte, sua interface de usuário, mas apenas as opiniões
globais de um universo amostral de usuários sobre o produto em questão; e (ii) diretas, que visam
avaliar a satisfação do usuário mediante a seleção de atributos adequados ao contexto [Niel93c].
O desenvolvimento de software e o projeto de interfaces de usuário, assim como sua
supervisão e avaliação, em termos de qualidade, se inserem em um domínio mais abrangente, em
que projetos e produtos compartilham de características comuns, compondo famílias, atualizadas
numa progressão de versões ao longo do tempo. Decisões de projeto tomadas para versões
Considerações sobre Qualidade e Usabilidade de Software
41
anteriores provocam efeitos residuais em versões subseqüentes, assim como na concepção de
novos produtos derivados. É nesse contexto que se insere uma área cujo ciclo de vida22 se estende
além do ciclo de vida de qualquer produto, visto que o impacto de suas decisões se projeta na
produção futura e nos ciclos de vida dos produtos subseqüentes: a Engenharia da Usabilidade
[Niel92a].
2.2 Engenharia, Engenharia de Software e Engenharia da
Usabilidade
Antes de chegar ao cerne do assunto tratado ao longo deste capítulo, cujos propósitos
fundamentais são a discussão da relevância da usabilidade como atributo associado à qualidade
de software, vale a pena tentar esclarecer um ponto de vista deixado em aberto no capítulo
introdutório deste documento – a adequação e a pertinência do uso dos termos engenharia de
software e engenharia da usabilidade.
Sem a pretensão de ser original nem de esgotar a discussão dos termos, que per si já
constituem temas polêmicos de discussão (às vezes, acirrada) entre os puristas, esta seção
deverá ser encarada apenas como um exercício de raciocínio, pertinente ao contexto no qual se
insere o tema desta pesquisa, onde se busca apenas esclarecer as conotações em que os termos
em questão são empregados neste documento.
2.2.1 Engenharia
Segundo Leite [Leit99], a construção de um artefato pode ocorrer artesanalmente, a
partir de processos de tentativa-e-erro, através dos quais se manipula diretamente a
matéria-prima com a qual o produto será gerado. Leite [Leit99] acrescenta que os
processos de construção artesanal podem evoluir, à medida que incorporam ferramentas
específicas e técnicas concebidas e validadas em experiências precedentes.
Tendo em vista que o ato de avaliar é inerente aos seres humanos, conforme
discutido no capítulo anterior, a inspeção e identificação de erros e/ou falhas e a
verificação da adequação do funcionamento e da utilidade do artefato ocorrerão cedo
(durante o desenvolvimento) ou tarde (após o desenvolvimento). A incorporação de
ferramentas e técnicas ao desenvolvimento de artefatos facilita o acompanhamento e a
análise do processo e, usualmente, conduz a reflexões sobre a atividade anterior: o projeto
do artefato. A integração da atividade de projeto ao desenvolvimento de artefatos implica
outra etapa de evolução do processo, pois possibilita a visualização do artefato antes
mesmo de sua existência enquanto produto, permitindo estender o raio de ação das
atividades avaliatórias.
Além disto, os artefatos são desenvolvidos, via de regra, mediante o surgimento de
necessidades. Por sua vez, a satisfação de necessidades implica o preenchimento de
requisitos. Assim, a incorporação da atividade de projeto ao desenvolvimento de artefatos
normalmente aponta para a necessidade de inclusão de outra atividade: a análise de
22 Segundo o padrão 100-1988 do IEEE, o termo refere-se ao período compreendido desde a concepção de um produto
até sua retirada do mercado consumidor.
Considerações sobre Qualidade e Usabilidade de Software
42
requisitos. Esta atividade deve anteceder o projeto e o desenvolvimento do artefato, a fim
de que os objetivos almejados sejam atingidos.
Evidentemente, a evolução do processo de construção de artefatos, traduzida pela
incorporação e ordenação de várias atividades, fatalmente atinge um grau de complexidade que
suscita a proposição de modelos do processo, através dos quais se pode descrever
adequadamente o momento em que cada atividade (análise, especificação, projeto,
implementação e avaliação) deverá ser executada. A modelagem do processo estabelece
procedimentos metodológicos que descrevem detalhadamente o modo como cada atividade será
realizada.
A evolução citada também requer a especialização dos executores de cada atividade
pertinente ao seu contexto, exigindo-lhes o conhecimento de um conjunto de princípios e modelos
teóricos para o desempenho adequado de suas atribuições. Especialistas em diferentes atividades
devem ser agrupados em equipes, lideradas por um gerente, o que exige a análise da estruturação
e das estratégias de gestão das atividades relativas ao processo.
Como cada indivíduo representa um papel no modelo de desenvolvimento adotado,
também surge a necessidade da divisão coerente das atribuições conferidas a cada um
deles ao longo do tempo, ou seja, é necessário o planejamento das tarefas a serem
executadas em cada etapa do processo de construção de artefatos. Tendo em vista que
todas estas atividades demandarão recursos humanos, físicos, materiais e econômicos, o
planejamento deverá incorporar orçamentos de custos, assim como estimativas de prazos
para a execução de cada uma das etapas do processo. Afinal de contas, o cliente sem
dúvida exigirá uma previsão ou mesmo estipulará um prazo para a entrega do artefato
encomendado. Mais uma vez entram em cena os gerentes do processo, a fim de que os
recursos sejam bem empregados e os prazos cumpridos.
Quando o desenvolvimento de um artefato incorpora as atividades de análise,
projeto, implementação e avaliação, regidas por princípios, modelos, técnicas, ferramentas e
métodos específicos e realizadas por equipes de especialistas de acordo com um
planejamento que inclui a gestão de orçamentos de custos e estimativas de prazos em
todas as etapas do desenvolvimento, pode-se caracterizá-lo como uma engenharia [Leit99].
Vale a pena mencionar que o termo engenharia deriva-se do latim ingenerare, que
significa “conceber, planejar, criar, construir”, por sua vez derivado da palavra ingenium,
que significa “talento, inteligência”, mas também “artefato”.
Segundo o Engineers Council for Professional Development 23 dos EUA, engenharia é a
aplicação criativa de princípios científicos (i) no projeto e desenvolvimento de estruturas, máquinas,
equipamentos, processos de manufatura ou produtos que os utilize separada ou conjuntamente; ou
(ii) na construção ou operação dos mesmos com pleno conhecimento de seu projeto; ou (iii) na
previsão de comportamento dos mesmos sob condições específicas de operação, em qualquer um
dos casos com uma função planejada, visando economia na operação e segurança para a vida e a
propriedade [EB99].
23 Conselho de Engenheiros para o Desenvolvimento Profissional.
Considerações sobre Qualidade e Usabilidade de Software
43
2.2.2 Engenharia de Software
Resta então refletir sobre os processos correntes de desenvolvimento de software
se enquadram ou não, parcial ou totalmente, nesta definição, o que respaldaria o uso do
termo engenharia de software. Obviamente se questionará a maturidade de tais processos
e, implicitamente, os princípios, métodos e modelos teóricos nos quais se fundamentam.
Todavia, é importante não esquecer que vários ramos da engenharia também já estiveram
no nível em que se encontra atualmente a área de desenvolvimento de artefatos de
software, sem contudo deixarem de ser considerados engenharias.
Baber [Babe97] afirma que o desenvolvimento de software atual se encontra, em
muitos aspectos, em uma fase de pré-engenharia, análoga àquela pela qual passaram
outros ramos da engenharia tradicional. O autor comenta que na segunda metade do
século XIX o campo de tecnologia elétrica, em particular a telegrafia e a telefonia,
apresentava problemas análogos àqueles registrados nos processos de desenvolvimento de
software passados e atuais, acrescentando que falhas consideráveis também já foram lugar
comum em muitas outras áreas da engenharia tradicional, e.g., desmoronamento de pontes
sob o peso de locomotivas e afundamento de navios por conta da instabilidade dos
projetos de seus cascos.
No tocante à telegrafia e telefonia antes e durante a virada do século XIX, Baber
[Babe97] comenta que vários fenômenos ainda confundiam os projetistas e limitavam os
avanços da Engenharia Elétrica, aos quais se somavam perdas econômicas consideráveis,
por conta da compreensão ainda insuficiente de diversos aspectos técnicos relevantes dos
sistemas em questão, e.g., a destruição do primeiro cabo transatlântico satisfatoriamente
instalado, em 1858; a condução de experimentos onerosos, freqüentemente com resultados
inconclusivos, em tentativas para entender fenômenos como o efeito das variações de
velocidades de transmissão em circuitos telegráficos bidirecionais e a distorção de sinais de
voz em linhas de transmissão.
Baber [Babe97] ainda menciona as iniciativas teóricas de Oliver Heaviside, que
solucionou muitos destes problemas através de análises e do uso de lápis e papel, vários
anos antes de suas soluções terem sido aceitas e postas em prática pelos “homens da
prática”, aos olhos dos quais teorias eram consideradas inúteis e, até mesmo, absurdas.
Uma delas foi a teoria de Maxwell, que postulava a auto-propagação das ondas
eletromagnéticas, questionada como algo que ninguém jamais observara e, evidentemente,
jamais observaria, imagine pensar em fazer uso prático dela! Alguns anos mais tarde,
Hertz observaria tal fenômeno, fundamentado por considerações teóricas que lhe nortearam
no tocante ao que e como investigar. Alguns décadas depois, estas ondas estariam sendo
empregadas em comunicações transatlânticas comercialmente viáveis.
A discussão de Baber apenas evidencia a constatação (intuitiva) de que os fatores
essenciais responsáveis pela diferença significativa existente entre a precisão dos processos
de projeto de ontem e de hoje nos ramos tradicionais da engenharia são (i) a
fundamentação científica e matemática sedimentada ao longo de décadas, (ii) a aplicação
regular e “natural” desses fundamentos no dia-a-dia e (iii) a capacidade de previsão que
Considerações sobre Qualidade e Usabilidade de Software
44
incrementa atualmente a facilidade de descrição dos modelos segundo os quais os
artefatos são construídos.
No caso das engenharias civil e mecânica, a fundamentação científica e matemática
anteriormente mencionada é fornecida pelas leis de Newton, enquanto que as leis de Maxwell
fundamentam a engenharia elétrica). Baber [Babe97] argumenta que uma fundamentação análoga
para o desenvolvimento de software pode ser encontrada nos estudos de Floyd, Hoare, Dijkstra e
outros, embora não tenha ainda um uso amplamente difundido na prática, tendo em vista que esta
área do conhecimento ainda vive seus dias de “pré-engenharia”, embora usando explicitamente
como modelo práticas atuais da engenharia tradicional.
Neste ponto, são acrescentadas algumas definições de autores da área e instituições
responsáveis pela padronização de software, com o propósito de enriquecer a reflexão sobre o
assunto. Bauer [Baue72] define engenharia de software como o estabelecimento e uso de
princípios consagrados de engenharia para a produção economicamente viável de software de
qualidade que funcione em máquinas reais.
Na concepção de Fairley [Fair85], engenharia de software é um ramo tecnológico e
gerencial do conhecimento concernente à produção e manutenção sistemática de produtos de
software que são progressivamente desenvolvidos e modificados, dentro de estimativas de prazos
e custos.
Macro e Buxton [Macr87] referem-se à engenharia de software como o estabelecimento e
uso de princípios consagrados de engenharia e de práticas de gestão apropriadas, associados à
evolução de ferramentas e métodos aplicáveis e ao uso apropriado dessas ferramentas para a
obtenção de produtos de software de alta qualidade - no sentido mais explícito, dentro de
limitações de recursos conhecidas e adequadas.
O IEEE Standard Computer Dictionary: A Compilation of IEEE Standard Computer
Glossaries [IEEE90a] e o padrão IEEE 10.12–1990 [IEEE90b] definem igualmente o termo
engenharia de software como: (1) a aplicação de uma abordagem sistemática, disciplinada
e quantificável no desenvolvimento, operação e manutenção de produtos de software, isto
é, a aplicação da engenharia ao software; e (2) o estudo de abordagens como aquelas
definidas em (1).
O SEI Report on Undergraduate Software Engineering Education de 1990 [Ford90]
diz que enquanto a engenharia é a aplicação sistemática do conhecimento científico para a
criação e construção de soluções econômicas para problemas práticos da humanidade, a
engenharia de software é o ramo da engenharia que aplica os princípios da ciência da
computação e da matemática para obter soluções economicamente viáveis para problemas
de software.
Engenharia de software é definida na Webopedia [Web00] como o ramo da ciência
da computação concernente ao desenvolvimento de aplicações complexas, abrangendo não
só os aspectos técnicos de implementação, mas também questões de gestão, tais como a
supervisão de equipes de programação, o planejamento e o orçamento de sistemas de
software.
Considerações sobre Qualidade e Usabilidade de Software
45
No tocante aos livros de Engenharia de Software, embora tendam a não
apresentarem definições, dedicam seus capítulos introdutórios à explanação de
características da área, com comentários que sugerem esboços de definições. Pfleeger
[Pfle91] comenta que a engenharia de software lida com o projeto e desenvolvimento de
produtos de software de alta qualidade, sendo responsável pela aplicação de técnicas da
ciência da computação na solução de uma ampla variedade de problemas.
Schach [Scha93], por outro lado, afirma que a engenharia de software é uma área
cujo objetivo é a produção de software de qualidade com prazos e orçamentos pré-
definidos que satisfaça às necessidades dos usuários.
Segundo Sommerville [Somm97] engenharia de software trata da especificação, do
desenvolvimento, da gestão e da evolução de sistemas de software, elaborando teorias e
concebendo métodos e ferramentas aplicáveis ao desenvolvimento de produtos de software.
O autor acrescenta que embora não lidando com materiais regidos por leis físicas ou
processos de manufatura, como outros ramos da engenharia, a engenharia de software se
insere no contexto da engenharia por lidar com o desenvolvimento de modelos do mundo
real.
Gisselquist [Giss98] afirma que desenvolvimento de software é engenharia,
estabelecendo um rápido, mas não menos interessante, paralelo entre as atividades de
gestão, projeto e implementação de produtos nas áreas de desenvolvimento de software e
de edificações.
Enfim, Mayhew [Mayh99] define engenharia de software como um ramo da
engenharia relativo ao desenvolvimento de software que envolve a definição de requisitos
das aplicações, o estabelecimento de metas e atividades de projeto e avaliação em ciclos
iterativos até que as metas tenham sido atingidas.
2.2.3 Engenharia da Usabilidade
No contexto mais abrangente dos processos de desenvolvimento de produtos, não
apenas de software, mas de naturezas as mais diversas, a importância crescente do fator
qualidade nas iniciativas de quantificação tanto do processo quanto do produto tem
estimulado a emergência de um novo campo de estudo, referido na literatura de língua
inglesa como quality engineering (engenharia da qualidade). Em nível da qualidade de
software, a usabilidade tem se tornado uma necessidade competitiva para o sucesso
comercial dos produtos de software, além de vir sendo incorporado cada vez mais
efetivamente nos processos de desenvolvimento, com o propósito de otimizar os produtos
através da otimização dos processos através dos quais são desenvolvidos [Butl96a].
Uma década e meia de amadurecimento e sistematização do estudo da usabilidade
como atributo decisivo para a aceitação de produtos pelo mercado consumidor resultou no
surgimento de uma nova área de investigação, que busca direcionar o processo de
desenvolvimento de software para a usabilidade dos produtos finais, tanto em nível do
processo quanto do produto gerado: a engenharia da usabilidade.
Considerações sobre Qualidade e Usabilidade de Software
46
Os estudos de Gilb [Gilb84], Shackel [Shac84], Bennett [Benn84, Benn86], Carroll e
Rosson [Carr85a] e Butler [Butl85] apresentam uma abordagem de usabilidade unificada,
posteriormente denominada engenharia da usabilidade por Good et al. [Good86], que a definiram
como um processo fundamentado na engenharia clássica relativo à especificação, quantitativa e
antecipadamente, de quais as características e em que proporções produtos a serem
desenvolvidos deverão apresentar. Segundo Good et al. [Good86], sem tal especificação não há
outro modo de determinar as necessidades de usabilidade de um produto ou de verificar
(qualitativa e quantitativa) se tal produto satisfaz ou não tais necessidades.
A partir desta definição, Good et al. [Good86] deixam explícito que a engenharia da
usabilidade é uma abordagem empregada no desenvolvimento de software através da qual a
usabilidade de um produto é especificada em termos quantitativos e esta especificação antecede o
processo de desenvolvimento do produto. Esta definição também sugere a definição de metas
mensuráveis de usabilidade, sem as quais não é possível para o projetista ou o avaliador verificar
se o produto final atingiu um grau aceitável de usabilidade (caso atinja as metas pré-fixadas). Hix e
Hartson [Hix93] são consonantes com esta definição.
Tyldesley [Tyld88] define engenharia da usabilidade como um processo através do qual a
usabilidade de um produto é especificada quantitativamente, permitindo que se demonstre se um
produto final atinge ou não os níveis exigidos de usabilidade. Este processo inclui medidas
objetivas do processo interativo, definições de modelos de sistemas, do usuário e das interfaces,
bem como as interrelações destas entidades, técnicas de projeto cooperativo, técnicas de projeto
de interfaces gráficas (GUI), desenvolvimento de diretrizes de projeto, guias de estilo e padrões e
atividades de prototipagem [Butl96a].
Butler [Butl96a] comenta que Bennett [Benn84] foi um dos primeiros pesquisadores a
empregar o termo usability engineering, em meados da década de 80, acrescentando que, após
uma década e meia de estudos, a engenharia da usabilidade é área técnica que se dedica ao
estudo de aspectos referentes ao desenvolvimento de interfaces usuário-computador. Nos, dias
atuais, afirma Butler [Butl96a], o processo de desenvolvimento de interfaces é compreendido mais
facilmente, apre(e)ndido mais rapidamente e conduzido mais confiavelmente.
Para Lecerof e Paternò [Lece98], engenharia da usabilidade é uma área no domínio da
interação usuário-computador24 cuja meta fundamental é o desenvolvimento de sistemas usáveis a
partir da aplicação, de forma estruturada e sistemática, de diferentes métodos nos diferentes
estágios do projeto e do processo de desenvolvimento, assim como da integração de iniciativas de
avaliação da usabilidade desde os estágios iniciais do projeto.
Conforme Mayhew [Mayh99], engenharia da usabilidade é um processo através do qual
são aplicados métodos estruturados no projeto de interfaces usuário-computador visando a
usabilidade do produto final.
Como se pôde observar nestes últimos parágrafos, há cerca de quinze anos,
software “amigável" era, grosso modo, qualquer aplicação que interagisse com o usuário
através de uma interface de menu ou que fosse dotada de facilidades de recuperação de
24 Human-Computer Interaction (HCI).
Considerações sobre Qualidade e Usabilidade de Software
47
erros. Nos dias atuais, a engenharia da usabilidade é uma área do conhecimento na qual
os pesquisadores e desenvolvedores procuram desenvolver e implementar técnicas que
sistematicamente tornem os produtos de software mais usáveis, otimizando o produto
através da otimização do processo.
Em resumo, além de um exercício de reflexão, esta seção teve o propósito de
apresentar diferentes definições encontradas na literatura da área para os termos
engenharia de software e engenharia da usabilidade, além de procurar esclarecer com que
conotação estes termos são empregados ao longo de todo o documento. Após ter
discutido diferentes conotações do termo usabilidade no capítulo introdutório e de ter
mencionado, nas duas últimas seções, a usabilidade como um critério relevante de
mensuração da qualidade dos produtos de software, torna-se conveniente aprofundar a
discussão da importância da usabilidade na aceitação de produtos pelos consumidores,
apresentando modelos concebidos nos últimos quinze anos para a mensuração da
usabilidade de produtos.
2.3 Usabilidade de Software
Os desenvolvedores de tecnologias bem consolidadas, tais como serviços postais, telefones e
televisão alcançaram a meta da usabilidade universal [Shne00]. No entanto, a tecnologia
computacional ainda é muito difícil de usar (ou quase inacessível) para muitos indivíduos [Shne98].
Shneiderman [Shne00] cita que em uma pesquisa realizada em um universo amostral de 6.000
usuários de sistemas computacionais verificou-se uma média 5,1 horas por semana despendidas
na tentativa de usar computadores, concluindo que se passa mais tempo diante de sistemas
computacionais do que ao volante de um automóvel.
Atualmente, as interfaces usuário-computador são entidades muito mais significativas
do que costumavam ser há pouco mais de duas décadas, graças à revolução dos
computadores pessoais e a redução dos custos do hardware que, de um modo geral, vêm
tornando os sistemas computacionais mais acessíveis a um número cada vez maior de
usuários de áreas de concentração as mais variadas [Hart90, Niel93c, Mand97, Hack98].
Apesar disto, segundo Shneiderman [Shne00], a frustração e a ansiedade dos usuários de
sistemas computacionais continua crescendo, enquanto o número de não usuários ainda
permanece elevado. O autor acrescenta que embora o barateamento dos custos do
hardware, do software e das redes computacionais prometa fazer muitos novos usuários, a
otimização do projeto da interface e do processamento da informação são cruciais para
que se atinja graus mais elevados de sucesso.
A diversificação do universo usuário, que implica, sem dúvida, a multiplicidade das
tarefas executadas com o auxílio de sistemas de informação automatizados, vem se aliar
aos progressos alcançados pela ergonomia e pela engenharia da usabilidade, bem como a
oferta de uma diversidade cada vez maior de ferramentas de desenvolvimento e validação
de projetos de interfaces. Tais fatores vêm alterando cada vez mais profundamente os
rumos da especificação e implementação de interfaces [Laws78] e, por extensão, os
alicerces que fundamentam as estratégias avaliatórias destas entidades [Niel89a, Niel89b,
Niel90, Kara92, Niel93c, Niel94a, Dix98].
Considerações sobre Qualidade e Usabilidade de Software
48
Ao longo das duas últimas décadas, a usabilidade vem sendo cada vez mais considerada
como fator [McCa77], característica [ISO92] ou critério [Terv96] de qualidade de software. Como se
pôde observar na sub-seção 2.1.1, a usabilidade figura como uma das componentes de cada
modelo de qualidade de software apresentado (SQM, ISO9126 e GRCM), por sua vez associada a
conjuntos de atributos através dos quais pode ser mensurada. Vale a pena revisitar as Figs. 3, 4 e
5 e observar o Quadro 7, que sintetiza os atributos da usabilidade de software considerados nos
modelos de McCall et al. [McCa77], ISO9126 [ISO92] e Tervonen [Terv96].
Quadro 7 – Comparação dos atributos de usabilidade considerados
no SQM [McCa77], ISO9126 [ISO92] e GRCM [Terv96].
ATRIBUTO DE USABILIDADE SQM
[McCa77] ISO9126 [ISO92]
GRCM [Terv96]
FACILIDADE DE OPERAÇÃO
(Operability) CAPACIDADE DE TREINAMENTO
(Training) FACILIDADE DE COMUNICAÇÃO
(Communicativeness) COMPREENSIBILIDADE
(Comprehensibility) FACILIDADE DE APRENDIZADO
(Learnability) FACILIDADE DE USO
(Ease of Use) APLICABILIDADE
(Usefulness) CONFORMIDADE
(Conformance)
Uma análise do Quadro 7 mostra que dos oito atributos de usabilidade considerados nos
modelos apresentados na sub-seção 2.1.1 apenas um é compartilhado, a facilidade de operação
(operability). A facilidade de aprendizado (learnability) aparece em segundo lugar, em termos de
atributos compartilhados, já que figura apenas nos modelos do ISO9126 [ISO92] e GRCM [Terv96].
Os demais atributos de usabilidade figuram em apenas um dos modelos analisados. Quanto aos
pares de atributos (i) capacidade de treinamento (training) e facilidade de aprendizado
(learnability) e (ii) facilidade de operação (operability) e facilidade de uso (ease of use), estes
apresentam similaridades entre si, apesar de não serem exatamente equivalentes.
Independentemente de quais atributos tenham sido associados à usabilidade nos modelos
de qualidade desenvolvidos até então e da indicação (ou da ausência dela) fornecida por seus
conceptores de como mensurar a usabilidade a partir desses atributos, tanto Foley e Van Dam
[Fole82] quanto Sulaiman [Sula96] ressaltam que a importância da usabilidade de diversas
categorias de sistemas se equipara à funcionalidade deles exigida. Percebe-se, de fato, que nos
últimos vinte anos tem-se tentado encorajar os desenvolvedores de software a focalizarem a
usabilidade de seus produtos tanto quanto se focaliza a funcionalidade ao longo de todo o ciclo de
vida de desenvolvimento.
Considerações sobre Qualidade e Usabilidade de Software
49
Há 14 anos, Goodwin [Good87] já argumentava que embora usabilidade não fosse
um conceito fácil, investir na usabilidade de produtos se afigurava tão importante quanto
investir em sua funcionalidade, reforçando que um sistema pouco usável custaria aos
usuários, na melhor das hipóteses, o dispêndio de tempo e esforço, enquanto na pior das
hipóteses simplesmente não seria usado, visto que a utilidade de suas funções não fora
demonstrada. Passada uma década, Sulaiman [Sula96] afirmou que as tentativas de
encorajamento haviam tido apenas um sucesso limitado, tendo em vista só haverem
atingido algumas companhias, sem alterar fundamentalmente o processo de
desenvolvimento de software como um todo.
Karat [Kara98] acrescenta que o perfil dos usuários de sistemas de hardware e
software tem mudado, enquanto os sistemas e a cultura de desenvolvimento não tem feito
as adaptações necessárias para atender a essas mudanças. Enquanto há uma década
apenas especialistas técnicos desenvolviam sistemas para uso próprio ou de outros
especialistas técnicos, hoje em dia tais sistemas são ferramentas praticamente onipresentes,
desenvolvidas para um segmento crescente de usuários principiantes. Esse contingente de
usuários dotados de habilidades e competências em domínios específicos e diversos
apresenta pouco ou nenhum interesse em como a tecnologia computacional funciona,
desejando apenas ferramentas confiáveis e fáceis de usar, que lhes auxiliem no trabalho
diário.
Sobre essas mudanças, Dray [Dray00] chama a atenção para quatro categorias
abrangentes de efeitos: (i) efeitos de crescimento da internacionalização da tecnologia; (ii) efeitos
da integração crescente da tecnologia; (iii) efeitos demográficos de uso da tecnologia; e (iv) efeitos
das mudanças na definição e “posse” do projeto de interfaces de usuário em organizações.
Na verdade, a importância da avaliação da usabilidade de produtos tem sido reconhecida e
registrada na literatura da área desde o início dos anos 70 [Mart73, Mill81, Shac90]. A pesquisa
sobre a mensuração da usabilidade não só tem contribuído para a elucidação de aspectos relativos
à usabilidade [Ride91, Niel94a], como também para a ampliação do grau de conscientização da
necessidade de sua integração ao ciclo de vida de desenvolvimento [Kara94b, Sula96, Mand97,
Henr98, Mayh99]. Um dos indicadores dessa tomada de consciência é o aumento dos
investimentos de muitas companhias de desenvolvimento de software em ambientes destinados à
avaliação da usabilidade de produtos, equipados com os mais modernos recursos para coleta e
análise de dados. Há também a elevação dos investimentos na formação de equipes
multidisciplinares de avaliação [Ehrl94b, Duma94, Levi96a]. Tais iniciativas também denotam, uma
tomada de consciência do fato de que, embora os ensaios de usabilidade não abranjam todos os
padrões de uso potencial e funcionalidades do produto analisado, as metas da engenharia da
usabilidade dirigem os esforços da equipe de projeto para o usuário e possibilitam a avaliação do
trabalho realizado durante o desenvolvimento do produto [Ride91].
O Quadro 8 apresenta alguns aspectos relativos a organizações que implantaram
programas de usabilidade no ciclo de desenvolvimento de seus produtos. Trata-se de uma
síntese dos estudos de Madsen [Mads99] e Borgholm e Madsen [Borg99], envolvendo
seis companhias, três americanas e três dinamarquesas, que adotaram práticas de
usabilidade no ciclo de desenvolvimento de seus produtos.
Considerações sobre Qualidade e Usabilidade de Software
51
Em contrapartida, o reconhecimento da importância da engenharia da usabilidade
pela maioria das organizações ainda não é bem definido, visto que muitas dessas
organizações ainda não conseguem mensurar, em termos financeiros, os benefícios
econômicos advindos da adoção de procedimentos e ensaios de usabilidade como
atividades diárias. Este quadro ainda é reforçado pelas dificuldades encontradas por muitos
profissionais como avaliadores de usabilidade para justificar, com argumentos concretos, os
custos conseqüentes de procedimentos que adotam [Kara93, Mayh94]. Acrescente-se a isto
o fato de que, mesmo reconhecendo a necessidade e a importância das práticas de
projeto centradas no usuário e dos programas de usabilidade adotados pelas grandes e
médias corporações de desenvolvimento de software, as pequenas organizações ainda
encaram tais estratégias como proibitivas, o que lhes impede a inclusão de ensaios de
usabilidade no ciclo de desenvolvimento de seus produtos [Rowl94, Brow98].
Neste sentido, diversos pesquisadores (e.g., Aykin [Ayki94], Cox et al. [Cox94],
Ehrlich e Rohn [Ehrl94b], Mayhew [Mayh94, Mayh99], têm demonstrado que os benefícios
advindos das estratégias de usabilidade por eles concebidas são compensadores face aos
custos associados. Karat [Kara93] descreveu procedimentos de análise de dados de dois
projetos, à luz de uma técnica simples de engenharia da usabilidade, que considera o
compromisso custos-benefícios. Nielsen [Niel93c] analisou aspectos envolvidos na
determinação de custos e benefícios, mostrando que a aplicação da engenharia da
usabilidade, em nível empresarial, constitui um bom empreendimento econômico. Rowley
[Rowl94] descreveu uma estratégia de planejamento de ensaios de usabilidade no campo
(in situ), aplicáveis por equipes de desenvolvimento de produtos de software a grupos
consumidores potenciais separados por grandes distâncias do ambiente de desenvolvimento
do produto.
Vários autores (e.g., Nielsen [Niel93b], Beyer e Holtzblatt [Beye94], Brun-Cottan
[Brun95], Dumais [Duma95], Stanney et al. [Stan97a], Henry [Henr98], Mayhew [Mayh99])
têm sugerido ações que traduzem esforços mais simples de condução de projetos
centrados no usuário e, por conseguinte, direcionados para a usabilidade do produto.
Dentre as ações mais simples desta natureza, podem ser citadas: (i) diálogos com
indivíduos da futura comunidade usuária de um sistema de informação computadorizado; (ii)
visitas aos ambientes de trabalho de usuários potenciais e observação/enumeração de
quais as atividades que desenvolvem no cotidiano e de como as realizam; (iii) identificação
de quais os principais problemas que os usuários potenciais enfrentam e como os
solucionam; e (iv) interação mais efetiva com comunidades de usuários potenciais visando
a sondagem de soluções mais adequadas de informatização das ferramentas que utilizam
em tarefas cotidianas.
Esta é a visão da usabilidade como abordagem de projeto. O processo de
desenvolvimento voltado para a usabilidade do produto é indispensável em abordagens de
projeto centrado no usuário ou projeto participativo, pois insere o usuário no contexto do
processo e atenua sua resistência a mudanças tecnológicas que venham a ocorrer em seu
ambiente de trabalho, familiarizando-o progressivamente com o produto desde a etapa de
análise dos requisitos. A principal limitação das abordagens centradas no usuário
reside na escolha de indivíduos representativos da comunidade usuária envolvida no
Considerações sobre Qualidade e Usabilidade de Software
52
contexto do projeto, já que não é possível recrutar toda a comunidade. Deste
modo, do ponto de vista da maioria dos usuários, o processo de desenvolvimento da
interface é desconhecido, não influenciando portanto a formação de sua opinião sobre o
produto.
Conforme mencionado no capítulo inicial deste documento, a usabilidade é
multifacetada, podendo ser associada a diferentes atributos por indivíduos diferentes,
conforme se pôde constatar anteriormente através do estudo dos modelos de qualidade
apresentados. A usabilidade também pode ser encarada como abordagem de
projeto, atributo de um produto ou medida [Kein99]. Estas três visões apresentam
pontos em comum, como ocorre com as regiões de encontro das faces de um
poliedro.
Segundo Keinonen [Kein99], muitas organizações vêm passando cada vez mais a
encarar a usabilidade por como parte integrante do processo de desenvolvimento de
produtos, ao invés de conceber as atividades de avaliação como algo à parte, conduzido
por um departamento responsável pela inspeção dos produtos projetados e
implementados.
Tal postura tem facilitado a adoção de estratégias de avaliação fáceis de aplicar
desde as etapas iniciais do processo de desenvolvimento e capazes de produzir resultados
satisfatórios a partir dos recursos disponíveis (e.g., Discount usability engineering de
Nielsen [Niel95], Do-it-yourself usability evaluation de Botman [Botm96], Quick and dirty de
Thomas [Thom96]). Estas são estratégias que se adequam bem à abordagem integrada de
projetos, familiar aos projetistas industriais.
A visão da usabilidade como atributo de um produto está associada à
exemplificação de propriedades ou características de sistemas ou produtos intimamente
relacionadas com sua usabilidade. Tal visão é usualmente explicitada sob a forma de (i)
diretrizes de projeto25
; (ii) guias de estilo26
; (iii) padrões27
; e (iv) listas de princípios de
usabilidade28
. Documentos desta natureza são úteis tanto para propósitos de projeto quanto
de avaliação, pois apresentam recomendações, definições, diretivas ou normas de
propriedades de interfaces em nível genérico ou específico, aplicáveis a diferentes tipos de
produtos e contextos de uso. Sua utilização em nível da avaliação de interfaces usuário-
computador será explorada mais adiante, no próximo capítulo.
25 E.g., Shneiderman [Shne79, Shne82, Shne84, Shne87], Galitz [Gali85], Smith e Mosier [Smit86b], Dzida [Dzid89],
Grudin [Grud89, Grud90, Grud91], Mitchell e Shneiderman [Mitc89], Norcio e Stanley [Norc89], Nickerson e Pew
[Nick90], Tognazzini [Togn90], Jeffries et al. [Jeff91], Tetzlaff e Schwartz [Tetz91], Karat et al. [Kara92], Mayhew
[Mayh92], Gillan [Gill93], Gray [Gray93], Queiroz [Quei94], Cohen [Cohe95a], Cohen et al. [Cohe95b], Crow [Crow95],
Dilli e Hoffman [Dill95], Gorny [Gorn95], Iannella [lann95], Ogawa e Ueno [Ogaw95], Vanderdonckt [Vand95].
26 IBM [IBM91a, IBM91b], Apple [Appl92, Appl97], Microsoft [Micr95], Sun Microsystems [Sun99].
27 ISO [ISO97a, ISO97b, ISO98, ISO99].
28 Nielsen [Niel93b, Niel94a], Johnson [John96b].
Considerações sobre Qualidade e Usabilidade de Software
53
Do ponto de vista do usuário, as únicas conseqüências cruciais desses princípios
são as características implementadas do produto. Obviamente os produtos adquiridos são
avaliados em termos das características apresentadas por suas interfaces, confirmando as
opiniões de Hix e Hartson [Hix93] (a interface é, para os usuários, “o sistema”) e Hackos
e Redish [Hack98] (a interface é o que os usuários vêem ao usar o produto e o meio
através do qual se comunicam com o produto ao usá-lo). Do ponto de vista do projetista
e/ou avaliador, as diretrizes de projeto, os guias de estilo, os padrões (corporativos,
nacionais ou internacionais) e as heurísticas são instrumentos eminentemente analíticos,
que objetivam em primeiro plano servir de respaldo às atividades de projeto ou de
inspeção da usabilidade de produtos.
O terceiro modo de enfocar a usabilidade – como medida - diz respeito à
mensuração do processo interativo homem-máquina como estratégia destinada à otimização
do processo de desenvolvimento ou do produto. Esta é a faceta visualizada na pesquisa
ora apresentada, conforme será visto nos próximos capítulos. Sob este ponto de vista, a
usabilidade é encarada de um modo que torna os resultados do processo de mensuração
o alvo da discussão, o que exige usualmente a adoção de uma abordagem
clássica de engenharia da usabilidade ou a proposição de uma nova abordagem para
usabilidade.
Shackel [Shac86, Shac91], Nielsen [Niel93b] e a Parte 11 do padrão ISO9241
[ISO98] empregaram abordagens que consideram questões sobre usabilidade em um nível
operacional, sobre objetivos de usabilidade e sobre a relação entre a usabilidade, a
utilidade, a aceitação de produtos e questões relativas ao processo interativo.
Segundo Shackel [Shac86], a qualidade de um sistema depende de como
este incorpore e combine vários critérios tradicionalmente vagos e não construtivos
no contexto de projeto e implementação. Por sua vez, a usabilidade é a "medida"
que traduz a concretização de metas especificadas por categorias de usuários interagindo
com ambientes específicos, sujeita a vários critérios de conforto, eficiência, eficácia e
aceitação. Embora esta definição sugira a quantificação da influência dos termos
empregados, tal iniciativa nem sempre constitui uma tarefa trivial ou de resultados
facilmente exprimíveis.
2.3.1 Visão de Shackel
A abordagem de Shackel [Shac86, Shac91] se encontra entre as primeiras a
reconhecerem o caráter relativo do conceito de usabilidade sob diversos aspectos,
tendo sido bastante adotada e modificada (e.g., vide Booth [Boot89], Chapanis
[Chap91]). Shackel [Shac86, Shac91] concebeu um modelo de percepção de
produtos fundamentado na aceitação (acceptance), seu conceito de nível mais
elevado.
Parte-se do pressuposto que o usuário (consumidor) confronta as propriedades
do produto com os esforços necessários para adquirí-lo. Caso decida comprá-lo,
a análise de custos-benefícios do processo de aquisição envolverá, de um lado,
Considerações sobre Qualidade e Usabilidade de Software
54
a utilidade (utility), a usabilidade (usability) e a capacidade de agradar (likeability) de
um conjunto de produtos de interesse e, do outro, os custos (costs) associados, conforme
ilustra a Fig. 6. A melhor alternativa é selecionada, ou seja, aceita, o que torna a aceitação
dependente da utilidade, da usabilidade, da similaridade e dos custos do produto.
Fig. 6 – Aceitação do produto, conforme Shackel [Shac91], com destaque
para as dimensões e medidas concretas da usabilidade.
Enquanto a utilidade (utility) refere-se à confrontação das necessidades do usuário com a
funcionalidade do produto, a usabilidade (usability) diz respeito à facilidade de utilização prática da
funcionalidade do produto. Por sua vez, a capacidade de agradar (likeability) concerne a
avaliações subjetivas de cunho emocional/sentimental e os custos incluem tanto os encargos
econômicos quanto conseqüências sociais e organizacionais do processo de aquisição.
Shackel [Shac91] acrescenta que a usabilidade de um sistema ou equipamento é a
capacidade de ser usado fácil e efetivamente por um universo especificado de usuários, em termos
humanos funcionais, sendo dados treinamento e suporte especificados, de modo a completar um
conjunto especificado de tarefas em uma série de cenários ambientais especificados. Destaca-se
nesta definição outra mais sucinta - capacidade de ser usado fácil e efetivamente por seres
humanos, que se mostra apropriado do ponto de vista da avaliação do produto pelos
consumidores, já que o contexto de uso será determinado pela situação específica de cada
consumidor. Quanto aos advérbios associados ao modo de uso, facilmente refere-se a um
determinado nível de análise subjetiva, enquanto efetivamente diz respeito a um determinado nível
de desempenho humano.
Na concepção de Shackel, usabilidade é uma propriedade não constante de um sistema
ou equipamento e sua relatividade é função dos usuários, do treinamento e suporte que lhes foram
Considerações sobre Qualidade e Usabilidade de Software
55
dados, das tarefas executadas e dos ambientes onde as tarefas foram concluídas. Dito de outro
modo, a usabilidade varia conforme o contexto considerado. Assim, um sistema ou um
equipamento será considerado usável se for capaz de atender a uma determinada combinação de
usuários, tarefas e ambientes. Deste ponto de vista, a usabilidade apresenta duas facetas: (i) uma
associada à percepção subjetiva do produto pelo usuário/consumidor; e (ii) outra relacionada à
mensuração objetiva do processo interativo usuário-produto.
Conforme mencionado anteriormente, Shackel apenas sugere os instrumentos, escalas ou
aspectos envolvidos no contexto da mensuração objetiva da usabilidade de um produto, não
fornecendo indicações sobre como conduzi-la. Ciente deste fato, Shackel sugere um conjunto de
critérios operacionais a serem satisfeitos em níveis pré-definidos a fim de que um sistema seja
considerado usável. As escalas sugeridas são apresentadas no Quadro 9.
Quadro 9 – Critérios sugeridos por Shackel [Shac91] para a usabilidade de um sistema.
Efetividade (Effectiveness)
Associada aos resultados da interação em termos de
rapidez (tempos) e erros.
Facilidade de Aprendizado
(Learnability)
Associada à relação entre o desempenho, a quantidade
de treinamento e a freqüência de uso, i.e., o tempo de
aprendizado dos usuários principiantes com um
determinado treinamento e retenção do aprendizado por
parte de usuários esporádicos.
Flexibilidade
(Flexibility)
Associada à possibilidade de adaptação a tarefas e
ambientes, além das duas escalas anteriores.
Atitude Mental e Comportamental (Attitude)
Associada a níveis aceitáveis de esforços humanos em
termos de fadiga, desconforto, frustração e empenho
pessoal.
A concepção de Shackel associa a usabilidade a outros atributos do produto e conceitos
de nível mais alto, fornecendo uma definição descritiva do conceito. Direcionada para o contexto
complexo de avaliação, sugere critérios de usabilidade concretos e mensuráveis, conforme se
pode observar na Fig. 6.
2.3.2 Visão de Nielsen
Nielsen [Niel93b] parte do princípio que, dado um sistema socialmente aceitável, sua aceitabilidade
(acceptability) prática pode ser analisada de diversos ângulos, incluindo aspectos convencionais,
e.g. custo, contabilidade, compatibilidade com outros sistemas existentes, além do aspecto
aplicabilidade29 (usefulness), que ele emprega no sentido de o sistema considerado poder ser
usado para atingir alguma meta entrevista no contexto em questão. Nielsen, assim como Grudin
[Grud92], ainda fraciona a aplicabilidade (usefulness) em duas sub-categorias de análise: utilidade29
29 Mesmo em inglês, os termos usefulness e utility são neologismos neste contexto, cujas definições são pouco distintas,
até em bons dicionários da língua inglesa. Daí, a tentativa de traduzí-los como aplicabilidade e utilidade, palavras
existentes no Novo Dicionário Aurélio da Língua Portuguesa [Holl86], que se enquadram no contexto em questão.
Considerações sobre Qualidade e Usabilidade de Software
56
(utility) e usabilidade30 (usability). A primeira refere-se ao atendimento de todas as necessidades
do usuário pela funcionalidade do sistema, enquanto que a segunda é relativa ao quão
aproveitável é tal funcionalidade, i.e., quão bem o usuário pode explorar a funcionalidade do
sistema (vide Fig. 7). Este último ponto de vista é consonante com o ponto de vista de Eason
[Easo84].
Fig. 7 – Concepção de Nielsen [Niel93c] para a aceitabilidade de um sistema,
com destaque para as dimensões da usabilidade.
Deste modo, verifica-se que o termo usabilidade pode ser aplicado, no contexto de
Nielsen [Niel90, Niel92a, Niel93b], a quaisquer aspectos de um sistema com os quais
usuários interagem, inclusive procedimentos de instalação e manutenção, de onde se pode
apreender que tal termo não denota apenas uma propriedade unidimensional da interface
de usuário.
30 O termo usability, também referido como useability ou usableness, possui definições genéricas em dicionários correntes
da língua inglesa, do tipo "qualidade do que é aproveitável, usável". A tradução deste termo para a língua portuguesa
como usabilidade, um neologismo técnico, baseou-se em dois fatos: (i) em português, a terminação inglesa -ility se faz
corresponder, em diversas situações, ao sufixo -ilidade; e (ii) da aplicação da regra portuguesa de substantivação de
adjetivos terminados em -ável (e.g., miserável - miserabilidade, afável - afabilidade).
Considerações sobre Qualidade e Usabilidade de Software
57
Nielsen não apresenta definições descritivas de usabilidade, embora considere um
conjunto de critérios operacionais que emprega para esclarecer adequadamente o conceito.
Os critérios operacionais adotados por Nielsen em seu modelo de usabilidade de produtos
são listados e especificados no Quadro 10.
Quadro 10 – Critérios da usabilidade de um sistema segundo Nielsen [Niel93b].
Facilidade de Aprendizado
(Learnability)
Refere-se à capacidade dos principiantes de atingirem rapidamente um nível
de desempenho razoável. Considerado por Nielsen como o critério mais
básico da usabilidade de produtos, visto que a maioria deles precisa ser fácil
de aprender para que possam ser aceitos no mercado, é fundamental nas
primeiras experiências de qualquer usuário com sistemas interativos. Alguns
sistemas com interfaces difíceis de usar procuram superar tal dificuldade
com um bom treinamento.
Eficiência (de Uso)
(Efficiency)
Associada ao grau de produtividade do usuário, após haver aprendido a
manipular o sistema de informação considerado. Estreitamente relacionada
ao desempenho do usuário experiente, se enquadrando em um contexto
interpretativo subjetivo e complexo, já que alguns sistemas são tão
complexos que exigem de seus usuários vários anos de uso, para que
atinjam o desempenho e a habilidade típicos de um usuário experiente. Além
do mais, enquanto alguns usuários prosseguem indefinidamente o
aprendizado dos sistemas, a maioria normalmente estaciona em um nível de
aprendizado que considera "suficiente" para desempenhar as atividades
cotidianas [Ross84, Carr87, Carr91].
Memorabilidade
(Memorability)
Refere-se à facilidade de memorização dos procedimentos de acesso às
facilidades oferecidas por um sistema considerado, evitando todo o processo
de re-aprendizado, mesmo quando se trata do uso esporádico do sistema. Tal
atributo valoriza não apenas a experiência anterior do contingente de
usuários ocasionais - a terceira maior categoria de usuários, além dos
principiantes e dos experientes - mas também a experiência daqueles
usuários em retorno de qualquer condição temporária que haja interrompido
seu contato cotidiano com o sistema com o qual operam.
Taxa de Erros
(Errors)
Associada ao cometimento de erros pelo usuário ao utilizar um sistema
computacional, assim como aos mecanismos de prevenção contra a
ocorrência de erros e à facilidade de correção de tais erros, caso sejam
cometidos [Shne87, Shac90, Quei94]. Neste contexto, um erro é definido
comumente como qualquer ação que impede o usuário de atingir a meta
desejada [Niel93b].
Satisfação Subjetiva
(Satisfaction)
Refere-se ao fato de quão agradável é usar o sistema ou, dito de outro modo,
quão satisfeito o sistema deixa o usuário ao executar tarefas por este
impostas [Bail83, Shne87, Niel93b, Quei94].
2.3.3 Visão da ISO (International Standards Organization)
O ISO 9241 é um padrão internacional voltado para o estabelecimento de requisitos ergonômicos
para o trabalho empresarial com terminais de visualização. A Parte 1131 deste padrão apresenta
especificações de usabilidade visando (i) especificações de requisitos de produtos e (ii)
avaliação de produtos. Conforme citado no capítulo anterior, a Parte 11 do ISO 9241 [ISO98]
31 Guidance on usability (Especificações de usabilidade)
Considerações sobre Qualidade e Usabilidade de Software
58
define a usabilidade como a abrangência de ação de um produto, segundo a qual este poderá ser
empregado por usuários específicos para atingir metas especificadas com efetividade32, eficiência
33
e satisfação34, em um contexto específico de uso. Como contexto de uso, a ISO entende usuários,
tarefas, equipamentos (hardware, software e materiais adicionais) e os ambientes físico e social
nos quais um produto é usado. A Fig. 8 apresenta uma síntese gráfica dos conceitos relativos à
usabilidade tratados no padrão ISO 9241, enquanto a Fig. 9 ilustra as relações entre as dimensões
de usablidade segundo a visão da ISO.
Fig. 8 – Concepção de usabilidade da ISO, através do padrão ISO9241-11 [ISO98].
A Fig. 9 ilustra as dimensões da usabilidade segundo o ISO9241-11.
Fig. 9 – Dimensões da usabilidade de acordo com a Parte 11 do ISO 9241 [ISO98].
32 Precisão e completeza com que os usuários atingem metas especificadas.
33 Recursos despendidos em relação à precisão e completeza com que os usuários atingem metas.
34 Ausência de desconforto e exibição de atitudes positivas no tocante ao uso do produto.
Considerações sobre Qualidade e Usabilidade de Software
59
Apesar do título (Usability guidance), as definições apresentadas nesta parte do padrão
ISO 9241 também se aplicam a outras situações que envolvam a interação de usuários com
produtos com o propósito de atingir determinados objetivos almejados. Esta abrangência torna a
concepção de usabilidade do ISO 9241 um conceito genérico, possibilitando sua aplicação a um
leque amplo de situações além de suas aplicações convencionais no âmbito da tecnologia da
informação. A Parte 11 teve influência do projeto MUSiC do Consórcio Europeu ESPRIT, como se
constata nos trabalhos de Bevan et al. [Beva91, Beva93, Beva94] e Bevan [Beva95a, Beva95b,
Beva97].
Bevan e Macleod [Beva94] discutiram uma abordagem de usabilidade fundamentada nas
diretivas do padrão ISO 9241-11, a qual denominaram qualidade de uso, definindo-a como uma
propriedade do sistema como um todo, o que inclui as práticas de trabalho, a localização e
aparência do produto, diferenças individuais entre usuários e outros aspectos que estão
intimamente relacionados com o contexto de uso do produto. Segundo este ponto de vista, os
atributos de um produto nada mais são do que uma contribuição para a qualidade de uso do
sistema como um todo. Por conseguinte, a usabilidade de um produto é encarada como algo
dependente não apenas dos usuários e do produto, mas também das tarefas, das metas
almejadas, dos equipamentos utilizados e do ambiente de trabalho. Enfim, do contexto de uso.
A Parte 11 do padrão ISO9241 estabelece uma discriminação entre a usabilidade e a
qualidade de trabalho a partir da seleção de um ponto de vista específico. Assim, a usabilidade é
estudada focalizando-se o produto sob o prisma da qualidade de trabalho. É este aspecto que
diferencia fundamentalmente o enfoque do ISO9241 daqueles apresentados por Shackel [Shac86,
Shac91] e Nielsen [Niel93b]. Enquanto estes últimos consideram a usabilidade como uma faceta
da aceitação do produto pelo consumidor, o padrão ISO 9241 concebe a usabilidade de um
produto a partir de um foco especialmente direcionado para a avaliação da qualidade de trabalho.
Isto torna os enfoques de Shackel e Nielsen eminentemente centrados no usuário, o que já não
ocorre com o enfoque da Parte 11 do padrão ISO 9241.
Como já foi mencionado ao longo desta discussão e também graficamente sintetizado nas
Figs. 8 e 9, as dimensões da usabilidade segundo a Parte 11 são: efetividade32, eficiência33 e
satisfação34. Vale salientar que o ISO9241-11 não menciona a experiência prévia do usuário com o
produto nem sugere medidas específicas.
Buie [Buie99] comenta que sendo um padrão internacional de processo, as
recomendações não poderiam deixar de ser genéricas, o que sugere implicitamente a necessidade
de sua adaptação às necessidades de cada organização. Entretanto, o Anexo informativo B do
ISO9241-11 apresenta exemplos de medidas de efetividade, eficiência e satisfação tanto quando
se focaliza a usabilidade global (overall usability) quanto para quando se deseja propriedades
específicas para o produto que contribuam para sua usabilidade. No último caso, as propriedades
desejadas são associadas a objetivos de usabilidade, que por sua vez são condicionados aos
seguintes aspectos: (i) atendimento das necessidades de usuários treinados; (ii) atendimento das
necessidades de acompanhamento e uso; (iii) atendimento das necessidades de uso intermitente
ou infreqüente; (iv) minimização de solicitações de ajuda; (v) facilidade de aprendizado;
(vi) tolerância a erros; e (vii) legibilidade.
Considerações sobre Qualidade e Usabilidade de Software
60
Para cada um destes objetivos de usabilidade, o Anexo B lista vários exemplos de medidas
de efetividade, eficiência e satisfação. A experiência do usuário e as medidas de usabilidade são
conceitos dissociados no ISO 9241-11. As medidas são categorizadas conforme o aspecto da
interação que descrevem, i.e., uma parte das medidas descreve a produção da interação, sua
qualidade e quantidade, uma segunda parte mensura os recursos dedicados à interação, sob o
ponto de vista da produtividade, enquanto a última parte mensura a percepção subjetiva da
interação do ponto de vista do usuário. As medidas têm uma importância secundária do ponto de
vista da definição, sendo dada aos avaliadores uma grande liberdade de escolha na seleção das
medidas mais apropriadas aos seus propósitos.
Pontos de vista sobre usabilidade à parte, pode-se afirmar que engenharia da usabilidade
é um conjunto de atividades que ocorrem através da vida útil de um produto, como conseqüência
de outra série de atividades significativas realizadas desde antes da concepção da interface
usuário-produto [Goul85, Niel93b], o que só vem reforçar a constatação de Grudin [Grud91]: a
influência de fatores humanos sobre o sucesso de qualquer produto em desenvolvimento ou
mesmo de versões futuras desse produto é um fato.
Thimbleby [Thim94] concorda com a relevância dos critérios de usabilidade da definição de
Shackel [Shac86, Shac91] para acordos contratuais de usuários de sistemas com fabricantes, mas
questiona sua expressividade junto a atividades desenvolvidas pelos projetistas de sistemas,
contrapondo a impossibilidade de uso sistemático de medidas empíricas para a otimização de
projetos num contexto desprovido de teorias. Para a expressão engenharia da usabilidade, o autor
sugere o uso de usabilidade empírica, uma abordagem a ser encarada como complementar de
outra, por ele adotada, a usabilidade formal, embasada em propriedades formais e avaliada por
atividades que constituem a usabilidade de sistematização (formulating usability).
No âmbito de tais definições, o encaminhamento de procedimentos avaliatórios de
interfaces de usuário “engatilha” processos de descobertas e constatações de inúmeros eventos
que ocorrem entre o usuário de teste e o produto sob condições de avaliação, em que o fluxo de
informações de interesse parece assumir um ritmo difícil de acompanhar, sobretudo quando não
foram traçadas metas sobre os tipos de dados que se deseja coletar.
Não é rara a aquisição de extensos volumes de dados virtualmente sem nenhum valor para
o contexto avaliado ou, no melhor dos casos, de contribuição irrisória para a otimização do projeto
e da usabilidade da interface considerada. Daí a necessidade não apenas de planejamento prévio
dos procedimentos metodológicos, mas também da previsão de que tipo de dados contribuirá mais
efetivamente para mensurar e atingir as metas de usabilidade pré-fixadas e como deverão ser
adquiridos. Eis porque, por extensão, a importância do conhecimento das diferentes técnicas de
avaliação consagradas na literatura da área.
Vários métodos formais e informais de avaliação de interfaces usuário-computador têm
sido concebidos e experimentados, principalmente nas duas últimas décadas. Alguns deles
envolvem usuários em sessões individuais ou grupais, outros são centrados em julgamentos e
opiniões de especialistas. Alguns são conduzidos em ambientes onde o alvo da avaliação é usado
em condições reais, outros ocorrem em laboratórios, nos quais o alvo da avaliação é testado a
partir de tarefas simuladas para refletir contextos reais de uso. Uns focalizam a usabilidade como
Considerações sobre Qualidade e Usabilidade de Software
61
princípio de projeto, outros não lidam necessariamente com este atributo. Alguns conservam os
procedimentos originais, outros resultam de adaptações a contextos mais específicos.
O próximo capítulo tratará de aspectos relativos aos diferentes métodos de avaliação de
processos interativos usuário-computador, destacando suas potencialidades e limitações. O
Capítulo 4 complementará a discussão de aspectos relativos à avaliação da usabilidade do
Capítulo 3, ressaltando tópicos pertinentes ao contexto dos enfoques avaliatórios consagrados na
literatura da área, em especial questões relativas à mensuração da usabilidade e à confrontação
de enfoques quantitativos e qualitativos.