INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA FLUMINENSE
PÓS-GRADUAÇÃO EM ANÁLISE, PROJETO E GERÊNCIA DE SISTEMAS DE
INFORMAÇÃO
JULIANA DA SILVA CINDRA
LÍVIA CASSIANO RANGEL
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS
DA MINERAÇÃO DE DADOS
Campos dos Goytacazes/RJ
2012
JULIANA DA SILVA CINDRA
LÍVIA CASSIANO RANGEL
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS
DA MINERAÇÃO DE DADOS
Monografia apresentada ao Instituto Federal de
Educação, Ciência e Tecnologia Fluminense como
requisito parcial para conclusão da Pós-Graduação em
Análise, Projeto e Gerência de Sistemas de
Informação.
Orientadora: Simone Vasconcelos Silva
Campos dos Goytacazes/RJ
2012
JULIANA DA SILVA CINDRA
LÍVIA CASSIANO RANGEL
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS
DA MINERAÇÃO DE DADOS
Monografia apresentada ao Instituto Federal de
Educação, Ciência e Tecnologia Fluminense como
requisito parcial para conclusão da Pós-Graduação em
Análise, Projeto e Gerência de Sistemas de
Informação.
Aprovada em 28 de setembro de 2012
Banca Avaliadora:
..................................................................................................................................................
Profª Simone Vasconcelos Silva (orientadora)
Doutora em Computação/UFF
Instituto Federal de Educação, Ciência e Tecnologia Fluminense/Campus Campos Centro
..................................................................................................................................................
Profº Mauricio Jose Viana Amorim
Doutor em Informática na Educação/UFRGS
Instituto Federal de Educação, Ciência e Tecnologia Fluminense/Campus Campos Centro
..................................................................................................................................................
Profª Ana Silvia Escocard Santiago
Mestre em Pesquisa Operacional e Inteligência Computacional/UCAM
Instituto Federal de Educação, Ciência e Tecnologia Fluminense/Campus Campos Centro
As pessoas esquecem quão rapidamente você fez um
trabalho – mas elas sempre se lembram de quão bem
você o fez.
Howard Newton
RESUMO
Nos últimos anos é notória a crescente a demanda por sistemas complexos, os quais assumem
grandes responsabilidades no contexto organizacional, sendo necessário que haja um controle de
qualidade através do qual seja possível garantir segurança, disponibilidade de serviços essenciais e
facilidade de utilização dos recursos do software. Para que isto ocorra, é importante levar em conta a
visão do usuário sobre o sistema. Adequar a qualidade dos produtos de software, de modo que o
mesmo atenda aos usuários em suas necessidades, torna-se imprescindível. A norma ISO/IEC 9126
indica as características de um software de qualidade, cuida de maneira geral do que é necessário
para realizar uma avaliação, estabelece um modelo de qualidade para o produto, assim como
apresenta uma ampla descrição de como verificar, qualitativa e quantitativamente, se o produto
possui qualidade. Já a norma ISO/IEC 14598 orienta sobre a avaliação do modelo de qualidade,
abrange os aspectos gerenciais, sugere estabelecer uma metodologia precisa na organização assim
como indica a documentação que deve acompanhar todo o processo. Estas normas orientam a
avaliação do Sistema de Gestão Acadêmica (SIGA-EPCT), apresentado como estudo de caso neste
trabalho. Uma avaliação sobre o sistema, realizada pelos usuários de acordo com experiência no uso
do software, indica a satisfação em relação a alguns pontos e ao sistema como um todo; e também
apontam possíveis pontos que devem ser melhorados ou revistos no produto de software. De posse
do resultado das avaliações sobre a qualidade do sistema, é importante extrair informações úteis, ou
seja, extrair conhecimentos detalhados sobre os pontos fortes e fracos do sistema. Como forma de
extração deste conhecimento são utilizadas técnicas de Mineração de Dados com o objetivo de
tornar mais viável o entendimento dos resultados das avaliações, verificando a validade dos mesmos
e as razões que levaram a tais resultados, para que possam ser adotadas medidas para minimização
dos problemas identificados no sistema.
Palavras-chave: qualidade de software, avaliação da qualidade do produto de software, mineração de
dados.
ABSTRACT
In recent years it is evident the increasing demand for complex systems, which assume greater
responsibilities in the organizational context, being necessary that such systems have a quality
control, which means that you can ensure security, availability of essential services and ease of use
of software features. For this to occur, it is important to take into account the user's view about the
system. Adapt the quality of software products, so that it meets the users needs, becomes essential.
The standard ISO/IEC 9126 indicates the characteristics of a software quality, care in general about
what is necessary to conduct an evaluation, establish a model for the product quality, as well as
provides a comprehensive description of how to check qualitatively and quantitatively, if the product
has quality. Already the standard ISO/IEC 14598 provides guidance on the evaluation of model
quality, covers the management aspects, suggests establishing a precise methodology in the
organization even as indicates the documentation that must accompany the whole process. These
standards guide the evaluation of Sistema de Gestão Acadêmica (SIGA-EPCT), presented as a case
study in this work. An evaluation of the system, held by the user in accordance with experience
using the software, indicates satisfaction regarding some points and the system as a whole; and also
point out possible points that should be improved or revised in the software product. In possession
of the evaluations result of the system quality, it is important to extract useful information, in other
words, extracting detailed knowledge about the strengths and weaknesses points of the system. As a
form of extraction of this knowledge are used techniques of Data Mining with the goal of making
more viable the understanding of evaluation results, verifying their validity and reasons for such
results, so decisions can be taken to minimize the problems identified in the system.
Key-words: software quality, quality software product evaluation, data mining.
SIGLAS E ABREVIATURAS
ABNT Associação Brasileira de Normas Técnicas
B Bom
I Inexistente
IEC International Electrotechnical
IEEE Institute of Electrical and Electronic Engineers
IFF Instituto Federal de Educação, Ciência e Tecnologia Fluminense
IHC Interação Homem-Computador
ISO International Organization for Standardization
KDD Knowledge Discovery in Database
M Médio
MB Muito Bom
MEC Ministério da Educação
P Péssimo
R Ruim
SETEC Secretaria de Educação Profissional e Tecnológica
SIGA-ADM Sistema Integrado de Gestão Acadêmica Administrativa
SIGA-EDU Sistema Integrado de Gestão Acadêmica da Educação
SIGA-EPCT Sistema Integrado de Gestão Acadêmica da Educação Profissional e
Tecnológica
SQUARE Software product Quality Requirements and Evaluation
UFJF Universidade Federal de Juiz de Fora
WEKA Waikato Enviroment for Knowledge Analysis
LISTA DE FIGURAS
Figura 1: Engenharia de software em camadas …......................................................................... 17
Figura 2: Partes componentes da ISO/IEC 25000 ….................................................................... 24
Figura 3: Estrutura hierárquica do modelo de qualidade ….......................................................... 27
Figura 4: Características e subcaracterísticas da norma ISO/IEC 9126-1 …................................. 27
Figura 5: Representação da norma ISO/IEC 14598 …................................................................ 31
Figura 6: Processo de Avaliação …............................................................................................... 33
Figura 7: Disciplinas que contribuem em IHC .............................................................................. 37
Figura 8: Três dimensões das diferentes experiências de usuários ............................................... 40
Figura 9: Etapas do KDD .............................................................................................................. 48
Figura 10: Técnicas de origem da Mineração de Dados (Data Mining) ....................................... 50
Figura 11: Questionário utilizado como forma de avaliação da satisfação do usuário …............. 59
Figura 12: Tela inicial do Módulo Protocolo ................................................................................ 64
Figura 13: Tela inicial do Módulo Requisição de Veículos, perfil Requisitante …....................... 65
Figura 14: Tela inicial da ferramenta Weka ................................................................................... 66
Figura 15: Arquivo Questionário.arff ............................................................................................ 68
Figura 16: Árvore de Decisão (Tempo de Experiência x Satisfação) ........................................... 73
Figura 17: Árvore de Decisão (Módulo x Satisfação) ................................................................... 74
Figura 18: Árvore de Decisão (Cargo x Satisfação) ...................................................................... 74
LISTA DE TABELAS
Tabela 1: Principais normas e modelos nacionais e internacionais de qualidade de software ….. 22
Tabela 2: Partes das normas ISO/IEC 9126 e 14598 ..................................................................... 23
Tabela 3: Relação entre Técnica e Tarefa de Mineração de Dados ............................................... 55
Tabela 4: Características, Sub-características e Critérios utilizados na avaliação do software …. 58
Tabela 5: Tarefas, Técnicas e Algoritmos a serem utilizados ....................................................... 61
Tabela 6: Setores que participaram da pesquisa e a quantidade de usuários por setor …............. 67
Tabela 7: Relação entre Tarefa e Técnica para Clusterização ....................................................... 69
Tabela 8: Módulo X Satisfação (Atributos ignorados: Cargo e Tempo de Experiência) ….......... 70
Tabela 9: Cargo X Satisfação (Atributos Ignorados: Módulo e Tempo de Experiência) ….......... 71
Tabela 10: Relação entre Tarefa e Técnica para Associação ......................................................... 71
Tabela 11: Regras Identificadas .................................................................................................... 72
Tabela 12: Relação entre Tarefa e Técnica para Decisão .............................................................. 73
10
Sumário
1. Introdução.......................................................................................................................................12
1.1. Objetivo...................................................................................................................................13
1.2. Estrutura do trabalho...............................................................................................................14
2. Qualidade........................................................................................................................................16
2.1. Histórico de Qualidade...........................................................................................................18
2.2. Qualidade de Software............................................................................................................19
2.3. Normas de Qualidade de Software.........................................................................................21
2.3.1. SQuaRE: ISO/IEC 25000 ............................................................................................23
2.3.2. ISO/IEC 9126...............................................................................................................25
2.3.3. ISO/IEC 14598 ............................................................................................................30
2.4. Qualidade para o Usuário.......................................................................................................35
2.4.1. Usabilidade...................................................................................................................41
2.4.2. Confiabilidade..............................................................................................................42
2.4.3. Eficiência......................................................................................................................44
2.4.4. Funcionalidade.............................................................................................................44
3. Mineração de Dados.......................................................................................................................46
3.1. Descoberta de Conhecimento em Banco de Dados (Knowledge Discovery in Database –
KDD)..................................................................................................................................................47
3.2. Mineração de Dados (Data Mining).......................................................................................49
3.2.1 Linhagens da Mineração de Dados...............................................................................50
3.2.2 Tarefas da Mineração de Dados....................................................................................51
3.2.3 Técnicas de Mineração de Dados..................................................................................53
4. Avaliação da Qualidade do Produto de Software através de Mineração de Dados........................57
4.1 Seleção dos Critérios e da Técnica de avaliação....................................................................57
4.2 Etapas do KDD.......................................................................................................................60
5. Metodologia e Estudo de caso........................................................................................................62
5.1. Sistema SIGA........................................................................................................................62
5.2. Weka......................................................................................................................................65
11
5.3. Caracterização da amostra.....................................................................................................67
5.3.1. Aplicação da metodologia para o SIGA......................................................................68
5.3.1.1. Resultados e Análises com Algoritmo de Clusterização.................................69
5.3.1.2. Resultados e Análises com Algoritmo de Associação.....................................71
5.3.1.3. Resultados e Análises com Algoritmo de Decisão..........................................73
6. Conclusão.......................................................................................................................................76
6.1. Trabalhos futuros.....................................................................................................................76
Referências.........................................................................................................................................78
Apêndice I - Questionário...................................................................................................................84
Apêndice II – Arquivo Questionário.arff............................................................................................85
Apêndice III – Arquivo Questionário.xls............................................................................................86
Anexo .................................................................................................................................................87
12
1. Introdução
Na medida em que cresce a demanda por sistemas complexos, com grande responsabilidade
no contexto das organizações, a qualidade desponta como um fator essencial no desenvolvimento de
software. Sendo assim, cada vez mais, há uma disposição para se investir em qualidade (DUARTE;
FALBO, 2000). Atualmente, não apenas no desenvolvimento, mas a avaliação da qualidade de
produtos ou serviços tornou-se uma necessidade, visto que os usuários estão cada vez mais
exigentes quanto a qualidade dos produtos ou serviços adquiridos (SILVA, 2008).
De acordo com a norma NBR ISO 9000 (2005), qualidade é definida como o grau em que
um conjunto de características inerentes a um produto, processo ou sistema cumpre os requisitos
inicialmente estipulados para estes. Dentro da qualidade de software pode-se distinguir dois ramos
que possuem características um pouco distintas quando se trata de manter e avaliar a qualidade,
estes podem ser definidos como qualidade de processo e qualidade do produto, Duarte e Falbo
(2000) apresentam os termos definindo-os: qualidade do processo possui características de
qualidade relevantes para descrever e avaliar a qualidade do processo de software ou de uma de suas
atividades, como por exemplo, desempenho do processo, capacitação, produtividade; já a qualidade
do produto possui características de qualidade relevantes para descrever e avaliar um artefato1, por
exemplo, tamanho, legibilidade, confiabilidade. Neste trabalho será abordado apenas o que se refere
a qualidade do produto.
Entende-se como produto a relação entre um artefato e uma atividade, indicando que o
artefato é produzido pela atividade (DUARTE; FALBO, 2000). Observando a definição, pode-se
dizer então que produtos de software são a associação de resultados e atividades realizadas durante
o processo de desenvolvimento de software, ou seja, o próprio software já desenvolvido.
A preocupação com metodologias de produção de software que permitam a qualidade dos
softwares e a satisfação do usuário é crescente na indústria de software. Um dos importantes
aspectos da qualidade de software, que tem merecido crescente atenção é a qualidade da interação
1
Um artefato é o termo usado para qualquer produto de trabalho: código, gráficos para web, esquemas de bancos de
dados, documentos em texto, diagramas, e assim por diante (Larman, 2005).
13
entre o usuário e os softwares. As técnicas de avaliação da qualidade de software podem vir a
auxiliar o setor de desenvolvimento de software a alcançar um grau de satisfação maior dos usuários
em relação aos produtos desenvolvidos e assim, aproximar as características de seus produtos de
software às demandas dos usuários. Para tal fim, é necessário transformar os dados obtidos nas
técnicas de avaliação em informação relevante. A informação vem desempenhando cada vez mais
um papel fundamental em todos os setores da sociedade. O desenvolvimento e sucesso das
organizações baseiam-se na capacidade de coletar, tratar, interpretar e utilizar a informação de
forma eficaz. A rápida evolução dos recursos computacionais, ocorrida nos últimos anos permitiu
que fossem gerados grandes volumes de dados. Surge então a Mineração de Dados, como resposta a
tal necessidade apresentada com esse crescimento do volume de dados, que necessitam de novas
técnicas e ferramentas capazes de transformar dados em informações significativas e em
conhecimento (SILVA, 2008).
1.1. Objetivo
A Mineração de Dados é parte de um processo maior denominado Descoberta de
Conhecimento em Banco de Dados (Knowledge Discovery in Database - KDD) (BRAGA, 2005).
Como sugere o termo, Mineração de Dados tem uma orientação exploratória de busca por
conhecimento obscurecido pelos complexos padrões de associação e grande quantidade de dados. É
o processo de obtenção de informação e conhecimento a partir de grande base de dados (HAIR et
al, 1998).
Neste trabalho será realizada a avaliação da qualidade de um produto de software, através de
questionários aplicados aos usuários do sistema e da análise das informações através da mineração
de dados. O objetivo principal deste trabalho é a avaliação da qualidade de um produto de software
utilizando das técnicas e ferramentas de extração inteligente de conhecimento em bases de dados. A
metodologia utiliza questionários respondidos pelos usuários para alimentar a base de dados na qual
será aplicada a mineração de dados e obtida a informação desejada. O objetivo principal pode ser
dividido nos seguintes objetivos específicos:
14
• Realizar uma análise do produto de software, apresentando o grau de satisfação do usuário
em relação ao uso do sistema;
• Através do estudo de caso, verificar como o grau de satisfação pode variar de acordo com o
perfil dos usuários e com o módulo utilizado;
• Sugerir quais critérios devem ser melhorados visando satisfazer as necessidades dos
usuários.
1.2. Estrutura do trabalho
Este trabalho está estruturada em 6 capítulos.
• O Capítulo 1 introduz o tema do trabalho, apresentando uma descrição do problema tratado,
os objetivos pretendidos e a justificativa para a sua elaboração;
• O Capítulo 2 fornece um referencial teórico a respeito da qualidade, qualidade de software,
sua história, as normas de qualidade, descrevendo as normas 9126-1 e 14598 (parte 1 e 5)
que são utilizadas nesse trabalho e ainda aborda a qualidade para o usuário;
• O Capítulo 3 apresenta um referencial teórico a respeito da Mineração de dados, abordando
temas como a Descoberta de Conhecimento em Banco de Dados e as linhagens e técnicas da
Mineração de Dados. Tanto neste capítulo quanto no Capítulo 2, os conceitos são destacados
com o objetivo de facilitar o entendimento a respeito de como metodologia está estruturada;
• O Capítulo 4 descreve a metodologia proposta, detalhando suas etapas, a seleção dos
critérios, a seleção da técnica de avaliação, as etapas do KDD e os critérios e técnicas de
avaliação;
• O Capítulo 5 apresenta o estudo de caso realizado tendo como base a metodologia proposta.
Neste capítulo a execução de cada etapa é descrita em detalhes, permitindo que se
compreenda como o estudo de caso foi realizado e os resultados obtidos a partir de sua
execução;
• O Capítulo 6 refere-se enfim as considerações finais que podem ser feitas a partir do estudo
15
realizado. Este capítulo também apresenta as limitações identificadas e as sugestões para
trabalhos futuros.
Este trabalho é composto ainda por Apêndice e Anexo. O Apêndice contêm o questionário
utilizado na avaliação do software, os dados da pesquisa e o arquivo utilizado na mineração de
dados; e o anexo fornece uma descrição a respeito dos algoritmos de mineração de dados (APriori,
KMeans e RandomTree) utilizados neste trabalho.
16
2. Qualidade
Os computadores têm tido uma aplicação cada vez maior, em diferentes áreas, e sua correta
operação é frequentemente crítica para o sucesso de negócios e até mesmo para a segurança
humana. Deste modo, desenvolver ou selecionar produtos de software de alta qualidade é de
primordial importância num mercado cada vez maior e mais competitivo.
A ideia de qualidade é aparentemente intuitiva; contudo, quando examinado mais de perto, o
conceito se revela complexo. Definir qualidade é uma tarefa menos trivial do que pode parecer. Uma
das definições apresentada pelo dicionário Michaelis define qualidade como “Grau de perfeição, de
precisão, de conformidade a um certo padrão”.
Talvez a melhor das definições, por ser a mais ampla e aplicável a uma variedade de situações
é a de Joseph Juran: “Qualidade é a adequação ao uso”. Pode-se aplicá-la, seja a situações do
cotidiano, quanto a situações mais específicas, como, por exemplo, num processo de fabricação.
Nesse caso, a definição de Philip Crosby, qualidade é a conformidade com os requisitos (requisitos
significa tanto o produto quanto as necessidades do cliente), é uma variação mais restritiva da
definição de Juran (SILVA, 2010).
O site da Sociedade Americana para a Qualidade (ASQ - American Society for Quality)
apresenta o seguinte conceito (http://asq.org/glossary/q.html):
“Qualidade – Um termo subjetivo, para o qual cada pessoa, ou setor,
tem a sua própria definição. Em sua utilização técnica, a qualidade pode ter
dois significados:
1. As características de um produto ou serviço, que dão suporte (ou
sustentação), à sua habilidade em satisfazer requisitos especificados ou
necessidades implícitas e;
2. Um produto ou serviço livre de deficiências.”
A norma NBR ISO 9000 (2005), que estabelece um modelo de gestão da qualidade para
organizações em geral, define qualidade como “[...] o grau em que um conjunto de características
17
inerentes a um produto, processo ou sistema cumpre os requisitos inicialmente estipulados para
estes”, sendo que características, segundo a própria norma são propriedades diferenciadoras,
podendo ser de diferentes tipos, como físicas, sensoriais, comportamentais, temporais, ergonômicas
ou funcionais.
A qualidade também é um assunto tratado pelas Engenharias, é uma área de conhecimento
fundamental em todas elas, e na Engenharia de Software não seria diferente. Segundo Pressman
(2006), Fritz Bauer foi o primeiro a definir que a Engenharia de Software é “a criação e a utilização
de sólidos princípios de engenharia a fim de obter softwares econômicos que sejam confiáveis e que
trabalhem eficientemente em máquinas reais.”
Ainda de acordo com Pressman (2006), “A engenharia de software é uma tecnologia em
camadas” e a Figura 1 foi apresentada para ilustrar essa divisão.
Figura 1: Engenharia de software em camadas
Fonte: Pressman (2006)
Como pode ser visto, o foco na qualidade é a base que apoia todas as outras camadas.
Qualquer abordagem de engenharia (inclusive a engenharia de software) deve se apoiar num
compromisso organizacional com a qualidade. Segundo o autor, é “a cultura de um processo
contínuo de aperfeiçoamento (…) que leva ao desenvolvimento de abordagens cada vez mais
efetivas para a engenharia de software”.
18
2.1. Histórico de Qualidade
A Revolução Industrial pode ser considerada como o primeiro grande marco da história da
qualidade. Nessa época novas tecnologias surgiram, o número de indústrias começou a crescer e
também a concorrência entre elas e fez nascer a necessidade de um processo de melhoria dos
produtos (KOSCIANSKI; SOARES, 2007).
Ainda de acordo com Koscianski e Soares (2007), a partir da década de 20, a produção
industrial passou a adotar um processo de qualidade. A fim de evitar que produtos defeituosos
chegassem aos clientes surgiu o controle estatístico da produção. Como a produção industrial ocorre
em grande escala, não era possível verificar a qualidade de cada peça produzida, então o processo
de qualidade era feito através de um controle estatístico, em que algumas peças eram analisadas
aleatoriamente. Quanto mais próximas ao padrão, melhor seria a qualidade daquela linha de
produção.
Foi na década de 40 que os principais órgãos ligados à qualidade foram criados, como a
Associação Brasileira de Normas Técnicas (ABNT) e a Organização Internacional para
Padronização (ISO – International Organization for Standardization). Porém, antes destas
organizações, em 1906, a Comissão Eletrotécnica Internacional, conhecida pela sigla IEC
(International Electrotechnical Commission) foi fundada em Londres, Inglaterra, com o objetivo de
padronizar nomenclaturas, símbolos e tecnologias elétricas e eletrônicas (IEC, 2012).
A ISO foi estabelecida em 1947, uma organização mundial não governamental, composta
pelos órgãos nacionais de padronização de 163 países. Com sede em Genebra, Suíça, tem como
principal atividade a elaboração de padrões para especificações e métodos de trabalho nas mais
variadas áreas. O principal objetivo da ISO é o desenvolvimento de padrões mundiais, com vistas a
facilitação do intercâmbio internacional de produtos e serviços e a criação de uma cooperação
intelectual, científica, econômica e técnica (ISO, 2011).
No Brasil, a ABNT foi fundada em 1940, é o único órgão responsável pela normalização
técnica no país, fornecendo a base necessária ao desenvolvimento tecnológico brasileiro. É uma
entidade privada, sem fins lucrativos, e representa o Brasil nas entidades de normalização
internacional como a ISO e o IEC (ABNT, 2011).
19
Segundo Sodré (2006), no período de duração da Segunda Guerra Mundial, de 1939 a 1945,
as técnicas de produção foram melhoradas para a fabricação de materiais bélicos, pois é esperado
que este tipo de material não tenha falha. O ritmo de desenvolvimento das indústrias manteve-se no
pós-guerra e foi criado um controle de processos da produção desde o projeto até o produto final. A
partir do controle de processos foi criado um novo conceito, a garantia de qualidade, que é a
demonstração de que os produtos e serviços possuem qualidade. Nessa época, as indústrias que
mais estavam crescendo eram a automobilística e aeronáutica, e ainda que para uso restrito a meios
militares e acadêmicos, já havia o desenvolvimento de computadores.
Nos anos 60, houve uma mudança no ambiente de negócios devido a diversos fatores como a
saturação dos mercados, procura por produtos diferenciados, utilização de alta tecnologia nos
processos produtivos, redução das barreiras do comércio internacional e a intensificação da
competição internacional. Nessa época, os computadores se tornaram mais acessíveis e cada vez
mais pessoas passaram a usá-los. Com isso começou a se pensar em Qualidade de Software
(SODRÉ, 2006).
O conceito de Qualidade de Software surgiu devido a necessidade de organização e
padronização do desenvolvimento de softwares, que não tinham planejamento nem norma de
qualidade estabelecidos. A única forma de obter um sistema eficiente era através do planejamento
feito pelo próprio programador, entretanto esses sistemas tinham manutenção complicada quando
realizada por outra pessoa e não eram completamente confiáveis.
2.2. Qualidade de Software
Qualidade de software é uma mistura complexa de fatores que variam com cada aplicação
diferente e com os clientes que as encomendam. Em sentindo mais geral, Pressman (2006) define
qualidade de software como “a satisfação de requisitos funcionais e de desempenho explicitamente
declarados, a padrões de desenvolvimento claramente documentados e a características implícitas
que são esperadas de todo software profissionalmente desenvolvido”. Uma definição mais simples,
aplicável também a qualidade de software, é feita por Crosby, ao dizer que qualidade é a
20
“conformidade com os requisitos”. De maneira mais abrangente temos a definição proposta por
Bartié (2002): "Qualidade de software é um processo sistemático que focaliza todas as etapas e
artefatos produzidos com o objetivo de garantir a conformidade de processos e produtos, prevenindo
e eliminando defeitos".
O IEEE (Institute of Electrical and Electronic Engineers) aplica a seguinte definição para
qualidade de software: “[...] o grau em que um sistema, componente ou processo satisfaz os
requisitos especificados. O grau em que um sistema, componente ou processo atende cliente ou
usuário necessidades ou expectativas.” (NASA, 2009).
A norma NBR ISO/IEC 9126-1, utilizada neste trabalho, conceitua qualidade de software
como “A totalidade de características de um produto de software que lhe confere a capacidade de
satisfazer necessidades explícitas e implícitas”. As necessidades explícitas dependem do que foi
especificado nos requisitos, já as implícitas são necessidades, que embora não estejam especificadas
nos requisitos, devem ser levadas em consideração, pois se baseiam em princípios necessários para
que o usuário execute a sua tarefa.
Ainda segundo a NBR ISO/IEC 9126-1, as necessidades explicitadas pelo usuário nem
sempre refletem suas reais necessidades devido alguns fatores: frequentemente, o usuário não
conhece suas necessidades reais; as necessidades podem mudar; usuários diferentes podem ter
ambientes operacionais diferentes e pode ser impossível consultar todos os tipos de usuários.
A utilização de um software de qualidade garante a segurança, a disponibilidade de serviços
essenciais e, em geral, a sociedade pode dispor de melhores produtos a um menor custo. De acordo
com Koscianski e Soares (2007), o controle da qualidade surge como uma necessidade; e a
avaliação para julgamento da qualidade de software torna-se muito útil e importante para as pessoas
envolvidas ou as partes interessadas que são:
• Produtor de software: na avaliação durante o processo de desenvolvimento para assegurar a
qualidade do produto final e corrigir aspectos negativos antes da liberação do produto. No
produto já lançado para avaliar e planejar ações corretivas e evolutivas.
• Comprador: ajudá-lo na seleção do produto mais adequado as suas necessidades.
• Usuário: ajudá-lo a ter mais confiança no produto que está usando.
• Vendedor: este usa a qualidade do produto para argumento de venda.
21
A avaliação da Qualidade de Software pode ser dividida em qualidade de processo de
software e qualidade de produto de software. As normas para obtenção de qualidade de processo de
software fazem um estudo dos requisitos necessários ao cliente, cria um ciclo de vida para os
processos e, por final, realiza a instalação e manutenção do mesmo. Já as normas para qualidade de
produto de software possuem características que um produto com qualidade deve ter, modo de medir
essas características de qualidade e descrições para se fazer a avaliação do produto.
Processo de software, de acordo com Koscianski e Soares (2007), é um conjunto de atividades
e resultados associados que levam a produção de um produto de software. O estudo da Qualidade do
Processo de Software desenvolve modelos na tentativa de avaliar processos, com o intuito de
melhorá-lo continuamente e determinar sua capacitação.
A qualidade de produto de software, ainda segundo os autores, é baseada em normas que
avaliam a qualidade de um produto, através de técnicas, métricas e atividades operacionais o quanto
cada requisito é atendido. Tais requisitos de uma maneira geral, são a expressão das necessidades,
explicitados em termos quantitativos ou qualitativos, e têm por objetivo definir as características de
um software, a fim de permitir o exame de seu atendimento. Este trabalho abordará as normas de
qualidade de produto de software.
2.3. Normas de Qualidade de Software
As normas internacionais de qualidade são criadas com base no trabalho de especialistas do
mundo todo. Essas normas tornaram-se a base para especificar produtos, organizar o fornecimento
de serviços e, até mesmo, para elaborar legislação em vários países.
Existe um número expressivo de normas técnicas internacionais relacionadas com software e
em sua maioria, senão na totalidade, as normas de software têm um caráter mais informativo do que
regulatório. Ou seja, enquanto existem normas a serem respeitadas, como forma de lei, para
instalação elétrica de um prédio, por exemplo, o mesmo não acontece em relação ao software.
Atualmente, muitas instituições se preocupam em criar normas para permitir a correta
avaliação de qualidade tanto de produtos de software quanto de processos de desenvolvimento de
22
software. Apenas para ter uma visão geral, pode-se observar a Tabela 1 com as principais normais e
modelos nacionais e internacionais nesta área.
Tabela 1: Principais normas e modelos nacionais e internacionais de qualidade de software
Normas de Qualidade do Produto
ISO/IEC 9126 Características da qualidade de produtos de software. A norma brasileira
correspondente é ABNT NBR ISO/IEC 9126.
ISO/IEC 14598 Guias para a avaliação de produtos de software, baseados na utilização
prática da norma ISO/IEC 9126. A norma brasileira correspondente é ABNT
NBR ISO/IEC 14598.
ISO/IEC 25000 Fornece um guia para o uso da série de padrões internacionais denominado
Software product Quality Requirements and Evaluation (SQuaRE).
Normas e Modelos de Qualidade do Processo
ISO/IEC 12207 Software Life Cycle Processes (Processos de ciclo de vida do software):
qualidade do processo de desenvolvimento de software.
ISO 9000 Sistemas de gestão da qualidade: fundamentos e vocabulário.
CMMI Capability Maturity Model Integration (Integração dos Modelos de
Capacitação e Maturidade): modelo de referência que contém práticas
necessárias à maturidade em disciplinas específicas.
ISO/IEC 15504 Também conhecida como Spice, define processo de desenvolvimento de
software.
MPS-Br Melhoria de Processos do Software Brasileiro: modelo de qualidade de
processo voltada para o mercado brasileiro.
As organizações internacionais ISO e IEC elaboraram um conjunto de normas que tratam,
especificamente, sobre a atual padronização mundial para a qualidade dos produtos de software.
Algumas dessas normas foram utilizadas como base para o desenvolvimento desse trabalho, como
as normas ISO/IEC 9126 e ISO/IEC 14598. Ambas as normas foram reorganizadas através do
projeto SQuaRE (ISO/IEC 25000) e serão mais detalhadas a seguir.
23
2.3.1. SQuaRE: ISO/IEC 25000
SQuaRE significa Software product Quality Requirements and Evaluation, que pode ser
traduzida como Requisitos de Qualidade e Avaliação de Produtos de Software. Essa norma é uma
evolução das séries de normas ISO/IEC 9126 e ISO/IEC 14598 que tratam de qualidade de produto
de software (PREVIEW ISO/IEC 25000, 2005).
As normas 9126 e 14598 abordam a qualidade de produto de software e são compostas por um
total de dez documentos. A ideia de reorganizar essas normas, iniciou em 1998, durante uma
reunião da Comissão de Estudos de Qualidade de Software da ABNT, que percebeu que para
compreender determinado tópico, poderia ser necessário consultar vários outros documentos. Então
a comissão propôs a criação de um guia ou manual de utilização, para auxiliar os leitores a
compreenderem as ideias e conceitos básicos das normas, assim como a distribuição de informação
ao longo dos dez documentos. A proposta foi considerada tão interessante que foi solicitada a sua
tradução para inglês. O passo seguinte foi uma total reformulação das normas através do projeto
SQuaRE (KOSCIANSKI, SOARES, 2007).
O projeto SQuaRE reorganizou o material existente nas duas séries de normas anteriores
(ISO/IEC 9126 e 14598), mas não realizou mudanças radicais no conteúdo do material preexistente.
O modelo hierárquico de qualidade proposto na 9126 continuou válido, assim como diversos
aspectos organizacionais abordados na 14598. Esses documentos são mostrados na Tabela 2:
Tabela 2: Partes das normas ISO/IEC 9126 e 14598
Fonte: Koscianski, Soares, 2007
Norma Conteúdo
9126-1 Modelo de qualidade de software
9126-2 Métricas externas
9126-3 Métricas Internas
9126-4 Métricas para qualidade em uso
14598-1 Guia de avaliação – visão geral
14598-2 Planejamento e gerenciamento de avaliações
14598-3 Processo de avaliação para desenvolvedores
14598-4 Processo de avaliação para adquirentes
14598-5 Processo de avaliação para avaliadores
14598-6 Documentação de módulos de avaliação
24
Ainda segundo os autores, a série 9126 cuida de maneira geral do que é necessário para
realizar uma avaliação, estabelece um modelo de qualidade para o produto, assim como apresenta
uma ampla descrição de como verificar, qualitativa e quantitativamente, se o produto possui
qualidade. Já a série 14598 abrange os aspectos gerenciais, sugere estabelecer uma metodologia
precisa na empresa, assim como indica a documentação que deve acompanhar todo o processo.
Na reorganização das normas ISO/IEC 9126 e 14598, o projeto SQuaRE adotou uma nova
divisão de assuntos em cinco tópicos como mostrado na Figura 2:
Figura 2: Partes componentes da ISO/IEC 25000
Fonte: Koscianski; Soares, 2007
Cada divisão é composta por um conjunto de documentos e trata de um assunto em particular.
As cinco divisões são comentadas a seguir (KOSCIANSKI; SOARES, 2007):
• Gerenciamento de qualidade: os documentos desta divisão estão voltados a todos os
possíveis usuários: gerentes, programadores, avaliadores, compradores. Aqui são definidos
os termos utilizados nos demais documentos e são feitas recomendações e sugestões de
caráter geral sobre como utilizar o SQuaRE.
• Modelo de qualidade: corresponde principalmente a antiga ISO 9126-1, onde é definido um
modelo hierárquico de características de qualidade, descrevendo o que se espera de um
produto. São definidos também os conceitos de qualidade externa, interna e em uso, que
permitem orientar diferentes perspectivas de avaliação.
25
• Medição: Define o que é uma medição e descreve os diversos aspectos relacionados a
realização dessa tarefa. Propõe também uma série de métricas que podem ser utilizadas ou
adaptadas a necessidades específicas.
• Requisitos de qualidade: Para garantir qualidade é preciso que valores-alvo tenham sido
previamente especificados, o que faz parte da especificação de requisitos.
• Avaliação: a SQuaRE concretiza-se na realização de uma avaliação de qualidade a partir de
medições cujos resultados são confrontados contra um modelo definido pelo usuário. Para
realizar uma avaliação são sugeridos procedimentos a serem adotados para diferentes
públicos da norma, como desenvolvedores e compradores.
Vale enfatizar dois aspectos: a série ISO/IEC 25000 se baseia em séries anteriores que
continuam válidas e podem ser utilizadas. O projeto SQuaRE não surgiu para desmentir tais
normas, mas sim para reorganizá-las. Em segundo lugar, iremos abordar somente os aspectos
relevantes ao desenvolvimento desse trabalho, como o modelo de qualidade da norma ISO/IEC 9126
e o processo de avaliação da norma ISO/IEC 14598.
2.3.2. ISO/IEC 9126
A norma internacional ISO/IEC 9126 foi desenvolvida por um comitê técnico estabelecido
pelas organizações ISO e IEC e publicada em 1991. A norma descreve um modelo de qualidade e
exemplos de métricas que podem ser utilizadas para avaliação do produto de software, sendo
dividida da seguinte maneira (NBR ISO/IEC 9216-1, 2003):
• ISO/IEC 9126-1: Modelo de qualidade
• ISO/IEC 9126-2: Métricas externas
• ISO/IEC 9126-3: Métricas internas
• ISO/IEC 9126-4: Métricas de qualidade em uso
26
A ISO/IEC 9126-1 (Modelo de qualidade) foi publicada em 1991, sendo considerada uma das
mais antigas normas na área de qualidade de software e atualmente encontra-se traduzida para o
português através da norma NBR ISO/IEC 9126-1, publicada em 2003. Esta parte é abordada mais
detalhadamente devido a sua relevância no contexto deste trabalho.
A ISO/IEC 9126-1 é uma norma de avaliação do produto de software, onde são descritas
características de qualidade e diretrizes para a sua utilização. Na norma também é descrito um
modelo para a qualidade do produto de software, dividido em 2 partes (KOSCIANSKI; SOARES,
2007):
• Qualidade interna e Qualidade externa: A qualidade interna se refere a avaliação da
arquitetura interna do produto, ou seja, a qualidade de organização do código, a
complexidade algorítmica entre outros, o que pode elevar o custo da manutenção e o tempo
de resposta do sistema. A qualidade externa considera o produto uma caixa-preta, não
importando o código ou a arquitetura utilizados. Para realizar essa avaliação são definidas
seis características de qualidade interna e externa, que são ainda subdivididas em
subcaracterísticas, objetivando definir o quanto um produto satisfaz as necessidades
explícitas e implícitas quando utilizados em condições especificadas;
• Qualidade em uso: Consiste na visão do usuário a respeito da qualidade do software no
ambiente em que esta inserido. É medida em relação ao resultado da utilização do software e
não em relação as características do produto.
O modelo de qualidade descrito é representado de forma hierárquica, através de um conjunto
de características e subcaracterísticas que devem ser verificadas, e certificam o produto de software
quanto a sua qualidade. Na figura 3, podemos visualizar a estrutura hierárquica do modelo, onde são
definidas no primeiro nível as características de qualidade do produto, no segundo nível as
subcaracterísticas e no terceiro nível os atributos ou critérios, que são definidos de acordo com o
usuário do modelo.
27
Figura 3: Estrutura hierárquica do modelo de qualidade.
De acordo com a própria norma, essa estrutura hierárquica foi pensada visando delimitar
melhor o amplo universo contemplado pela característica, definindo conceitos mais detalhados que
facilitam, por exemplo, a especificação de requisitos. A norma apresenta um conjunto de seis
características que um produto de software deve ter para ser considerado um software de qualidade,
como podemos visualizar na figura 4:
Figura 4: Características e subcaracterísticas da norma ISO/IEC 9126-1.
Fonte: NBR ISO/IEC 9126-1
A ISO/IEC 9126-1 possui seis características, onde estas são divididas em subcaracterísticas,
28
conforme a seguir (NBR ISO/IEC 9126-1):
• Funcionalidade: Trata-se da capacidade de um software prover funcionalidades que
satisfaçam o usuário em suas necessidades explícitas e implícitas, dentro de um determinado
contexto de uso. Suas subcaracterísticas são:
◦ Adequação: mede o quanto o conjunto de funcionalidades é adequado às necessidades do
usuário;
◦ Acurácia: representa a capacidade do software de fornecer resultados precisos ou com a
precisão dentro do que foi acordado/solicitado;
◦ Interoperabilidade: trata da maneira como o software interage com outros sistemas;
◦ Segurança de acesso: mede a capacidade do sistema de proteger as informações do
usuário e fornecê-las apenas às pessoas autorizadas;
◦ Conformidade relacionada à funcionalidade: capacidade do produto de software de estar
de acordo com normas, convenções ou regulamentações previstas em leis e prescrições
similares relacionadas à funcionalidade.
• Confiabilidade: Verifica se o produto de software é imune à falhas, se mantém o nível de
desempenho nas condições estabelecidas durante um determinado período de tempo. Suas
subcaracterísticas são:
◦ Maturidade: capacidade de evitar falhas decorrentes de defeitos no software;
◦ Tolerância a falhas: mantém o funcionamento adequado mesmo quando ocorrem defeitos
nele ou nas suas interfaces externas;
◦ Recuperabilidade: capacidade de um software se recuperar após uma falha, recuperando
os dados e restabelecendo os níveis de desempenho;
◦ Conformidade relacionada à confiabilidade: capacidade do produto de software de estar
de acordo com normas, convenções ou regulamentações relacionadas à confiabilidade.
• Usabilidade: A capacidade do produto de software ser compreendido e seu funcionamento
aprendido. Evidencia o esforço necessário para poder utilizar o software, assim como o
julgamento individual deste uso. Suas subcaracterísticas são:
◦ Inteligibilidade: representa a facilidade com que o usuário pode compreender os
29
conceitos utilizados pelo software e avaliar se o mesmo pode ser usado para satisfazer as
suas necessidades específicas;
◦ Apreensibilidade: facilidade de aprendizado do sistema;
◦ Operacionalidade: facilidade de operar e controlar as operações;
◦ Atratividade: capacidade do produto de software de ser atraente ao usuário, refere-se a
atributos de software que possuem a intenção de tornar o software mais atraente para o
usuário, como o uso de cores e da natureza do projeto gráfico.
◦ Conformidade relacionada à usabilidade: capacidade do produto de software de estar de
acordo com normas, convenções, guias de estilo ou regulamentações relacionadas à
usabilidade.
• Eficiência: Verifica se o tempo de execução e os recursos envolvidos são compatíveis com o
nível de desempenho do software. Suas subcaracterísticas são:
◦ Comportamento em relação ao tempo: avalia se o tempo de processamento, o tempo de
resposta e a velocidade na execução de suas funções estão dentro das especificações;
◦ Utilização de recursos: mede tanto os recursos consumidos quanto a capacidade do
sistema em utilizar os recursos disponíveis;
◦ Conformidade relacionada à eficiência: capacidade do produto de software de estar de
acordo com normas e convenções relacionadas à eficiência.
• Manutenibilidade: A facilidade de modificar um produto de software, incluindo tanto as
melhorias ou extensões de funcionalidade quanto as correções de falhas ou erros. Suas
subcaracterísticas são:
◦ Analisabilidade: identifica a facilidade em se diagnosticar eventuais problemas e
identificar as causas das deficiências ou falhas;
◦ Modificabilidade: caracteriza a facilidade com que o comportamento do software pode
ser modificado;
◦ Estabilidade: avalia a capacidade do software de evitar efeitos colaterais decorrentes de
modificações introduzidas;
◦ Testabilidade: representa a capacidade de se testar o sistema modificado, tanto quanto as
novas funcionalidades quanto as não afetadas diretamente pela modificação;
30
◦ Conformidade relacionada à manutenibilidade: capacidade do produto de software de
estar de acordo com normas ou convenções relacionadas à manutenibilidade.
• Portabilidade: A capacidade do sistema ser transferido de um ambiente para outro. Suas
subcaracterísticas são:
◦ Adaptabilidade: representando a capacidade do software se a adaptar a diferentes
ambientes sem a necessidade de ações adicionais (configurações);
◦ Capacidade para ser instalado: identifica a facilidade com que pode se instalar o sistema
em um novo ambiente;
◦ Coexistência: mede o quão facilmente um software convive com outros instalados no
mesmo ambiente;
◦ Capacidade para substituir: representa a capacidade que o sistema tem de substituir outro
sistema especificado, em um contexto de uso e ambiente específicos. Este atributo
interage tanto com adaptabilidade quanto com a capacidade para ser instalado;
◦ Conformidade relacionada à portabilidade: capacidade do produto de software de estar
de acordo com normas ou convenções relacionadas à portabilidade.
2.3.3. ISO/IEC 14598
A ISO/IEC 14598 possui um conjunto de guias para orientar e planejar o processo de
avaliação de um produto de software e oferece uma visão geral dos processos de avaliação de
produtos de software, seja durante o desenvolvimento ou após sua conclusão. Pode ser utilizado por
avaliadores, fornecedores, compradores, usuários e entidades certificadas, cada qual com seu
objetivo.
De acordo com esta norma, o objetivo principal da avaliação do produto de software é
fornecer resultados quantitativos sobre a qualidade do produto de software que sejam
compreensíveis, aceitáveis e confiáveis. Sua estrutura é divida em seis partes, como ilustrado na
figura 5 e descrito logo a seguir:
31
Figura 5 – Representação da norma ISO/IEC 14598
Fonte: SODRÉ, 2006
• ISO/IEC 14598-1 – Visão Geral: contém a estrutura de funcionamento das normas para
avaliação da qualidade de produto de software e a definição dos termos técnicos. Possui
também os conceitos e funcionamento de processo de avaliação de software;
• ISO/IEC 14598-2 – Planejamento e Gerenciamento: são requisitos e guias que darão suporte
as funções de avaliação dos produtos de software;
• ISO/IEC 14598-3 – Processo para Equipe de Desenvolvedores: apresenta atividades de
avaliação para serem usadas durante o desenvolvimento e manutenção do software. Além
disso, fornece guia para avaliar dados de medição, guia para melhoria do processo de
medição e critérios para seleção de indicadores de qualidade;
• ISO/IEC 14598-4 – Processo para Compradores: norma para avaliação de produtos com
objetivo de auxiliar na aquisição de um produto de software ou selecionar entre diversos
produtos;
• ISO/IEC 14598-5 – Processo para Avaliadores: possui orientações para realizar a avaliação
32
do produto de software, definindo as atividades necessárias para todo o processo;
• ISO/IEC 14598-6 – Módulo de Avaliação: define a estrutura e o conteúdo da documentação
que será usada na descrição dos Módulos de Avaliação. Descreve o desenvolvimento e a
validação dos módulos.
As partes 1 e 5 possuem tradução para o Brasil como NBR ISO/IEC 14598, realizada pela
ABNT. O presente trabalho utiliza estas partes da norma, que veremos mais detalhadamente devido
sua importância no contexto abordado.
De acordo com a norma ISO/IEC 14598, a parte 1 é uma introdução as outras partes. Ela
fornece uma visão geral das outra partes também explica o relacionamento entre a ISO/IEC 14598 e
o modelo de qualidade apresentado na ISO/IEC 9126. Na norma consta a informação que nesta
parte há a definição dos termos técnicos utilizados nas demais partes, contém requisitos gerais para
especificação e avaliação da qualidade de software e esclarece os conceitos gerais. Adicionalmente,
ela também fornece uma estrutura para avaliar a qualidade de quaisquer produtos de software e
estabelece os requisitos para métodos de medição e avaliação de produtos de software.
Desenvolver um processo de avaliação requer tempo, pessoal e recursos. A norma ISO/IEC
14598-1 define as principais características de um processo de avaliação e descreve suas etapas
(Figura 6), como (NBR ISO/IEC 14598-1, 2001):
33
Figura 6: Processo de Avaliação
Fonte: NBR ISO/IEC 14598-1
• Estabelecer os requisitos de avaliação: identificar o produto e o propósito da avaliação, esta
atividade se divide em três passos:
◦ Estabelecer o propósito da avaliação: deve ser definido qual o principal objetivo da
avaliação.
◦ Identificar tipos de produtos a serem avaliados: deve ser definido o tipo de produto que
será trabalhado, seja em desenvolvimento ou um produto final.
◦ Especificar modelo de qualidade: definição de um modelo de qualidade sobre o qual
será realizada a avaliação. A norma ISO/IEC 14598 adota como guia o modelo de
qualidade proposto pela ISO/IEC 9126-1.
• Especificar a avaliação: define o escopo da avaliação e as medições a que o produto será
submetido. A base para sua elaboração são os requisitos da avaliação e a descrição do
produto de software. Esta atividade pode ser dividida em:
◦ Selecionar métricas: devem ser definidas métricas correlacionadas às características de
34
qualidade, visto que essas não podem ser medidas diretamente. As métricas devem ser
fáceis e econômicas. A ISO/IEC 14598-6 apresenta a documentação de módulos de
avaliação e exemplos de métricas são encontrados na ISO/IEC 9126-2 e 3.
◦ Estabelecer níveis de pontuação para as métricas: deve ser elaborada uma escala de
pontuação, que possa refletir a performance do sistema em relação a característica de
qualidade que esta sendo avaliada.
◦ Estabelecer critérios para julgamento: interpretar os resultados obtidos na avaliação,
visto que cada característica possui diferente relevância ao sistema.
• Projetar a avaliação: com base na especificação da avaliação deve ser elaborado um plano de
avaliação no qual estejam relacionados os componentes do produto de software a serem
avaliados e os métodos de avaliação propostos;
◦ Produzir o plano de avaliação: descreve os métodos de avaliação e o cronograma das
ações do avaliador.
• Executar a avaliação: consiste na inspeção, medição e teste dos produtos e seus componentes
de acordo com o plano de avaliação (podem ser utilizadas ferramentas de software para a
medição e interpretação dos resultados), as ações executadas pelo avaliador devem ser
registradas e os resultados colocados em versão preliminar do relatório da avaliação;
◦ Obter as medidas: as métricas selecionadas são aplicadas ao produto de software,
obtendo os valores correspondentes na escala definida.
◦ Comparar com critérios: o valor obtido é comparado aos critérios estabelecidos nos
níveis de pontuação da escala.
◦ Julgar os resultados: é elaborado um resultado declarando o quanto o produto de
software atende aos requisitos de qualidade. A partir desse resultado, serão tomadas
decisões.
A ISO/IEC 14598-5 é a parte da ISO/IEC 14598 que fornece requisitos e recomendações para
a implementação prática de avaliação de um produto de software, quando várias partes envolvidas
necessitam entender, aceitar e confiar nos resultados da avaliação. Em especial, ela pode ser usada
na aplicação dos conceitos descritos na ISO/IEC 9126 (NBR ISO/IEC 14598-5, 2001).
35
Nessa parte da norma são definidas atividades necessárias para analisar os requisitos de
avaliação, para especificar, projetar e executar as ações de avaliação, e concluir a avaliação de
qualquer tipo de produto de software, seja um produto final ou em desenvolvimento. Pode ser
utilizada por (NBR ISO/IEC 14598-5, 2001):
• Avaliadores de laboratórios de teste, quando estiverem fornecendo serviços de avaliação de
produtos de software;
• Fornecedores de software, quando estiverem planejando avaliação de seus produtos de
software, incluindo execução de avaliação por prestadores independentes de serviços de
teste;
• Adquirentes de software, quando requisitarem informações de avaliações do fornecedor ou
de prestadores de serviços de teste;
• Usuários de software, quando estiverem avaliando produtos, ou quando estiverem usando
relatórios de avaliação fornecidos por laboratórios de teste;
• Entidades de certificação na definição de novos procedimentos de certificação para produtos
de software.
2.4. Qualidade para o Usuário
Pressman (2006) define qualidade de software como “conformidade a requisitos funcionais e
de desempenho explicitamente declarados, a padrões de desenvolvimento claramente documentados
e a características implícitas que são esperadas de todo software profissionalmente desenvolvido”.
Sendo assim, pode-se pensar que se o software possuir qualidade em relação a conformidade e no
processo de desenvolvimento, a qualidade será alta. Porém, o próprio autor reconhece que a
qualidade é importante, mas se o usuário não estiver satisfeito, nada mais realmente importa.
Este enfoque parte da ideia de que "a qualidade está diante dos olhos de quem observa".
Sendo assim, os desenvolvedores de software não podem se esquecer das necessidades implícitas de
seus clientes. Mesmo sendo possível afirmar que se as qualidades internas foram observadas muito
36
provavelmente as qualidades externas também foram atendidas, o usuário esta mais interessado no
uso do software, no seu desempenho e nos efeitos que o seu uso possa produzir na organização. Eles
não valorizam conhecer aspectos internos do software ou como o software foi desenvolvido.
(Gomes, 2000)
A qualidade estaria associada a uma visão subjetiva, baseada em preferências pessoais.
Supõe-se que os bens que melhor satisfazem as preferências do consumidor são aqueles por ele
considerados como tendo alta qualidade. Este enfoque levou ao conceito de "adequação ao uso",
predominante na literatura da área de qualidade. A definição de qualidade, baseada neste enfoque, e
mais difundida, é a definição de Juran, idêntica ao conceito apresentado.
Os projetos de software muitas vezes são pensados levando em consideração a
implementação, impondo limitações e restrições que tornam a “interface fácil de construir, mas
frustrante de usar” (PRESSMAN, 2006). Mas para que os computadores se tornem amplamente
aceitos e efetivamente usados eles precisam ser bem projetados. Isso de maneira alguma quer dizer
que o design deve ser adequado a todas as pessoas, mas deve ser projetado para as necessidades e
capacidades de um grupo alvo. Rocha e Baranauskas (2003) diz que usuários em geral não devem
ser obrigados a pensar sobre como o computador funciona, da mesma forma que o funcionamento
mecânico de um carro não é preocupação da maioria das pessoas, entretanto, a posição dos pedais,
direção e câmbio têm muito impacto sobre o motorista, como também o design de sistemas
computacionais têm efeito sobre seus usuários.
O estudo de como ocorre essa interação, entre homem e máquina, é feita através da Interação
Homem-Computador (IHC), que consiste no estudo do comportamento humano, da tecnologia
computacional e das maneiras pelas quais estes influenciam um ao outro. Essa influência pode
ocorrer através dos possíveis meios de comunicação que inclui o projeto, implementação e avaliação
de interfaces que tornem o trabalho do homem confortável, saudável e produtivo. (GOMES, 2005).
Os objetivos de IHC, segundo Rocha e Baranauskas (2003), são de produzir sistemas usáveis,
seguros e funcionais. Esses objetivos podem ser resumidos como desenvolver ou melhorar a
segurança, utilidade, efetividade e usabilidade de sistemas que incluem computadores. Nesse
contexto o termo sistemas se refere não somente ao hardware e o software mas a todo o ambiente
que usa ou é afetado pelo uso da tecnologia computacional. A parte mais difícil é de que forma
atingir estes objetivos e justamente por isso IHC é uma matéria interdisciplinar que relaciona
37
diversas disciplinas, como pode ser vista na Figura 7:
Figura 7: Disciplinas que contribuem em IHC
Fonte: adaptado de Rocha, Baranauskas, 2003
Segundo Rocha e Baranauskas (2003) as principais disciplinas são: Psicologia Cognitiva,
Psicologia Social e Organizacional, Ergonomia e a Ciência da Computação; descritas a seguir:
• Ciência da Computação contribui provendo conhecimento sobre as possibilidades da
tecnologia e oferecendo ideias sobre como explorar todo o seu potencial. Os profissionais de
computação têm se preocupado em desenvolver ferramentas de software para auxiliar ao
design, implementação e manutenção de sistemas.
• Psicologia Cognitiva. A preocupação principal da Psicologia é entender o comportamento
humano e os processos mentais subjacentes. A Psicologia Cognitiva adotou a noção de
processamento de informação como modelo para o comportamento humano e tenta colocar
tudo que vemos, sentimos, tocamos, cheiramos, etc. , em termos desse modelo.
• Psicologia Social tem como preocupação estudar a natureza e causas do comportamento
humano no contexto social. Verifica a a influência de um indivíduo nas atitudes e
comportamentos de outra pessoa , o impacto de um grupo sobre o comportamento e as
38
atitudes de seus membros , o impacto de um membro nas atividades e estrutura de um grupo
e o relacionamento entre estrutura e atividades de diferentes grupos .
• A Ergonomia se interessa de maneira geral pelo melhoramento das condições de trabalho. Já
a ergonomia de software, concentra-se particularmente nas condições de utilização de um
software por seus usuários. Seu objetivo é conceber e fazer o design de diversas ferramentas
e artefatos para diferentes ambientes de trabalho, domésticos e de diversão, adequados às
capacidades e necessidades de usuários. O objetivo é maximizar a segurança, eficiência e
confiabilidade da performance do usuário, tornando as tarefas mais fáceis e aumentando os
sentimentos de conforto e satisfação. As primeiras contribuições dos especialistas em fatores
humanos para IHC foram no design do hardware (teclados mais ergonômicos, posições do
vídeo, etc.) e nos aspectos de software que poderiam resultar em efeitos fisiológicos
adversos nos humanos, como a forma da apresentação de informação na tela.
◦ A Psicologia Organizacional dá aos designers o conhecimento sobre estruturas
organizacionais e sociais e sobre como a introdução de computadores influencia práticas
de trabalho. Em grandes organizações, por exemplo, o computador serve tanto como
meio de comunicação, quanto para fazer a folha de pagamento e contabilidade em geral,
para controlar entrada e saída de pessoas, etc.
Para Pressman (2006), “a interação homem-computador é o mecanismo por meio do qual se
estabelece um diálogo entre o programa e o ser humano. Se os fatores humanos tiverem sido levados
em conta, o diálogo será harmonioso e um ritmo será estabelecido entre o usuário e o programa. Se
os fatores humanos tiverem sido ignorados, o sistema quase sempre será visto como possuindo
pouca usabilidade”. Dentro das definições de IHC, a usabilidade é um conceito chave que diz
respeito a produção de sistemas fáceis de aprender e de usar. Não basta que o produto ofereça
muitas funções, é fundamental que os usuários possam usufruir delas, e, para isso a facilidade de
utilização é essencial.
O termo usabilidade começou a ser usado no início da década de 80 e a primeira norma que
definiu o termo usabilidade foi a ISO/IEC 9126, sobre qualidade de software. Sua abordagem é
claramente orientada ao produto e ao usuário, pois considera a usabilidade uma das características
39
de qualidade existente em um produto de software. Quando da evolução da norma expressada na
NBR ISO/IEC 9126-1, este conceito pode ser definido pela seguinte definição: "Usabilidade é a
capacidade do produto de software de ser compreendido, aprendido, operado e atraente ao usuário,
quando usado sob condições especificadas".
A norma NBR ISO/IEC 9126 também aborda a qualidade em uso, onde avalia a qualidade do
produto de software sob a perspectiva do usuário, no ambiente onde esta envolvido. É medida em
termos do resultado do uso do software e não das propriedades do próprio software. A norma atribui
a seguinte definição a qualidade em uso: “Capacidade do produto de software de permitir que
usuários especificados atinjam metas especificadas com eficácia, produtividade, segurança e
satisfação em contextos de uso especificados”. A definição de qualidade em uso na norma se
assemelha a definição de usabilidade, porém qualidade em uso pode ser influenciada por qualquer
característica de qualidade, podendo assim ser mais ampla que usabilidade.
De acordo com Rocha e Baranauskas (2003), o que se pode depreender dos princípios de
usabilidade é que eles tratam basicamente de dois aspectos: a tarefa e as características individuais
dos usuários. Portanto, conhecer o usuário é fundamental para se fazer o design de um sistema
usável. Entender os principais modos de classificar usuários ajuda a fazer um bom design que
atenda a maior diversidade desses. Na análise do usuário sua experiência é um fator relevante, e essa
experiência deve ser analisada em três dimensões: com relação ao uso do sistema, com relação ao
uso de computadores em geral e com relação ao domínio da aplicação. Nielsen (1993) apresenta
essa diferenciação em um gráfico que ele denomina de cubo do usuário como pode ser visto na
Figura 8:
40
Figura 8: Três dimensões das diferentes experiências de usuários
Fonte: adaptado de Nielsen, 1993.
Segundo Nielsen (1993), é importante ressaltar que o uso do sistema altera a categoria do
usuário, um novato não é um eterno novato, e isso tem importantes implicações no design. Algumas
interfaces são e devem ser projetadas com ênfase apenas em novatos onde a facilidade de
aprendizagem é fundamental, enquanto outras podem ser pensadas para ser adaptar ao usuário a
medida que este se tornar experiente no sistema. Outro fator que tem impacto no design da interface
é a experiência com computadores, pois usuários experientes em um amplo conjunto de aplicações
têm mais ideias de como o computador normalmente trata várias situações. Já a experiência no
domínio da tarefa é importante por definir a abordagem do sistema, pois interfaces projetadas para
especialistas podem fazer uso de terminologia e jargão específico de uma área de especialidade.
O uso de um sistema computacional envolve o usuário num mapeamento dos seus objetivos
na estrutura e funcionalidade do sistema. A complexidade dessa tarefa de mapeamento depende
parcialmente dos esforços do projetista em entender e considerar no seu projeto as necessidades
inerentes à tarefa. De acordo com a norma NBR ISO/IEC 9126, para que um sistema seja operado
por um usuário, a combinação de funcionalidade, confiabilidade, usabilidade e eficiência podem ser
medidas externamente pela qualidade em uso. Além disso, essas características são utilizadas na
metodologia apresentada no capítulo 4, por serem características facilmente percebidas pelo
usuário. Nas próximas sessões essas características serão detalhadas de acordo com a visão de
outros autores ou entidades da área de qualidade.
41
2.4.1. Usabilidade
O termo usabilidade é frequentemente usado para se referir à capacidade de um produto ser
facilmente usado. Isto corresponde a definição de usabilidade como uma qualidade de software na
NBR ISO/IEC 9126-1: “Capacidade do produto de software de ser compreendido, aprendido,
operado e atraente ao usuário, quando usado sob condições especificadas”.
Um produto não tem usabilidade intrínseca, somente capacidade de ser usado em um contexto
particular, conforme definido na norma NBR 9241-11 (2002). A usabilidade definida em termos de
qualidade de um sistema de trabalho em uso depende, necessariamente, de todos os fatores que
podem influenciar no uso de um produto do mundo real, incluindo fatores organizacionais tais como
práticas de trabalho e localização ou aparência de um produto, e diferenças individuais entre
usuários incluindo aquelas devido a fatores culturais e preferências. Esta ampla abordagem tem a
vantagem que é concentrada no propósito real do projeto de um produto – que ele encontra as
necessidades de usuários reais desenvolvendo tarefas reais em um ambiente organizacional, técnico,
fisicamente e real (NBR 9241-11, 2002).
Usabilidade é definida em função de vários atributos e é tradicionalmente associada a cinco
deles (Nielsen, 1993, tradução nossa):
• Facilidade de aprendizagem (Learnability): O sistema precisa ser fácil de aprender de forma
que o usuário possa rapidamente começar a interagir. Segundo Nielsen, quando se analisa a
facilidade de aprendizagem, é preciso ter em mente que geralmente o usuário aprende uma
interface durante o seu uso. Portanto, esse fator é avaliado em função do tempo que o
usuário demora para atingir um suficiente grau de proficiência na execução de suas tarefas.
• Eficiência (Efficiency): O sistema precisa ser eficiente no uso, de forma que uma vez
aprendido o usuário tenha um elevado nível de produtividade. Para isso o usuário precisa ter
algum tempo de experiência utilizando o sistema. Um modo típico de avaliar esse atributo é
definir de alguma forma o que significa um usuário experiente e avaliar um grupo desses
executando tarefas típicas de um sistema.
• Facilidade de relembrar (Memorability): O sistema precisa ser facilmente relembrado, de
42
forma que o usuário ao voltar a usá-lo depois de um certo tempo não tenha novamente que
aprendê-lo. Esse atributo tanto se refere a usuários casuais, como para aqueles sistemas
utilitários que são usados em períodos específicos.
• Erros (Errors): O sistema precisa ter uma pequena taxa de erros, de modo que o usuário
cometa poucos erros durante o seu uso e, em errando, deve ser fácil a recuperação, sem
perda de trabalho. Erros catastróficos, em que o usuário perde tudo por exemplo, não podem
ocorrer.
• Satisfação subjetiva (Satisfaction): Os usuários devem gostar do sistema, ou seja, deve ser
agradável de forma que o usuário fique satisfeito ao usá-lo. Satisfação subjetiva pode ser
medida simplesmente perguntando ao usuário sobre suas opiniões subjetivas. Para um único
usuário o resultado desse questionamento é subjetivo, mas quando se considera muitos
usuários, a média das respostas passa a ser uma medida objetiva.
2.4.2. Confiabilidade
Confiabilidade pode ser definida, segundo Mazzola (2010), como “a capacidade dos produtos
de software de realizarem suas tarefas de forma precisa, conforme definido nos requisitos e na
especificação.”. Ainda segundo o autor, esse é um fator de suma importância em qualquer categoria
de software, pois nenhum outro fator poderá compensar a ausência de correção. Não é interessante e
nem viável produzir um software extremamente desenvolvido do ponto de vista da interface, por
exemplo, se as suas funções são executadas de forma incorreta, porém, para que a correção alcance
um nível satisfatório irá depender, principalmente, da definição dos requisitos do software e do
desenvolvimento de acordo com esses requisitos.
Sendo assim, é possível perceber que “para garantir a confiabilidade adequada: as ações
devem funcionar como especificado, os dados apresentados devem refletir o conteúdo do banco de
dados e atualizações devem ser aplicadas corretamente.” (SHNEIDERMAN, PLAISANT, 2005). A
confiança que os usuários tem nos sistemas é muito frágil, uma única experiência com dados
incorretos ou resultados inesperados irá prejudicar por muito tempo a credibilidade do sistema.
43
De acordo com Pressman (2006): “Confiabilidade de software, ao contrário de muitos outros
fatores de qualidade, pode ser medida diretamente e estimada usando dados históricos e de
desenvolvimento”. Confiabilidade de software é definida em termos estatísticos como “a
probabilidade de operação livre de falhas de um programa de computador, em um ambiente
especificado, durante um tempo especificado” (Musa apud Pressman, 2006). Mediante esse
conceito, surge a dúvida em relação a palavra “falha”, dúvida essa abordada da seguinte maneira por
Pressman (2006): “No contexto de qualquer discussão de qualidade e confiabilidade de software,
falha é a não conformidade com os requisitos de software”. A norma NBR ISO/IEC 14598-1,
também apresenta uma definição para a palavra: “Término da capacidade de um produto de
executar uma função requerida ou a sua incapacidade de executá-la dentro de limites previamente
especificados”.
Outro fator importante relacionada a confiabilidade é a disponibilidade do sistema que,
segundo Shneiderman e Plaisant (2005), depende de fatores externos e alheios ao software como os
componentes de hardware e de rede. Se o sistema não está disponível ou apresenta erros, irá
prejudicar o desempenho do usuário em suas atividades, tornando-se assim um empecilho ao invés
de uma solução. Além disso, todos os fatores que levem o usuário a confiar no sistema, como
garantir a integridade dos dados e alertar sobre destruição ou adulteração dos dados, permitirão que
o usuário se sinta no controle do sistema, podendo confiar e compreender sua utilização
(Shneiderman, Plaisant, 2005). Os requisitos de confiabilidade a serem considerados são (Rational,
2001):
• frequência e gravidade de falha
• possibilidade de recuperação
• possibilidade de previsão
• exatidão
• tempo médio entre falhas
44
2.4.3. Eficiência
Segundo a norma NBR 9241-11, o termo eficiência pode ser definido como “Recursos gastos
em relação à acurácia e abrangência com as quais usuários atingem objetivos”. Para entender
melhor o conceito apresentado, na própria norma há a exemplificação das medidas de eficiência:
“Medidas de eficiência relacionam o nível de eficácia alcançada ao dispêndio de recursos”, por
exemplo, “Se o objetivo desejado for imprimir cópias de um relatório, então a eficiência pode ser
especificada ou medida pelo número de cópias usáveis do relatório impresso, dividido pelos
recursos gastos na tarefa tal como horas de trabalho, despesas com o processo e materiais
consumidos.” Sendo assim, podemos concluir que a eficiência só é positiva quando todos os fatores
envolvidos são positivos, pois, seguindo o exemplo, não adianta possuir uma grande quantidade de
cópias do relatório, se ocorreu desperdício de recursos e/ou tempo.
Como conceito de eficiência Mazzola (2010) apresenta a seguinte definição: “A eficiência
está relacionada com a utilização racional dos recursos de hardware e de sistema operacional da
plataforma onde o software será instalado. Recursos tais como memória, processador e co-
processador, memória cache, recursos gráficos, bibliotecas (por exemplo, primitivas de sistema
operacional) devem ser explorados de forma adequada em espaço e tempo.”
2.4.4. Funcionalidade
Um estudo sobre características da funcionalidade de software foi realizado pelo SUMI, que
significa Software Usability Measurement Inventory (KIRAKOWSKI, PORTEUS, CORBETT apud
MEIRELLES, 2008), definindo funcionalidade como a capacidade de um software ser usado com
eficiência e satisfação para atingir objetivos específicos em um determinado ambiente. O SUMI é
um método de medir a qualidade do software a partir do ponto de vista do usuário final, no
documento há a definição de algumas características sobre a funcionalidade do software, das quais
serão destacadas as seguintes:
45
• Utilidade: capacidade de resolver ou ajudar a resolver problemas para os quais o software foi
proposto.
• Controle: capacidade de um produto em responder de uma forma natural e consistente aos
comandos e entradas de dados fornecidos;
De acordo com Martinez (2011), a funcionalidade do sistema é importante no sentido de estar
adequada aos requisitos da tarefa do usuário, ou seja, o design do sistema deve permitir ao usuário
efetuar a tarefa pretendida e de modo mais fácil e eficiente. Isso inclui não somente ter a
funcionalidade adequada disponível, mas também torná-la usável, na forma de ações que o usuário
precisa efetuar para executar a tarefa.
Shneiderman e Plaisant (2005), afirmam que o primeiro acerto na análise de requisitos é
conhecer os usuários e suas necessidades. As tarefas mais frequentes são fáceis de determinar, mas
as tarefas ocasionais, as tarefas excepcionais para situações de emergência, e as tarefas de reparação
para lidar com erros no uso da interface são mais difíceis de descobrir. Os autores também afirmam
que a análise de tarefas é fundamental, porque as interfaces com funcionalidade inadequada
frustram os usuários e muitas vezes são rejeitadas ou subutilizadas. Se a funcionalidade é
inadequada, não importa o quão bem a interface é projetada, da mesma maneira que fornecer
funcionalidade excessiva (que é provavelmente o erro mais comum de designers) também é um
perigo, porque a desordem e a complexidade tornam a implementação, manutenção, aprendizagem,
e uso mais difícil.
Ainda falando sobre funcionalidade, Mazzola (2010) define um dos atributos de
funcionalidade, a compatibilidade: “facilidade com a qual produtos de software podem ser
combinados com outros”. Este é um fator relativamente importante, dado que um produto de
software é construído (e adquirido) para trabalhar convivendo com outros softwares. A
impossibilidade de interação com outros produtos pode ser, sem dúvida, uma característica que
resultará na não escolha do software ou no abandono de sua utilização.
Os requisitos funcionais podem incluir (Rational, 2001): conjuntos de recursos, habilidades e
segurança.
46
3. Mineração de Dados
Segundo Silva (2008), a informação vem desempenhando um papel fundamental em todos
os setores da sociedade. O desenvolvimento e sucesso das organizações baseiam-se na capacidade
de coletar, tratar, interpretar e utilizar a informação de forma eficaz. No entanto, vê-se nos últimos
anos um grande volume de dados gerados devido ao rápido avanço dos recursos computacionais.
Esse crescimento do volume de dados tem gerado a necessidade de novas técnicas e ferramentas
capazes de transformar dados em informações significativas e em conhecimento. Em resposta a essa
necessidade, surgiu a Mineração de Dados (Data Mining).
Mineração de Dados, faz parte de um processo maior denominado Descoberta de
Conhecimento em Banco de Dados (Knowledge Discovery in Database – KDD), onde a própria
Mineração de Dados e as outras partes são apenas instâncias do KDD (Braga, 2005).
Antes de prosseguir com mais detalhes sobre a Mineração de Dados e KDD, é importante
conceituar alguns termos que estão intimamente ligados a eles. Segundo Rezende (2005), dado é um
elemento da informação, um conjunto de letras ou dígitos, que tomado isoladamente não confere
nenhum conhecimento, ou seja, não contém um significado claro. Eles representam a matéria-prima
a ser utilizada na produção de informações. Já a informação é todo dado trabalhado, útil, com valor
significativo atribuído ou agregado a ele, e com um sentido natural e lógico para quem usa a
informação, ou seja, informação são dados que sofreram algum tipo de processamento para serem
exibidos em uma forma inteligível às pessoas. Quando a informação é “trabalhada” por pessoas ou
por recursos computacionais, possibilitando a geração de cenários, simulações e oportunidades, esta
pode ser chamada de conhecimento. O conceito de conhecimento complementa o de informação
com valor relevante e de propósito definido. Conhecimento são informações que sua confiabilidade,
importância e relevância foram analisadas e avaliadas.
47
3.1. Descoberta de Conhecimento em Banco de Dados (Knowledge
Discovery in Database – KDD)
Descoberta de Conhecimento em Banco de Dados, ou apenas KDD, é o processo que
envolve a automação da identificação e do reconhecimento de padrões em banco de dados (Silva,
2008). Segundo Braga (2005), o termo KDD foi criado em 1995 para designar o conjunto de
processos, técnicas e abordagens que propiciam o contexto no qual a Mineração de Dados terá lugar.
Em suma, é a aplicação do método científico moderno aos problemas do mundo dos negócios. O
KDD é o processo não trivial de identificar padrões válidos, novos, potencialmente úteis e,
finalmente, compreensível em dados. Este processo vem evoluindo a partir da interseção de campos
de pesquisa, tais como aprendizagem de máquina, reconhecimento de padrões, banco de dados,
estatística, inteligência artificial, aquisição de conhecimento para sistemas especialistas,
visualização de dados e computação de alta performance. O objetivo desta junção é a extração de
conhecimento de alto nível a partir de dados de baixo nível, em um contexto de grandes conjuntos
de dados (Fayyad, 1996).
Ainda segundo Fayyad (1996), pode-se dividir o KDD em etapas como mostra a Figura 9. O
primeiro passo no processo de KDD é entender o domínio da aplicação, identificar o problema e
definir os objetivos a serem atingidos. O processo inicia com os dados brutos e finaliza com a
extração de conhecimento (Martinhago, 2005).
48
Figura 9: Etapas do KDD.
Fonte: (Fayyad, 1996)
Seguem as etapas do KDD:
• Seleção: este é o passo da seleção e coleta do conjunto de dados ou variáveis necessárias.
Como nem sempre todos os dados a serem utilizados podem estar disponibilizados em bases
de dados adequadas, pode haver a necessidade de um trabalho de compatibilidade nesta
etapa (Barbosa, 2007).
• Pré-processamento e Limpeza: é a atividade através da qual dados estranhos ou
inconsistentes e ruídos, são tratados e onde são estabelecidas as estratégias para a resolução
dos problemas de ausência de dados (Barbosa, 2007).
• Transformação: os dados são transformados ou consolidados em formatos apropriados para
minerar, e consiste em discretizar dados (os valores contínuos dos atributos são divididos
numa lista de intervalos, convertendo valores contínuos em valores discretos), com isso
obtém uma melhora da compreensão do conhecimento, redução do tempo de processamento,
diminuição do espaço de busca, facilitação do algoritmo de tomada de decisões, agregação
de dados (agrega dados existentes nas informações de modo que essas agregações
contribuam no processo de descoberta de conhecimento), derivação de dados (adicionam-se
49
novos dados derivados por uma operação ou por séries de operações de dados existentes na
tabela de dados), e redução de dados (reduz-se o número de variáveis a considerar) (Silva,
2008).
• Processamento: os dados são analisados por um algoritmo e transformados em informações
(resultados, padrões) úteis que serão avaliados no processo seguinte e consiste em escolha da
função de mineração de dados, seleção de algoritmo de mineração de dados, e Data Mining
(análise dos dados armazenados através de um programa computacional capaz de analisar os
dados e encontrar padrões de interesse) (Silva, 2008).
• Interpretação e Avaliação: os resultados do processo de descoberta do conhecimento podem
ser mostrados de diversas formas que devem possibilitar uma análise criteriosa na
identificação da necessidade de retorno a qualquer um dos estágios anteriores do processo
de KDD (Barbosa, 2007).
3.2. Mineração de Dados (Data Mining)
De acordo com Barbosa (2007), Mineração de Dados ou Data Mining, é a combinação de
diferentes técnicas de sucesso comprovado (Figura 10), como estatísticas, inteligência artificial, e
banco de dados. Estas técnicas tem como objetivo extrair informações relevantes para o negócio
podendo ser usadas para agregar valor ao mesmo. Conforme Furtado (2002), a Mineração de Dados
consiste na aplicação destas técnicas a grandes bases de dados para encontrar tendências ou
padrões com a finalidade de apoiar decisões. Este conjunto de técnicas de Mineração de Dados é
capaz de reduzir uma grande quantidade de dados em padrões e regras que contém um volume
expressivo de informações. E, como visto anteriormente, a Mineração de Dados é parte de um
processo maior denominado KDD. Entretanto, tornou-se mais conhecida que o KDD, por ser a
etapa em que são aplicadas as técnicas de busca de conhecimentos (Gutierrez e Bertrand, 2005).
50
Figura 10: Técnicas de origem da Mineração de Dados (Data Mining).
Fonte: Barbosa, 2007.
3.2.1 Linhagens da Mineração de Dados
A Mineração de Dados, descende fundamentalmente de 3 linhagens: estatística clássica,
inteligência artificial (IA) e o aprendizado de máquina (casamento entre a estatística e a IA) (Pampa
2003 apud Silva 2008).
• Estatística: a Estatística Clássica envolve conceitos como variância, distribuição normal,
desvio simples, análise de regressão, análise de conjuntos, intervalos de confiança e análise
de discriminante, todos usados para o estudo dos dados e seus relacionamentos (Barbosa,
2007).
• Inteligência Artificial: é uma disciplina com base nos fundamentos da heurística,
diferentemente da estatística, sua tentativa é a de imitar a maneira como o homem pensa na
resolução dos problemas estatísticos (Barbosa, 2007).
• Aprendizado de Máquina: pode-se descrever como a união entre a estatística e a IA, tenta
fazer com que os programas de computador "aprendam" com os dados estudados por eles,
51
de forma que esses programas tomem diferentes decisões com base nas características dos
dados estudados (Barbosa, 2007).
3.2.2 Tarefas da Mineração de Dados
Martinhago (2005) em seu trabalho define tarefa como um problema de descoberta de
conhecimento a ser solucionado. E, de acordo com este autor, no KDD existem diversas tarefas que
dependem principalmente do domínio de aplicação e do interesse do usuário. Cada uma delas tem a
finalidade de extrair um tipo diferente de conhecimento da base de dados e podendo requerer um
algoritmo diferente em cada tarefa. Amo (2004), diz que tarefa consiste na especificação do que
estamos querendo buscar nos dados, que tipo de regularidades ou categoria de padrões temos
interesse em encontrar, ou que tipo de padrões poderiam nos surpreender.
A etapa de Mineração de Dados no KDD possui tarefas básicas, que são classificadas nas
categorias descritivas e preditivas, que são: Classificação, Associação, Segmentação, Estimativa, e
Sumarização. As descritivas procuram padrões interpretáveis pelos humanos que descrevem os
dados antes de realizar a previsão, sendo útil ao suporte a decisão. Já as preditivas envolvem o uso
dos atributos de um conjunto de dados para prever o valor futuro da variável meta, sendo útil à
tomada de decisões (Rezende, 2005).
• Classificação: diz respeito a predição de uma variável-alvo que é de uma natureza
categórica. Ou, em outras palavras, observar as características de um objeto e alocá-lo em
uma classe predefinida: tal como fraudulento/não-fraudulento, comprador, não-comprador
(Gutierrez e Bertrand, 2005). Conforme Rezende (2005), a tarefa de classificação é uma
função de aprendizado que mapeia dados de entrada, ou conjunto de dados de entrada em
um número finito de categorias. Nela cada exemplo pertence a uma classe, entre um
conjunto predefinido de classes. Os exemplos consistem de um conjunto de atributos e um
atributo-classe discreto. O objetivo de um algoritmo de classificação é encontrar algum
52
relacionamento entre atributos e uma classe, de modo que o processo de classificação possa
usar este relacionamento para predizer a classe de um exemplo novo e desconhecido.
• Associação: conforme Romão (2002), uma das tarefas mais simples e mais conhecidas em
Mineração de Dados é conhecida por Extração de Regras de Associação na forma SE X
ENTÃO Y, onde X e Y são conjuntos de itens. Amo (2004) diz que uma regra de associação
é um padrão da forma X Y , onde X e Y são conjuntos de valores (artigos comprados por→
um cliente, sintomas apresentados por um paciente, etc). Esta tarefa visa a combinação de
itens importantes, de forma que a presença de um item em uma determinada transação
pressupõe a presença de outro na mesma transação. Esta tarefa pode ser exemplificada pelo
clássico exemplo norte-americano, em que um varejista descobriu que compra de fraldas
estaria relacionada com aquisição de cervejas (Gutierrez e Bertrand, 2005).
• Segmentação (clustering): segundo Rezende (2005)¹, esta é uma tarefa descritiva que
procura identificar um conjunto finito de agrupamentos, ou clusters, a partir dos dados. Isso
é feito, geralmente, de maneira que exemplos com valores de atributos similares são
agrupados em um mesmo cluster. O autor ainda ressalta que os clusters podem ser
mutuamente exclusivos ou sobrepostos. Gutierrez e Bertrand (2005) citam a segmentação,
ou clustering, como a tarefa que objetiva reunir objetos em grupos, de modo que, os objetos
de um grupo devem ser os mais semelhantes entre si e os menos semelhantes a objetos de
outros grupos. Amo (2004) afirma que diferentemente da classificação e predição onde os
dados de treinamento estão devidamente classificados e as etiquetas das classes são
conhecidas, a análise de clusters trabalha sobre dados onde as etiquetas das classes não estão
definidas. A tarefa consiste em identificar agrupamentos de objetos, agrupamentos estes que
identificam uma classe. A segmentação, ou clustering, pode encontrar além de grupamentos,
exceções, podendo ser aplicada, por exemplo, em atividades de marketing para identificar os
segmentos de mercado, para encontrar estruturas significativas nos dados e na descoberta de
fraudes ou dados incorretos (Martinhago, 2005 apud Groth, 1998).
• Estimativa (regressão): para Gutierrez e Bertrand (2005), estimativa é um processo
semelhante a classificação, mas diz respeito a variáveis-alvo contínuas, ainda conforme os
autores, estimativa e classificação são os principais objetivos em tarefas de Mineração de
53
Dados. Rezende (2005) também diz que a tarefa de estimativa é conceitualmente similar a de
classificação, sendo a principal diferença o atributo predito, que em vez de ser discreto é
contínuo.
• Sumarização: a tarefa de sumarização envolve métodos para encontrar uma descrição
compacta para um subconjunto de dados (Fayyad et a, 1996).
3.2.3 Técnicas de Mineração de Dados
A técnica de mineração consiste na especificação de métodos que garantam como descobrir
os padrões que interessam (Amo, 2004). A área de Mineração de Dados engloba um vasto campo de
técnicas analíticas, variando das simples até as sofisticadas. Uma característica comum a todas,
porém, é que as técnicas se baseiam em princípios muito simples que são compreensíveis até
mesmo para aqueles indivíduos sem treino matemático ou estatístico. Na Mineração de Dados,
muitas das técnicas tomam princípios básicos como comparação (regras de associação) ou analogias
biológicas (redes neurais e algoritmos genéticos) como a base para o procedimento (Hair et al,
1998). As técnicas de mineração de dados podem ser aplicadas a tarefas como classificação,
estimativa, associação, segmentação e sumarização (Dias, 2002).
A Mineração de Dados é um campo que, atualmente, compreende muitas ramificações
importantes. Cada tipo de tecnologia tem suas próprias vantagens e desvantagens. A familiaridade
com as técnicas é necessária para facilitar a escolha de uma delas de acordo com os problemas
apresentados (Dias, 2002). Atualmente existem várias técnicas de Mineração de Dados, no entanto,
este trabalho apresenta a seguir a descrição de algumas das principais técnicas mais citadas na
literatura. São elas: redes neurais, árvores de decisão, algoritmos genéticos, indução de regras, e
raciocínio baseado em casos.
• Redes Neurais: Redes Neurais são uma das ferramentas mais adequadas para serem
associadas com Mineração de Dados. Inspirada no funcionamento do sistema neurológico
54
do cérebro, a rede neural tenta “aprender”, por tentativas repetidas, como melhor se
organizar para conseguir previsão máxima (Hair et al, 1998). Dias (2002) define como
modelos inspirados na fisiologia do cérebro, onde o conhecimento é fruto do mapa das
conexões neuronais e dos pesos dessas conexões. As Redes Neurais tentam construir
representações internas de modelos ou padrões detectados nos dados, mas essas
representações não são apresentadas para o usuário. Estes elementos de processamento são
interconectados em uma rede que pode identificar padrões nos dados uma vez expostos aos
mesmos, ou seja, a rede aprende através da experiência, tais como as pessoas (Barbosa,
2007).
• Árvores de Decisão: Hair (1998) define Árvores de decisão como uma partição sequencial
do conjunto de dados a fim de maximizar as diferenças em uma variável dependente. Ainda
de acordo com o autor os dois programas mais amplamente usados são CHAID (Detector de
Interação Qui-Quadrado), e CART (Árvores de Classificação e Regressão). As Árvores de
decisão fornecem um modo conciso para desenvolver grupos que são consistentes em seus
atributos, mas variam em termos da variável dependente. Barbosa (2007) diz que este
método é indicado no uso da Mineração de Dados quando o objetivo é a classificação de
dados ou a predição de saídas.
• Algoritmos Genéticos: estes são métodos de busca e otimização, inspirados na Teoria da
Evolução, onde cada nova geração, soluções melhores tem mais chances de ter
“descendentes” (Dias, 2002). Algoritmos Genéticos imitam o processo evolucionário
usando seleção natural. Eles começam com uma pequena quantidade de possíveis soluções
para um problema, e lentamente, com o passar do tempo a seleção natural “elimina” as
soluções inferiores e resulta em um melhoramento geral, continuando o processo até que
níveis aceitáveis de previsão são alcançados. Uma vantagem obtida com os algoritmos
genéticos é que eles geralmente convergem para a solução ótima. A desvantagem é que isto
pode levar muitas gerações e um grande número de indivíduos é exigido (Hair et al, 1998).
• Indução de Regras: Indução de Regras é o processo de analisar uma série de dados e, a partir
dela, gerar padrões. O processo é, em sua essência, semelhante àquilo que um analista
humano faria em uma análise exploratória. A técnica em questão se refere a detecção de
55
tendências dentro de grupos de dados ou de "regras" sobre os dados. As regras são, então,
apresentadas aos usuários como uma lista "não encomendada", ou seja, sem que obedeçam
algum critério previamente estabelecido. Realiza a descoberta de regras de previsão, do tipo
SE...ENTÃO, onde a parte SE (a "condição") da regra especifica alguns valores de atributos
previsores e a parte ENTÃO da regra prevê um valor para um determinado atributo cuja
previsão é desejada (Barbosa, 2007). A indução de regras estabelece uma correlação
estatística entre atributo de dados e conjunto de dados (Dias, 2002). Nesta técnica duas
medidas são aplicadas para avaliar as associações. A primeira é a confiança, medida como a
possibilidade de um evento ocorrer quando um outro também acontecer. A segunda medida
é o suporte, que é o percentual de tempo que o evento conjunto acontece na população total
(Hair et al, 1998).
• Raciocínio Baseado em Casos: baseado no método do vizinho mais próximo, combina e
compara atributos para estabelecer hierarquia de semelhança (Dias, 2002). Também
conhecido como MBR (Raciocínio Baseado em Memória), utiliza como base o método do
vizinho mais próximo, e tenta solucionar um dado problema fazendo uso direto de
experiências e soluções passadas, podendo utilizar como medida da exatidão dos resultados
a distância dos vizinhos (Martinhago, 2005). Esta técnica é apropriada para as tarefas de
classificação e segmentação.
Em seguida, pode-se observar na Tabela 3 uma relação entre tarefas, técnicas, e alguns
exemplos de aplicações das mesmas.
Tabela 3: Relação entre Técnica e Tarefa de Mineração de Dados.
Técnicas Tarefas Exemplos
Redes Neurais Classificação e
Segmentação
Perceptron; Rede MLP; Redes de Kohonen; Rede Hopfield;
Rede BAM; Redes ART; Rede IAC; Rede LVQ; Rede
Counterpropagation; Rede RFB; Rede PNN; Rede Time Delay;
Neocognitron; Rede BSB; ou outros.
Árvores de Decisão Classificação CART; CHAID; C5.0/See5; Quest; ID-3; C4.5; SLIQ;
56
SPRINT; ou outros.
Algoritmos
Genéticos
Classificação e
Segmentação
Algoritmo Genético Simples; Genitor; CHC; Algoritmo de
Hillis; GA-Nuggets; GA-PVMINER; ou outros.
Indução de Regras Associação Apriori; AprioriTid; AprioriHybrid; AIS; SETM; e DHP;
Raciocínio Baseado
em Casos
Classificação e
Segmentação
BIRCH; CLARANS; CLIQUE; ou outros.
57
4. Avaliação da Qualidade do Produto de Software através de
Mineração de Dados
Baseado nos capítulos anteriores, e no referencial teórico apresentado neste trabalho,
utilizou-se uma metodologia onde a qualidade do produto de software é avaliada de acordo com o
grau de satisfação dos usuários, ou seja, de acordo com a qualidade da interação entre os usuários e
os produtos de software. Como forma de extração de conhecimento da avaliação, esta metodologia
utiliza a Mineração de Dados. Esta metodologia foi proposta por Silva (2008), cujo objetivo é
definir quais critérios precisam ser melhorados para garantir a qualidade do software e quais grupos
de usuários possuem maior ou menor dificuldade para possível correção direcionada as reais
necessidades.
A metodologia é baseada em três etapas, tais como, seleção dos critérios que serão avaliados
no software; seleção da técnica de avaliação que será utilizada; e tratamento das etapas do KDD
(Silva, 2008).
4.1 Seleção dos Critérios e da Técnica de avaliação
Primeiramente deve-se selecionar as características presentes na ISO 9126-1 que sejam
facilmente percebidas pelos usuários comuns (Silva, 2008), que são mostradas, bem como suas sub-
características, na Tabela 4.
58
Tabela 4: Características, Sub-características e Critérios utilizados na avaliação do software.
Fonte: Silva (2008).
Características Sub-características Critérios
Funcionalidade Acurácia e Segurança de acesso Precisão, Validação dos Dados e
Segurança
Confiabilidade Tolerância à falhas e Recuperabilidade Recuperação de Dados e Resistência aos
Erros.
Usabilidade Operacionalidade, Atratividade,
Apreensibilidade e Inteligibilidade
Help, Navegação, Documentação,
Glossário, Aproveitamento de Dados,
Mensagens e Padronização
Eficiência Comportamento em relação ao tempo Tempo de Processamento
Definidas as características, deve-se escolher a técnica de avaliação de satisfação do usuário,
que no caso deste trabalho, será a pesquisa de opinião através de questionários (Figura 11),
escolhida por apresentar baixo custo, rapidez de aplicação e dispensar a participação de
especialistas. Após a coleta dos dados, estes são armazenados em um banco de dados para,
posteriormente, serem trabalhados nas etapas seguintes.
59
Figura 11: Questionário utilizado como forma de avaliação da satisfação do usuário.
Fonte: adaptado de Silva (2008).
O questionário encontra-se também como apêndice deste trabalho e pode-se observar de
forma mais clara os itens que o compõem, como os referentes ao usuário, aos critérios do software,
bem como sua descrição, e, a satisfação do usuário em relação ao software. Os itens referentes ao
usuário são: módulo do software que utiliza/utilizou; nome do usuário; setor em que trabalha; cargo
que ocupa; e o tempo de experiência no software a ser avaliado, em anos. Os itens referentes aos
critérios são: validação dos dados; documentação; glossário; help; mensagens; navegação;
padronização; precisão; aproveitamento dos dados; recuperação de dados; resistência aos erros;
segurança; e tempo de processamento, que podem ser classificados pelos usuários como Muito
Bom, Bom, Médio, Ruim, Péssimo, ou Inexistente. Já a satisfação do usuário em relação ao
software pode ser classificada pelo mesmo como alta, média, ou baixa.
60
4.2 Etapas do KDD
A metodologia em questão irá aplicar as etapas do KDD no estudo de caso apresentado no
capítulo seguinte. Aqui são apresentadas as formas como isso acontecerá. Neste trabalho segue-se a
abordagem utilizada por Silva (2008), onde as etapas estão divididas da seguinte forma: seleção,
pré-processamento, transformação, mineração de dados, pós-processamento (análise).
• Seleção: nesta etapa é identificado o domínio utilizado para a geração de conhecimento, e
utilizar-se-á os dados coletados através do questionário apresentado anteriormente.
• Pré-processamento: aqui, elimina-se campos referente aos usuários, no caso, os campos
nome e setor, pois não há a necessidade desta identificação, porque tal informação não irá
influenciar no conhecimento da qualidade do software utilizado. É também eliminado dos
registros os campos com resposta nula, pois estes influenciam negativamente para a
obtenção de resultados úteis.
• Transformação: será realizada nesta etapa a transformação do campo tempo de experiência.
Da medida em anos, passará aos valores nominais em conformidade com os níveis que são:
novato, médio, e experiente. Para que isto seja possível, é necessário a obtenção do intervalo
entre os tempos mínimo e máximo da amostra, e dividi-lo em três faixas. Poderá também
haver transformação no formato da base de dados, dependendo do software de mineração
que será utilizado.
• Mineração de Dados: serão utilizadas três tarefas de mineração de dados nesta etapa, para
que seja possível uma análise mais precisa e abrangente, com objetivo de se obter algum
conhecimento útil para a avaliação, as tarefas que serão utilizadas são: Clusterização,
Associação e Classificação. A combinação destas tarefas é importante, pois nem sempre
apenas uma tarefa tem a capacidade de se extrair conhecimentos desejados ou necessários de
uma base de dados. A Tabela 5 apresenta as tarefas, técnicas e algoritmos propostos para a
utilização. Esses algoritmos propostos para utilização no estudo de caso, são baseados em
suas inúmeras utilizações em casos práticos e citações na literatura. Para se realizar estes
61
processamentos, pode-se utilizar de uma mesma ferramenta para cada um dos algoritmos
propostos, caso esta ofereça os algoritmos citados. Caso contrário, poderá ser utilizado um
conjunto de ferramentas para o processamento de cada um dos algoritmos.
Tabela 5: Tarefas, Técnicas e Algoritmos a serem utilizados.
Tarefas Técnicas Algoritmos
Clusterização Algoritmo de Clusterização SimpleKMeans
Associação Algoritmo de Associação Apriori
Classificação Árvore de Decisão RandomTree
• Pós-processamento (análise): esta é a fase onde os resultados são interpretados e analisados,
utilizando apenas os resultados que interessam para a avaliação da qualidade. É esperado
para a tarefa de clusterização a identificação dos grupos de critérios mais próximos, para
que haja a capacidade de observar o grupo relacionado a satisfação alta, media ou baixa.
Para a tarefa de associação espera-se a identificação de regras que relacionem os critérios
apresentados. Na tarefa de classificação espera-se a identificação do nível de satisfação do
usuário de acordo com os itens apresentados no questionário referentes aos usuários.
62
5. Metodologia e Estudo de caso
A metodologia utilizada neste trabalho divide-se em:
• Levantamento de referências bibliográficas sobre qualidade de software, qualidade em uso
e mineração de dados;
• Estudo de uma metodologia para avaliar a qualidade do produto de software através da
mineração de dados;
• Seleção de um produto de software;
• Aplicabilidade da metodologia estuda em relação ao produto de software selecionado
(estudo de caso);
• Análise do produto de software selecionado;
• Estudo do software de mineração de dados (Weka);
• Aplicação do questionário e coleta das informações;
• Tratamento da base de dados;
• Aplicação das técnicas de mineração de dados;
• Análise dos resultados.
O estudo de caso foi feito utilizando a metodologia apresentada no Capítulo 4. O software
avaliado foi o Sistema Integrado de Gestão Acadêmica (SIGA), e depois aplicada a Mineração de
dados para a descoberta de informação, utilizando a ferramenta Weka. Nesse capítulo serão
apresentados o software SIGA, a ferramenta Weka e o resultado do estudo de caso realizado.
5.1. Sistema SIGA
O SIGA é um sistema desenvolvido no Projeto SIGA-EPCT, como a própria sigla
63
demonstra, é um Sistema Integrado de Gestão Acadêmica da Educação Profissional e Tecnológica
desenvolvido com tecnologias livres e de forma colaborativa por várias instituições federais do
Brasil. Esse projeto tem o apoio do Ministério da Educação do Brasil - MEC, através da Secretaria
da Educação Profissional e Tecnológica - SETEC (Renapi, 2012).
Atualmente, o projeto SIGA-EPCT dispõe de duas áreas de ação. De acordo com o portal da
Renapi (2012), a primeira ação é a de adaptar um sistema administrativo existente, dando origem ao
chamado SIGA-ADM (Sistema Integrado de Gestão Acadêmica Administrativa). A outra ação
consiste no desenvolvimento de um novo sistema que contemple todos os processos acadêmicos de
uma instituição, o SIGA-EDU (Sistema Integrado de Gestão Acadêmica da Educação). O Sistema
avaliado nesse trabalho faz parte do SIGA-ADM, que com o intuito de atender às expectativas no
menor espaço de tempo possível, procurou identificar a existência de sistemas de gestão acadêmica
em funcionamento que atendessem as necessidades da rede de ensino.
O sistema que mais se aproximou das características definidas, foi o da Universidade
Federal de Juiz de Fora (UFJF). Diante disso, a universidade foi convidada a integrar o projeto, na
condição de núcleo de pesquisa e desenvolvimento. Essa instituição disponibilizou os módulos
administrativos do seu sistema, para que os integrantes do projeto pudessem estudá-los e adaptá-los
segundo a realidade da EPT (Renapi, 2012).
Os módulos administrativos contemplados pelo SIGA-ADM oferecem as seguintes
funcionalidades: Requisições online de Almoxarifado, Compras, Diárias, Hotel, Passagens;
Restaurante, Serviços externos e Veículos; Controle de pagamento de bolsas oferecidas pela
instituição; Licitação de materiais e serviços; Controle orçamentário; Controle contábil; Controle de
empenhos; Controle de pagamentos; Patrimônio; Almoxarifado; Protocolo e Recursos Humanos.
No Instituto Federal Fluminense Campus Campos Centro, campus no qual também fica
localizada a Reitoria da Instituição, os módulos implantados são Protocolo e Requisição de
Veículos, que serão alvo do estudo de caso realizado nesse trabalho.
O Módulo Protocolo (Figura 12) consiste no controle de entrada, andamento e saída dos
processos na Instituição. Seu principal objetivo é prover aos usuários o acompanhamento dos
processos que tramitam em vários setores, possibilitando identificar onde o processo se encontra e
no caso de extravio, identificar o setor responsável.
64
Figura 12: Tela inicial do Módulo Protocolo.
O fluxo ideal tem seu início com a abertura de um processo que pode ser mantido no setor
de origem (status: Normal) ou dada saída para outro (status: Aguardando Entrada). Ao dar saída, o
processo fica aguardando que o responsável pelo setor dê entrada no processo, ao dar entrada o
status do processo passa para “Normal”, assim sucessivamente, de acordo com o trâmite do
processo na Instituição. Ao final, o processo pode ser “Arquivado”.
No Módulo Requisição de Veículos (Figura 13), como o próprio nome diz, permite aos
funcionários solicitar a reserva de veículos para viagens a trabalho. Para utilização do módulo, há
diferentes perfis: solicitante, solicita a reserva do veículo; gestor, que aprova a solicitação e
executante, que é o responsável pelo setor que coordena a utilização dos veículos da Instituição.
65
Figura 13: Tela inicial do Módulo Requisição de Veículos, perfil Requisitante.
O fluxo ideal de uma requisição tem o seu início através do Requisitante, que após realizar a
solicitação, a mesma é avaliada pelo Gestor e caso seja aprovada, segue direto para ser liberada para
execução. No retorno da viagem, o motorista entrega a ficha de Requisição de Veículo para o
Executor, que ao concluí-la permite que o Requisitante realize a avaliação do serviço prestado.
5.2. Weka
A ferramenta Weka, de acordo com Witten e Frank (2005), foi desenvolvida na
Universidade de Waikato, na Nova Zelândia, e o nome significa Waikato Ambiente para Análise do
Conhecimento (Waikato Enviroment for Knowledge Analysis). Fora da universidade o nome Weka, é
pronunciado para rimar com Meca, uma ave que não voa, com uma natureza inquisitiva encontrada
apenas nas ilhas da Nova Zelândia. O sistema é escrito em Java e distribuído sob os termos da
Licença Pública Geral GNU e roda em qualquer plataforma. O sistema fornece uma interface
uniforme para diversos algoritmos de aprendizagem, juntamente com métodos para pré e pós-
processamento e para avaliar o resultado da aprendizagem de qualquer conjunto de dados
determinado (WITTEN, FRANK; 2005).
66
Figura 14: Tela inicial da ferramenta Weka
Ainda segundo os autores, a ferramenta Weka fornece métodos para os problemas de
mineração de dados padrão: regressão, classificação, clusterização, mineração de regras de
associação e seleção de atributo. Uma maneira de usar Weka é aplicar um método de aprendizagem
sobre um conjunto de dados e analisar a sua saída para saber mais sobre os dados. Outra
possibilidade é usar modelos de aprendizagem para gerar previsões em novas instâncias. Uma
terceira opção é a aplicação de vários modelos de aprendizagem diferentes e comparar o seu
desempenho, a fim de escolher um para a predição.
A ferramenta encontra-se disponível em http://www.cs.waikato.ac.nz/ml/weka e a versão
utilizada nesse trabalho é a 3.6.5. A escolha da ferramenta se justifica por ela apresentar as
seguintes características: Software Livre, Facilidade de Download, Facilidade de Instalação,
Usabilidade e Quantidade de Algoritmos, pois apresenta todos os algoritmos selecionados na
metodologia apresentada no capítulo 4. Nesse trabalho são realizadas as tarefas de clusterização,
classificação e associação; como pode ser visto na sessão 5.3.
67
5.3. Caracterização da amostra
O estudo de caso foi realizado com usuários no Instituto Federal Fluminense, pertencentes
ao Campus Campos Centro e Reitoria. Participaram da pesquisa usuários dos seguintes setores
(Tabela 6):
Tabela 6: Setores que participaram da pesquisa e a quantidade de usuários por setor
SIGLA SETOR USUÁRIOS
CAI Coordenação da Área de Indústria 1
CCTQ Coordenação do Curso Técnico de Química 2
CLC Coordenação de Licitação e Compras 1
DDA Diretoria do Departamento Administrativo 1
DDGFO Diretoria do Departamento de Gestão Financeira e Orçamentaria 4
DEB Diretoria de Ensino Básico 1
DESCSTB Diretoria de Ensino Superior dos Cursos Superiores de Tecnologia
e Bacharelado
1
DGC Diretoria Geral do Campus 1
DPPG Diretoria de Pesquisa e Pós-Graduação 1
PROREN Pró-Reitoria de Ensino 1
O estudo foi realizado com 14 usuários, sendo que 6 deles avaliaram o módulo Requisição de
Veículos e 8 avaliaram o módulo Protocolo. A quantidade de usuários escolhida se justifica de
acordo com o estudo realizado por Nielsen (1993). Segundo esse estudo, um único avaliador
encontra 35% dos problemas de utilização nas interfaces, porém há uma “agradável recompensa” ao
usar cinco avaliadores, onde 75% dos problemas são encontrados. Baseado nisso, Nielsen conclui
que “parece razoável recomendar o uso de cerca de cinco avaliadores”.
68
5.3.1. Aplicação da metodologia para o SIGA
Aplicação das Etapas do KDD:
• Seleção: a base de dados criada com as informações dos questionários de avaliação.
• Pré-Processamento: os campos nome e setor foram eliminados, pois há uma grande
variedade de setores entre os usuários entrevistados e, não há a necessidade da identificação
dos usuários, sendo dados que não trariam informação relevante.
◦ nenhum registro foi eliminado, pois o processo de aplicação dos questionários foi
acompanhado, evitando assim que houvessem registros nulos ou o preenchimento
incorreto.
• Transformação: o menor tempo na amostra foi de 6 meses e o maior de 5 anos. Então foi
criado um intervalo dividido em três faixas: Novato (tempo <= 1), Médio (1 < tempo <=3) e
Experiente (3 < tempo <= 5).
◦ Os dados dos questionários foram passados para o arquivo Questionário.xls (criado em
LibreOffice Calc) e depois exportados para o formato csv (Comma-Separated
Variables), contendo 18 atributos² e 14 instâncias³. É possível importar esse formato de
arquivo na ferramenta Weka, porém o formato arrf (Attribute-Relation File Format)
permite descrever uma lista de instâncias que compartilham um conjunto de atributos e
definir a ordem que os atributos serão apresentados (Figura 15).
@relation Questionario
@attribute 'MÓDULO' {'P','V'}
@attribute 'CARGO' {'DIRETOR','COORDENADOR','ASSISTENTE ADMIN.','RECEPCIONISTA', 'BOLSISTA'}
@attribute 'TEMPO DE EXPERIÊNCIA' {'NOVATO','MÉDIO','EXPERIENTE'}
@attribute 'VALIDAÇÃO' {MB,B,M,R,P,I}
@attribute 'DOCUMENTAÇÃO' {MB,B,M,R,P,I}
@attribute 'GLOSSÁRIO' {MB,B,M,R,P,I}
@attribute 'HELP' {MB,B,M,R,P,I}
@attribute 'MENSAGENS' {MB,B,M,R,P,I}
69
@attribute 'NAVEGAÇÃO' {MB,B,M,R,P,I}
@attribute 'PADRONIZAÇÃO' {MB,B,M,R,P,I}
@attribute 'PRECISÃO' {MB,B,M,R,P,I}
@attribute 'APROVEITAMENDO DOS DADOS' {MB,B,M,R,P,I}
@attribute 'RECUPERAÇÃO DE DADOS' {MB,B,M,R,P,I}
@attribute 'RESISTÊNCIA AOS ERROS' {MB,B,M,R,P,I}
@attribute 'SEGURANÇA' {MB,B,M,R,P,I}
@attribute 'TEMPO DE PROCESSAMENTO' {MB,B,M,R,P,I}
@attribute 'SATISFAÇÃO' {'BAIXA','MÉDIA','ALTA'}
@data
'REQUISIÇÃO DE VEÍCULOS','BOLSISTA','NOVATO',R,I,I,I,M,B,B,B,B,P,R,B,B,'MÉDIA'
'REQUISIÇÃO DE VEÍCULOS','DIRETOR','MÉDIO',M,I,I,I,M,M,B,MB,R,R,R,MB,M,'BAIXA'
'PROTOCOLO','COORDENADOR','MÉDIO',MB,MB,I,I,MB,MB,MB,MB,M,R,R,M,MB,'MÉDIA'
'PROTOCOLO','DIRETOR','EXPERIENTE',R,I,R,I,R,M,B,R,R,R,R,M,B,'MÉDIA'
...
Figura 15: Arquivo Questionário.arff.
• Mineração de Dados: utilização da ferramenta Weka para mineração de dados.
• Pós-Processamento: Análise e interpretação dos resultados. Nas próximas sessões são
apresentados os resultados obtidos e é feita uma análise e interpretação dos mesmos.
5.3.1.1. Resultados e Análises com Algoritmo de Clusterização
Tabela 7: Relação entre Tarefa e Técnica para Clusterização.
Tarefa Técnica Algoritmo
Clusterização Algoritmo de
Clusterização
SimpleKmeans
70
• Análise da satisfação em relação ao módulo utilizado:
Tabela 8: Módulo X Satisfação (Atributos ignorados: Cargo e Tempo de Experiência).
Em ambos os módulos o nível de satisfação é o mesmo: “Médio”, o que permite constatar
que o sistema possui um padrão e que os módulos são semelhantes, gerando o mesmo grau de
satisfação aos usuários de diferentes módulos. É possível verificar também, que alguns atributos
coincidem em uma avaliação negativa, evidenciando uma deficiência no desenvolvimento dos
módulos, como o atributo “Recuperação dos dados” e “Resistência a erros”, onde em ambos a
avaliação é “Ruim”. Além disso, os usuários consideraram como “Inexistente”, o “Glossário” e o
“Help” por não apresentar esse item no sistema ou não terem tido acesso.
71
• Análise da Satisfação em relação ao cargo exercido:
Tabela 9: Cargo X Satisfação (Atributos Ignorados: Módulo e Tempo de Experiência).
Verificou-se que o maior nível de satisfação incide sobre os usuários do cargo “Bolsista”,
podendo concluir que a falta de experiência comum a ocupação, diminui a exigência quanto ao
sistema utilizado. Além disso, normalmente se tratam de pessoas jovens, que notoriamente possuem
maior aceitação a novas ferramentas e maior adaptabilidade a novos ambientes.
5.3.1.2. Resultados e Análises com Algoritmo de Associação
Tabela 10: Relação entre Tarefa e Técnica para Associação.
Tarefa Técnica Algoritmo
Associação Algoritmo de Associação Apriori
72
As regras mais importantes foram:
Tabela 11: Regras Identificadas.
Satisfação=Média ==> Glossário=I Help=I Tempo de Processamento=MB conf:(1)
Satisfação=Média ==> Glossário=I Precisão=MB conf:(1)
Satisfação=Média ==> Recuperação de Dados=R Resistência aos Erros=R conf:(1)
Satisfação=Alta ==> Navegação=MB Segurança=MB Tempo de Processamento=MB conf:(1)
Satisfação=Alta ==> Cargo=Bolsista conf:(1)
Cargo=Coordenador ==> Satisfação=Média conf:(1)
Analisando os resultados acima:
• 55% dos usuários que classificaram o nível de satisfação na utilização do software como
Médio, consideram o Help e o Glossário como Inexistente, e a Recuperação de Dados e
Resistência aos Erros como Ruim, porém avaliaram como Muito Bom a Precisão e o Tempo
de Processamento.
• 100% dos usuários que classificaram o nível de satisfação na utilização do software como
Alta, consideram Muito Bom o Tempo de Processamento, a Navegação e a Segurança.
• 100% dos usuários que classificaram o nível de satisfação na utilização do software como
Alta, exercem o cargo de Bolsista.
• 100% dos usuários que exercem o cargo de Coordenador, classificaram o nível de satisfação
na utilização do software como Média.
Através dos resultados apresentados pode-se concluir que:
• Mesmo sendo considerado Inexistente, o Glossário e o Help não tiveram total influência
sobre o grau de satisfação na utilização do software, assim como os critérios Recuperação de
Dados e Resistência a Erros, mesmo sendo ruins não impactaram totalmente na utilização do
software permitindo que sua avaliação permanecesse como Média.
73
• Foi possível estabelecer uma relação entre o cargo exercido na Instituição, ao nível de
satisfação na utilização do software.
• Os atributos Tempo de Processamento, Navegação e Segurança foram relevantes para a
classificação do nível de satisfação como Alta.
5.3.1.3. Resultados e Análises com Algoritmo de Decisão
Tabela 12: Relação entre Tarefa e Técnica para Decisão.
Tarefa Técnica Algoritmo
Classificação Árvore de Decisão RandomTree
• Critérios: Tempo de Experiência e Satisfação:
Figura 16: Árvore de Decisão (Tempo de Experiência x Satisfação).
O nível de satisfação dos usuários utilizando o sistema se mantém o mesmo independente do
tempo de experiência no sistema.
74
• Critérios: Módulo e Satisfação:
Figura 17: Árvore de Decisão (Módulo x Satisfação).
Assim como na Clusterização, verifica-se que o nível de satisfação dos usuários é o mesmo
nos dois módulos avaliados.
• Critérios: Cargo e Satisfação:
Figura 18: Árvore de Decisão (Cargo x Satisfação).
Através da figura 18 pode-se observar que as informações obtidas divergem das informações
apresentadas no resultado do algoritmo de Clusterização. Os resultados diferentes apareceram nos
cargos “Diretor” e “Bolsista”, cujo o resultado na Clusterização foi “Média” e “Alta”,
75
respectivamente. Nesse caso, essa divergência ocorreu pois na amostra (Anexo III) há a
coincidência, de ambos os cargos apresentarem número par de usuários que se dividiram em 2
grupos de opinião igual, por exemplo, dos 4 usuários que são diretores, 2 consideram a satisfação
“Média” e 2 consideram “Baixa”.
Sendo assim, podemos verificar a importância de se trabalhar com a combinação de várias
análises, para gerar uma conclusão. Nesses 2 casos, podemos verificar que não houve disparidade
entre as respostas (Média e Baixa, Média e Alta), permanecendo válida a análise obtida através da
Clusterização, sem inviabilizar o resultado encontrado na Classificação.
Através da pesquisa realizada foi possível perceber que a maioria dos usuários (64%, 9 dos
14 usuários) consideraram o nível de satisfação como Média. Isto é facilmente percebido no
levantamento dos dados mostrado no Apêndice, arquivo Questionário.xls, e corroborado em todas
as análises realizadas, onde independentemente dos critérios analisados, a maioria classifica a
satisfação como Média. Pode-se assim concluir que de maneira geral o usuário esta satisfeito em
relação ao uso do sistema. Ao mesmo tempo, apesar da maioria ter uma opinião similar, alguns
perfis apresentaram diferentes resultados. Esta informação se torna importante e aplicável, caso
ocorra a implementação de um novo módulo, por exemplo. Se antes de implementar um novo
módulo houver o levantamento do perfil dos usuários que irão utilizá-lo, pode ser feito um
planejamento das melhorias que melhor atenderão a esses usuários, direcionando os
desenvolvedores para os itens que terão prioridade.
Outra informação obtida através da mineração de dados, foram os itens que, de maneira
geral, apresentaram maior aprovação e reprovação por parte do usuário, permitindo definir os
pontos fracos e fortes do sistema, auxiliando a perceber quais melhorias podem ser sugeridas. Sendo
assim, dois itens que necessitam de atenção são os itens “Glossário” (79%) e “Help” (74%),
considerados Inexistentes pela maioria dos usuários, o que mostra claramente a necessidade de criá-
los ou colocá-los em local mais acessível para o usuário. Ainda numa classificação negativa, temos
os itens “Recuperação dos dados” e Resistência aos erros”, considerados pela maioria dos usuários
(57% e 79%, respectivamente) como Ruim ou Péssimo, sendo necessário que sejam revistos e
melhorados. Em contrapartida, os itens “Navegação” e “Padronização” foram classificados como
Muito Bom e Bom, por 79% dos usuários, demostrando uma grande satisfação com a interface e
usabilidade do sistema.
76
6. Conclusão
A satisfação dos usuários é preponderante para o sucesso de um projeto de desenvolvimento
e para a continuidade de utilização de um software. Por isso, a metodologia aplicada buscou o
alinhamento entre as necessidades dos usuários e o software desenvolvido. Desta forma, embora não
seja possível garantir, espera-se que através da aplicação da metodologia apresentada seja possível
aumentar as chances de sucesso dos projetos de desenvolvimento e elevar a qualidade dos produtos
de software
No estudo, as respostas fornecidas pelos usuários do software foram obtidas para as
avaliações de um conjunto de requisitos previamente identificados. Os questionários utilizados para
a avaliação podem servir como uma importante ferramenta de orientação para o processo de
inspeção da qualidade de um produto de software, ajudando a entender as reais necessidades e
anseios dos usuários em relação ao produto.
Através das Análises e Resultados apresentados pelo processo de Mineração de dados é possível
obter algumas informações:
• Os critérios considerados insatisfatórios são identificados, permitindo que sejam melhorados
ou até mesmo criados, nos casos em que foram considerados inexistentes.
• Identificar o grau de satisfação dos usuários com o software utilizado.
• O grau de satisfação de um produto de software pode variar de acordo com o perfil dos
usuários, no caso apresentado, em relação ao tempo de experiência ou cargo exercido.
6.1. Trabalhos futuros
Como trabalho futuro, sugere-se:
• Utilizar da metodologia durante o processo de desenvolvimento do produto de software,
avaliando cada release do sistema, selecionando somente os critérios relacionados,
77
verificando sua aplicação em cada fase do ciclo de desenvolvimento.
• Aproveitar a metodologia apresentada, na avaliação de outros sistemas, alterando os critérios
que forem necessários, de acordo com o software.
• Aumentar a amostra de usuários na avaliação do sistema SIGA, permitindo verificar se
ocorreram significativas alterações nos resultados e/ou comparar com os resultados obtidos.
Tendo em vista esta mesma finalidade, pode-se aplicar outras metodologias de avaliação,
como checklists, diferentes questionários, teste de uso em laboratórios, entre outros.
78
Referências
ABNT: A História da Normalização Brasileira. São Paulo, 2011. Disponível em
<http://www.abnt.org.br/imprensa/livro_abnt/70anos_ABNT.pdf>. Acesso em 07/05/2012.
AGRAWAL, Rakesh; SRIKANT, Ramakrishnan. Fast Algorithms for Mining Association Rules.
1994. Disponível em <http://www.kddresearch.org/Groups/Probabilistic-
Reasoning/Papers/agrawal94fast.pdf>. Acesso em 14/06/2012.
AMO, Sandra de. Técnicas de Mineração de Dados, In: Congresso da Sociedade Brasileira de
Computação, 24., Jornada de Atualização em Informática, 23., 2004, Salvador, BA. Minicurso...
Salvador: Sociedade Brasileira de Computação, 2004. 43 páginas. Disponível em:
<http://www.sbc2004.ufba.br/jai_04.html>. Acesso em 28/05/2012.
ASQ. Glossary. Disponível em <http://asq.org/glossary/q.html>. Acesso em 21/08/2012.
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR ISO/IEC 14598-1: Avaliação de
produto de software: Visão Geral. Rio de Janeiro, 2001.
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR ISO/IEC 14598-5: Avaliação de
produto de software: Processo para avaliadores. Rio de Janeiro, 2001.
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR ISO/IEC 9126-1: Qualidade do
produto: Modelo de qualidade. Rio de Janeiro, 2003.
AZEVEDO, Samanta Pinto de. Modelo de avaliação da qualidade funcional de software.
Disponível em <http://tconline.feevale.br/tc/files/0002_1582.pdf>. Acesso em 17/05/2012.
79
BARBOSA, Denise Chaves Carvalho. Mineração de Dados Usando o Software WizRule em
Base de Dados de Compras de Itens de TI. Dissertação (Mestrado em Administração e
Economia) – Faculdade de Economia e Finanças IBMEC. Fevereiro de 2007. 77 páginas.
BARTIÉ, Alexandre. Garantia da Qualidade de Software. 1ª ed., São Paulo, SP: Campus, 2002.
304 páginas.
BEVAN, Nigel. Quality in use: incorporating human factors into the software engineering lifecycle
Disponível em <http://www.nigelbevan.com/papers/qiuhf97.pdf>. Acesso em 16/06/2012.
BEVAN, Nigel. Quality in Use: Meeting User Needs for Quality. Disponível em
<http://www.usabilitynet.org/papers/qiuse.pdf>. Acesso em 16/06/2012.
BRAGA, Luis Paulo Vieira. Introdução à Mineração de Dados. 2ª ed., Rio de Janeiro, RJ: E-
Papers, 2005.
CORDEIRO, Aline Gomes. Priorização de requisitos e avaliação da qualidade de software
segundo a percepção dos usuários. Dissertação (Mestrado em Ciências da Engenharia) –
Universidade Estadual do Norte Fluminense. Abril de 2010. 90 páginas.
DIAS, Maria Madalena. Parâmetros na Escolha de Técnicas e Ferramentas de Mineração de
Dados. Acta Scientiarum, v. 24, n. 6, p. 1715-1725, 2002. Disponível em:
<http://periodicos.uem.br/ojs/index.php/ActaSciTechnol/article/view/2549>. Acesso em 28/05/2012.
DUARTE, Katia Cristina; FALBO, Ricardo de Almeida. Uma Ontologia de Qualidade de
Software, In: Workshop de Qualidade de Software, 7., Simpósio Brasileiro de Engenharia de
Software, 14., 2000, João Pessoa, PB. Anais... João Pessoa: Sociedade Brasileira de Computação,
2000. p. 275-285.
80
FAYYAD, Usama; PIATETSKY-SHAPIRO, Gregory; SMYTH, Padhraic. From Data Mining to
Knowledge Discovery in Databases. AI Magazine, v. 17, n. 3, p. 37-54, 1996. Disponível em:
<http://www.aaai.org/ojs/index.php/aimagazine/article/view/1230/1131>. Acesso em 28/05/2012.
FURTADO, Vasco. Tecnologia e Gestão da Informação na Segurança Pública. Rio de Janeiro,
RJ: Garamond, 2002.
GOMES, Nelma da Silva. Qualidade de Software: uma necessidade. 2000. Disponível em
<http://www.fazenda.gov.br/ucp/pnafe/cst/arquivos/Qualidade_de_Soft.pdf>. Acesso em
02/05/2012.
GUTIERREZ, Margarida; BERTRAND, Hélène. Estudos em Negócios IV. Rio de Janeiro, RJ:
Mauad, 2005.
HAIR, Joseph F.; TATHAM, Ronald L.; ANDERSON, Rolph E.; BLACK, William. Análise
Multivariada de Dados. 5ª ed., São Paulo, SP: Bookman, 1998.
IEC. International Electrotechnical Commission. Disponível em <http://www.iec.ch>. Acesso em
02/05/2012.
ISO: The ISO Story. Disponível em <http://www.iso.org/iso/about.htm>. Acesso em 02/05/2012.
KOSCIANSKI, André; SOARES, Michel dos S. Qualidade de Software: Aprenda as metodologias
e técnicas mais modernas para o desenvolvimento de software. 2ª ed., São Paulo, SP: Novatec, 2007.
395 páginas.
LARMAN, Craig. Utilizando UML e Padrões. 3ª ed., Porto Alegre, RS: Bookman, 2005.
MARTINEZ, Maria Laura. Design de Interfaces Interativas. 2010. SENAC, São Paulo.
81
MARTINHAGO, Sergio. Descoberta de Conhecimento Sobre o Processo Seletivo da UFPR.
Dissertação (Mestrado em Métodos Numéricos em Engenharia) – Universidade Federal do Paraná.
Julho de 2005. 125 páginas.
MAZZOLA, Vitório. Engenharia de Software. 2010. Disponível em
<http://jalvesnicacio.files.wordpress.com/2010/03/engenharia-de-software.pdf>. Acesso em
23/05/2012.
MEIRELLES, Paulo Roberto Miranda. Levantamento de Métricas de avaliação de Projetos de
Software Livre. São Paulo, 2008. Disponível em
<http://ccsl.ime.usp.br/files/relatorioPauloMeirelles_final.pdf>. Acesso em 16/05/2012.
MILLS, Everald. Software Metrics. Seattle, 1998. Disponível em
<http://www.sei.cmu.edu/library/abstracts/reports/88cm012.cfm?
DCSext.abstractsource=SearchResults>. Acesso em 19/05/2012.
NASA. Software Assurance Definitions. 2009. Disponível em
<http://www.hq.nasa.gov/office/codeq/software/umbrella_defs.htm>. Acesso em 22/08/2012.
NIELSEN, J. Usability Engineering. Cambridge: Academic Press, 1993. 340 páginas.
PAGANI, Talita. Qualidade em Uso: expandindo a Usabilidade. 2011. Disponível em
<http://tableless.com.br/qualidade-em-uso-expandindo-a-usabilidade>. Acesso em 25/05/2012.
PICHILIANI, Mauro. Data Mining na Prática: Algoritmo K-Means. 2006. Disponível em
<http://imasters.com.br/artigo/4709/sql_server/data_mining_na_pratica_algoritmo_k-means>.
Acesso em 14/06/2012.
PRESSMAN, Roger S. Engenharia de Software. 6ª ed., São Paulo, SP: Makron Books, 2006. 711
82
páginas.
Qualidade – Conceito e definição. Disponível em
<http://www.qualidade.eng.br/artigos_qualidade_conceito.htm>. Acesso em 02/05/2012.
Rational Software Corporation. Conceitos: Requisitos. 2001. Disponível em
<http://www.wthreex.com/rup/process/workflow/requirem/co_req.htm>. Acesso em 24/05/2012.
REZENDE, Denis Alcides. Engenharia de Software e Sistemas de Informação. 3ª ed., Rio de
Janeiro, RJ: Brasport, 2005.
REZENDE, Solange Oliveira. Sistemas Inteligentes: fundamentos e aplicações. 1ª ed., Barueri, SP:
Manole, 2003.
ROCHA, Heloísa V.; BARANAUSKAS, Maria Cecília C. Design e Avaliação de Interfaces
Humano-Computador. Universidade Estadual de Campinas, 2003. Disponível em
<http://pan.nied.unicamp.br/publicacoes/publicacao_detalhes.php?id=40>. Acesso em 01/03/2012.
ROMÃO, Wesley. Descoberta de Conhecimento Relevante em Banco de Dados Sobre Ciência e
Tecnologia. Tese (Doutorado em Engenharia de Produção) – Universiade Federal de Santa Catarina.
Fevereiro de 2002. 253 páginas.
SALGADO, André Batista; UZAI, Diego de Oliveira; SALEMA, Hélio Augusto Maia; MANHÃES
NETTO, Joanne. Minerando Regras de Associação: Uma Ferramenta de Data Mining.
Monografia (Graduação em Tecnologia em Desenvolvimento de Software) – Centro Federal de
Educação Tecnológica de Campos. Novembro de 2005.
SHNEIDERMAN, Ben; PLAISANT, Catherine. Designing the user interface: strategies for
effective human-computer interaction . 4ª ed. Maryland: Pearson Education, 2005.
83
SILVA, Simone Vasconcelos. Avaliação da Qualidade de Software Através de Técnicas da
Mineração de Dados, In: Simpósio Brasileiro de Qualidade de Software, 7., 2008, Florianópolis,
SC. Anais... Florianópolis: Sociedade Brasileira de Computação, 2008. p. 61-74.
SILVA, Simone Vasconcelos. Qualidade de software: uma abordagem baseada na satisfação do
usuário. Dissertação (Mestrado em Ciências da Engenharia) – Universidade Estadual do Norte
Fluminense. Março de 2003. 170 páginas.
SODRÉ, Cibele Cristina Pelizer. Norma ISO/IEC 9126: Avaliação de Qualidade de Produtos de
Software. Londrina: Universidade Estadual de Londrina, 2006. p. 52. Monografia, Bacharel em
Ciência de Computação. Disponível em <http://www.trabalhosfeitos.com/ensaios/Iso-
9126/202596.html>. Acesso em 25/05/2012.
VAZ, Daniel. Planejamento de movimento cinemático-dinâmico: para robôs móveis com rodas
deslizantes. 2011. Disponível em <http://www.teses.usp.br/teses/disponiveis/18/18153/tde-02012012-
144022/publico/Vaz.pdf>. Acesso em 14/06/2012.
WEISZFLOG, Walter. Michaelis: Moderno Dicionário da Língua Portuguesa. 1ª ed. Editora
Melhoramentos Ltda, 2007.
84
Apêndice I - Questionário
85
Apêndice II – Arquivo Questionário.arff
86
Apêndice III – Arquivo Questionário.xls
87
Anexo
Algoritmo Apriori
O algoritmo Apriori, iterativamente reduz o apoio mínimo até encontrar o número
necessário de regras com o mínimo de confiança dado. O algoritmo tem uma opção para minerar
regras de associação de classe (weka.sourceforge.net, tradução nossa). Suas propriedades:
• Todo subconjunto de um conjunto frequente é frequente.
• Todo conjunto que contém um subconjunto não frequente também não é frequente.
Etapas do Apriori:
• Calcular o suporte de todos os conjuntos de tamanho 1 e eliminar aqueles que não possuem
o suporte mínimo.
• Formar todos os possíveis conjuntos de tamanho 2 a partir daqueles de tamanho 1 e eliminar
os novos conjuntos que não possuem o suporte mínimo.
• Repetir o procedimento anterior até que, no k-ésimo passo, nenhum novo conjunto de
tamanho k, obtido a partir dos conjuntos de tamanho k-1, tenha suporte mínimo.
Algoritmo (AGRAWAL , SRIKANT, 1994)
F1 = conjuntos frequentes de tamanho 1;
para ( k=2; Fk ≠ Ø;k++ ) faça
Gerar Ck (todos os candidatos de tamanho k) a partir de Fk-1;
para cada transação t pertencente a base de dados faça
Incrementar o contador associado a todo candidato Ck cujos itens pertençam a t;
fim-para;
Fk = todos os candidatos pertencentes a Ck com suporte mínimo maior ou igual a SupMin;
fim-para;
Resposta = união de todos os conjuntos Fk;
88
Algoritmo K-Means
A idéia do algoritmo K-Means (também chamado de K-Médias), de acordo com Pichiliani
(2006), é fornecer uma classificação de informações de acordo com os próprios dados. Esta
classificação, como será vista a seguir, é baseada em análise e comparações entre os valores
numéricos dos dados. Desta maneira, o algoritmo automaticamente vai fornecer uma classificação
automática sem a necessidade de nenhuma supervisão humana, ou seja, sem nenhuma pré-
classificação existente. Por causa desta característica, o K-Means é considerado como um algoritmo
de mineração de dados não supervisionado.
Segundo Pichiliani (2006) podemos entender como o algoritmo funciona da seguinte
maneira:
“[...] vamos imaginar que temos uma tabela com linhas e colunas que contêm os
dados a serem classificados. Nesta tabela, cada coluna é chamada de dimensão e
cada linha contém informações para cada dimensão, que também são chamadas
de ocorrências ou pontos. Geralmente, trabalha-se com dados contínuos neste
algoritmo, mas nada impede que dados discretos sejam utilizados, deste que eles
sejam mapeados para valores numéricos correspondentes.
Como foi dito, o algoritmo vai analisar todos os dados desta tabela e indicar
uma classe (cluster) e vai dizer quais linhas pertencem a esta classe. O usuário
deve fornecer ao algoritmo a quantidade de classes que ele deseja. Este número
de classes que deve ser passada para o algoritmo é chamado de k e é daí que vem
a primeira letra do algoritmo: K-Means.
Para gerar as classes e classificar as ocorrências, o algoritmo faz uma
comparação entre cada valor de cada linha por meio da distância. A maneira de
calcular esta distância vai depender da quantidade de atributos da tabela
fornecida. Após o cálculo das distâncias o algoritmo calcula centróides para cada
uma das classes. Conforme o algoritmo vai iterando, o valor de cada centróide é
refinado pela média dos valores de cada atributo de cada ocorrência que pertence
a este centróide. Com isso, o algoritmo gera k centróides e coloca as ocorrências
da tabela de acordo com sua distância dos centróides.”
89
Para simplificar a explicação de como o algoritmo funciona, será apresentado o algoritmo K-
Means em cinco passos (PICHILIANI, 2006):
PASSO 01: Fornecer valores para os centróides.
PASSO 02: Gerar uma matriz de distância entre cada ponto e os centróides.
PASSO 03: Colocar cada ponto nas classes de acordo com a sua distância do centróide da classe.
PASSO 04: Calcular os novos centróides para cada classe.
PASSO 05: Repetir, a partir do passo 2, até a convergência.
Algoritmo Random Tree
Classe para a construção de uma árvore que considera K atributos escolhidos aleatoriamente
em cada nó, sem executar podas. Também tem uma opção para permitir a estimativa de
probabilidades de classe com base em um conjunto de hold-out (backfitting)
(http://weka.sourceforge.net).
O Rapidly-exploring Random Tree, RRT, é um método de planejamento de movimento
baseado em amostragem e foi proposto com a intenção de resolver problemas de planejamento
cinemático-dinâmico (LAVALLE; KUFFNER apud Vaz, 2011). Segundo Vaz (2011), os métodos de
planejamento de movimento baseados em amostragem são apropriados quando o número de graus
de liberdade é grande, uma vez que estes métodos amostram estados aleatórios e aplicam as ações
de controle no modelo do sistema. Este é o funcionamento básico do RRT que realiza duas tarefas
simultaneamente: expande uma árvore aleatória que possui ótima capacidade de exploração do
ambiente e guia o crescimento dessa árvore em direção ao estado final desejado.

AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS

  • 1.
    INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIA FLUMINENSE PÓS-GRADUAÇÃO EM ANÁLISE, PROJETO E GERÊNCIA DE SISTEMAS DE INFORMAÇÃO JULIANA DA SILVA CINDRA LÍVIA CASSIANO RANGEL AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS Campos dos Goytacazes/RJ 2012
  • 2.
    JULIANA DA SILVACINDRA LÍVIA CASSIANO RANGEL AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS Monografia apresentada ao Instituto Federal de Educação, Ciência e Tecnologia Fluminense como requisito parcial para conclusão da Pós-Graduação em Análise, Projeto e Gerência de Sistemas de Informação. Orientadora: Simone Vasconcelos Silva Campos dos Goytacazes/RJ 2012
  • 3.
    JULIANA DA SILVACINDRA LÍVIA CASSIANO RANGEL AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS Monografia apresentada ao Instituto Federal de Educação, Ciência e Tecnologia Fluminense como requisito parcial para conclusão da Pós-Graduação em Análise, Projeto e Gerência de Sistemas de Informação. Aprovada em 28 de setembro de 2012 Banca Avaliadora: .................................................................................................................................................. Profª Simone Vasconcelos Silva (orientadora) Doutora em Computação/UFF Instituto Federal de Educação, Ciência e Tecnologia Fluminense/Campus Campos Centro .................................................................................................................................................. Profº Mauricio Jose Viana Amorim Doutor em Informática na Educação/UFRGS Instituto Federal de Educação, Ciência e Tecnologia Fluminense/Campus Campos Centro .................................................................................................................................................. Profª Ana Silvia Escocard Santiago Mestre em Pesquisa Operacional e Inteligência Computacional/UCAM Instituto Federal de Educação, Ciência e Tecnologia Fluminense/Campus Campos Centro
  • 4.
    As pessoas esquecemquão rapidamente você fez um trabalho – mas elas sempre se lembram de quão bem você o fez. Howard Newton
  • 5.
    RESUMO Nos últimos anosé notória a crescente a demanda por sistemas complexos, os quais assumem grandes responsabilidades no contexto organizacional, sendo necessário que haja um controle de qualidade através do qual seja possível garantir segurança, disponibilidade de serviços essenciais e facilidade de utilização dos recursos do software. Para que isto ocorra, é importante levar em conta a visão do usuário sobre o sistema. Adequar a qualidade dos produtos de software, de modo que o mesmo atenda aos usuários em suas necessidades, torna-se imprescindível. A norma ISO/IEC 9126 indica as características de um software de qualidade, cuida de maneira geral do que é necessário para realizar uma avaliação, estabelece um modelo de qualidade para o produto, assim como apresenta uma ampla descrição de como verificar, qualitativa e quantitativamente, se o produto possui qualidade. Já a norma ISO/IEC 14598 orienta sobre a avaliação do modelo de qualidade, abrange os aspectos gerenciais, sugere estabelecer uma metodologia precisa na organização assim como indica a documentação que deve acompanhar todo o processo. Estas normas orientam a avaliação do Sistema de Gestão Acadêmica (SIGA-EPCT), apresentado como estudo de caso neste trabalho. Uma avaliação sobre o sistema, realizada pelos usuários de acordo com experiência no uso do software, indica a satisfação em relação a alguns pontos e ao sistema como um todo; e também apontam possíveis pontos que devem ser melhorados ou revistos no produto de software. De posse do resultado das avaliações sobre a qualidade do sistema, é importante extrair informações úteis, ou seja, extrair conhecimentos detalhados sobre os pontos fortes e fracos do sistema. Como forma de extração deste conhecimento são utilizadas técnicas de Mineração de Dados com o objetivo de tornar mais viável o entendimento dos resultados das avaliações, verificando a validade dos mesmos e as razões que levaram a tais resultados, para que possam ser adotadas medidas para minimização dos problemas identificados no sistema. Palavras-chave: qualidade de software, avaliação da qualidade do produto de software, mineração de dados.
  • 6.
    ABSTRACT In recent yearsit is evident the increasing demand for complex systems, which assume greater responsibilities in the organizational context, being necessary that such systems have a quality control, which means that you can ensure security, availability of essential services and ease of use of software features. For this to occur, it is important to take into account the user's view about the system. Adapt the quality of software products, so that it meets the users needs, becomes essential. The standard ISO/IEC 9126 indicates the characteristics of a software quality, care in general about what is necessary to conduct an evaluation, establish a model for the product quality, as well as provides a comprehensive description of how to check qualitatively and quantitatively, if the product has quality. Already the standard ISO/IEC 14598 provides guidance on the evaluation of model quality, covers the management aspects, suggests establishing a precise methodology in the organization even as indicates the documentation that must accompany the whole process. These standards guide the evaluation of Sistema de Gestão Acadêmica (SIGA-EPCT), presented as a case study in this work. An evaluation of the system, held by the user in accordance with experience using the software, indicates satisfaction regarding some points and the system as a whole; and also point out possible points that should be improved or revised in the software product. In possession of the evaluations result of the system quality, it is important to extract useful information, in other words, extracting detailed knowledge about the strengths and weaknesses points of the system. As a form of extraction of this knowledge are used techniques of Data Mining with the goal of making more viable the understanding of evaluation results, verifying their validity and reasons for such results, so decisions can be taken to minimize the problems identified in the system. Key-words: software quality, quality software product evaluation, data mining.
  • 7.
    SIGLAS E ABREVIATURAS ABNTAssociação Brasileira de Normas Técnicas B Bom I Inexistente IEC International Electrotechnical IEEE Institute of Electrical and Electronic Engineers IFF Instituto Federal de Educação, Ciência e Tecnologia Fluminense IHC Interação Homem-Computador ISO International Organization for Standardization KDD Knowledge Discovery in Database M Médio MB Muito Bom MEC Ministério da Educação P Péssimo R Ruim SETEC Secretaria de Educação Profissional e Tecnológica SIGA-ADM Sistema Integrado de Gestão Acadêmica Administrativa SIGA-EDU Sistema Integrado de Gestão Acadêmica da Educação SIGA-EPCT Sistema Integrado de Gestão Acadêmica da Educação Profissional e Tecnológica SQUARE Software product Quality Requirements and Evaluation UFJF Universidade Federal de Juiz de Fora WEKA Waikato Enviroment for Knowledge Analysis
  • 8.
    LISTA DE FIGURAS Figura1: Engenharia de software em camadas …......................................................................... 17 Figura 2: Partes componentes da ISO/IEC 25000 ….................................................................... 24 Figura 3: Estrutura hierárquica do modelo de qualidade ….......................................................... 27 Figura 4: Características e subcaracterísticas da norma ISO/IEC 9126-1 …................................. 27 Figura 5: Representação da norma ISO/IEC 14598 …................................................................ 31 Figura 6: Processo de Avaliação …............................................................................................... 33 Figura 7: Disciplinas que contribuem em IHC .............................................................................. 37 Figura 8: Três dimensões das diferentes experiências de usuários ............................................... 40 Figura 9: Etapas do KDD .............................................................................................................. 48 Figura 10: Técnicas de origem da Mineração de Dados (Data Mining) ....................................... 50 Figura 11: Questionário utilizado como forma de avaliação da satisfação do usuário …............. 59 Figura 12: Tela inicial do Módulo Protocolo ................................................................................ 64 Figura 13: Tela inicial do Módulo Requisição de Veículos, perfil Requisitante …....................... 65 Figura 14: Tela inicial da ferramenta Weka ................................................................................... 66 Figura 15: Arquivo Questionário.arff ............................................................................................ 68 Figura 16: Árvore de Decisão (Tempo de Experiência x Satisfação) ........................................... 73 Figura 17: Árvore de Decisão (Módulo x Satisfação) ................................................................... 74 Figura 18: Árvore de Decisão (Cargo x Satisfação) ...................................................................... 74
  • 9.
    LISTA DE TABELAS Tabela1: Principais normas e modelos nacionais e internacionais de qualidade de software ….. 22 Tabela 2: Partes das normas ISO/IEC 9126 e 14598 ..................................................................... 23 Tabela 3: Relação entre Técnica e Tarefa de Mineração de Dados ............................................... 55 Tabela 4: Características, Sub-características e Critérios utilizados na avaliação do software …. 58 Tabela 5: Tarefas, Técnicas e Algoritmos a serem utilizados ....................................................... 61 Tabela 6: Setores que participaram da pesquisa e a quantidade de usuários por setor …............. 67 Tabela 7: Relação entre Tarefa e Técnica para Clusterização ....................................................... 69 Tabela 8: Módulo X Satisfação (Atributos ignorados: Cargo e Tempo de Experiência) ….......... 70 Tabela 9: Cargo X Satisfação (Atributos Ignorados: Módulo e Tempo de Experiência) ….......... 71 Tabela 10: Relação entre Tarefa e Técnica para Associação ......................................................... 71 Tabela 11: Regras Identificadas .................................................................................................... 72 Tabela 12: Relação entre Tarefa e Técnica para Decisão .............................................................. 73
  • 10.
    10 Sumário 1. Introdução.......................................................................................................................................12 1.1. Objetivo...................................................................................................................................13 1.2.Estrutura do trabalho...............................................................................................................14 2. Qualidade........................................................................................................................................16 2.1. Histórico de Qualidade...........................................................................................................18 2.2. Qualidade de Software............................................................................................................19 2.3. Normas de Qualidade de Software.........................................................................................21 2.3.1. SQuaRE: ISO/IEC 25000 ............................................................................................23 2.3.2. ISO/IEC 9126...............................................................................................................25 2.3.3. ISO/IEC 14598 ............................................................................................................30 2.4. Qualidade para o Usuário.......................................................................................................35 2.4.1. Usabilidade...................................................................................................................41 2.4.2. Confiabilidade..............................................................................................................42 2.4.3. Eficiência......................................................................................................................44 2.4.4. Funcionalidade.............................................................................................................44 3. Mineração de Dados.......................................................................................................................46 3.1. Descoberta de Conhecimento em Banco de Dados (Knowledge Discovery in Database – KDD)..................................................................................................................................................47 3.2. Mineração de Dados (Data Mining).......................................................................................49 3.2.1 Linhagens da Mineração de Dados...............................................................................50 3.2.2 Tarefas da Mineração de Dados....................................................................................51 3.2.3 Técnicas de Mineração de Dados..................................................................................53 4. Avaliação da Qualidade do Produto de Software através de Mineração de Dados........................57 4.1 Seleção dos Critérios e da Técnica de avaliação....................................................................57 4.2 Etapas do KDD.......................................................................................................................60 5. Metodologia e Estudo de caso........................................................................................................62 5.1. Sistema SIGA........................................................................................................................62 5.2. Weka......................................................................................................................................65
  • 11.
    11 5.3. Caracterização daamostra.....................................................................................................67 5.3.1. Aplicação da metodologia para o SIGA......................................................................68 5.3.1.1. Resultados e Análises com Algoritmo de Clusterização.................................69 5.3.1.2. Resultados e Análises com Algoritmo de Associação.....................................71 5.3.1.3. Resultados e Análises com Algoritmo de Decisão..........................................73 6. Conclusão.......................................................................................................................................76 6.1. Trabalhos futuros.....................................................................................................................76 Referências.........................................................................................................................................78 Apêndice I - Questionário...................................................................................................................84 Apêndice II – Arquivo Questionário.arff............................................................................................85 Apêndice III – Arquivo Questionário.xls............................................................................................86 Anexo .................................................................................................................................................87
  • 12.
    12 1. Introdução Na medidaem que cresce a demanda por sistemas complexos, com grande responsabilidade no contexto das organizações, a qualidade desponta como um fator essencial no desenvolvimento de software. Sendo assim, cada vez mais, há uma disposição para se investir em qualidade (DUARTE; FALBO, 2000). Atualmente, não apenas no desenvolvimento, mas a avaliação da qualidade de produtos ou serviços tornou-se uma necessidade, visto que os usuários estão cada vez mais exigentes quanto a qualidade dos produtos ou serviços adquiridos (SILVA, 2008). De acordo com a norma NBR ISO 9000 (2005), qualidade é definida como o grau em que um conjunto de características inerentes a um produto, processo ou sistema cumpre os requisitos inicialmente estipulados para estes. Dentro da qualidade de software pode-se distinguir dois ramos que possuem características um pouco distintas quando se trata de manter e avaliar a qualidade, estes podem ser definidos como qualidade de processo e qualidade do produto, Duarte e Falbo (2000) apresentam os termos definindo-os: qualidade do processo possui características de qualidade relevantes para descrever e avaliar a qualidade do processo de software ou de uma de suas atividades, como por exemplo, desempenho do processo, capacitação, produtividade; já a qualidade do produto possui características de qualidade relevantes para descrever e avaliar um artefato1, por exemplo, tamanho, legibilidade, confiabilidade. Neste trabalho será abordado apenas o que se refere a qualidade do produto. Entende-se como produto a relação entre um artefato e uma atividade, indicando que o artefato é produzido pela atividade (DUARTE; FALBO, 2000). Observando a definição, pode-se dizer então que produtos de software são a associação de resultados e atividades realizadas durante o processo de desenvolvimento de software, ou seja, o próprio software já desenvolvido. A preocupação com metodologias de produção de software que permitam a qualidade dos softwares e a satisfação do usuário é crescente na indústria de software. Um dos importantes aspectos da qualidade de software, que tem merecido crescente atenção é a qualidade da interação 1 Um artefato é o termo usado para qualquer produto de trabalho: código, gráficos para web, esquemas de bancos de dados, documentos em texto, diagramas, e assim por diante (Larman, 2005).
  • 13.
    13 entre o usuárioe os softwares. As técnicas de avaliação da qualidade de software podem vir a auxiliar o setor de desenvolvimento de software a alcançar um grau de satisfação maior dos usuários em relação aos produtos desenvolvidos e assim, aproximar as características de seus produtos de software às demandas dos usuários. Para tal fim, é necessário transformar os dados obtidos nas técnicas de avaliação em informação relevante. A informação vem desempenhando cada vez mais um papel fundamental em todos os setores da sociedade. O desenvolvimento e sucesso das organizações baseiam-se na capacidade de coletar, tratar, interpretar e utilizar a informação de forma eficaz. A rápida evolução dos recursos computacionais, ocorrida nos últimos anos permitiu que fossem gerados grandes volumes de dados. Surge então a Mineração de Dados, como resposta a tal necessidade apresentada com esse crescimento do volume de dados, que necessitam de novas técnicas e ferramentas capazes de transformar dados em informações significativas e em conhecimento (SILVA, 2008). 1.1. Objetivo A Mineração de Dados é parte de um processo maior denominado Descoberta de Conhecimento em Banco de Dados (Knowledge Discovery in Database - KDD) (BRAGA, 2005). Como sugere o termo, Mineração de Dados tem uma orientação exploratória de busca por conhecimento obscurecido pelos complexos padrões de associação e grande quantidade de dados. É o processo de obtenção de informação e conhecimento a partir de grande base de dados (HAIR et al, 1998). Neste trabalho será realizada a avaliação da qualidade de um produto de software, através de questionários aplicados aos usuários do sistema e da análise das informações através da mineração de dados. O objetivo principal deste trabalho é a avaliação da qualidade de um produto de software utilizando das técnicas e ferramentas de extração inteligente de conhecimento em bases de dados. A metodologia utiliza questionários respondidos pelos usuários para alimentar a base de dados na qual será aplicada a mineração de dados e obtida a informação desejada. O objetivo principal pode ser dividido nos seguintes objetivos específicos:
  • 14.
    14 • Realizar umaanálise do produto de software, apresentando o grau de satisfação do usuário em relação ao uso do sistema; • Através do estudo de caso, verificar como o grau de satisfação pode variar de acordo com o perfil dos usuários e com o módulo utilizado; • Sugerir quais critérios devem ser melhorados visando satisfazer as necessidades dos usuários. 1.2. Estrutura do trabalho Este trabalho está estruturada em 6 capítulos. • O Capítulo 1 introduz o tema do trabalho, apresentando uma descrição do problema tratado, os objetivos pretendidos e a justificativa para a sua elaboração; • O Capítulo 2 fornece um referencial teórico a respeito da qualidade, qualidade de software, sua história, as normas de qualidade, descrevendo as normas 9126-1 e 14598 (parte 1 e 5) que são utilizadas nesse trabalho e ainda aborda a qualidade para o usuário; • O Capítulo 3 apresenta um referencial teórico a respeito da Mineração de dados, abordando temas como a Descoberta de Conhecimento em Banco de Dados e as linhagens e técnicas da Mineração de Dados. Tanto neste capítulo quanto no Capítulo 2, os conceitos são destacados com o objetivo de facilitar o entendimento a respeito de como metodologia está estruturada; • O Capítulo 4 descreve a metodologia proposta, detalhando suas etapas, a seleção dos critérios, a seleção da técnica de avaliação, as etapas do KDD e os critérios e técnicas de avaliação; • O Capítulo 5 apresenta o estudo de caso realizado tendo como base a metodologia proposta. Neste capítulo a execução de cada etapa é descrita em detalhes, permitindo que se compreenda como o estudo de caso foi realizado e os resultados obtidos a partir de sua execução; • O Capítulo 6 refere-se enfim as considerações finais que podem ser feitas a partir do estudo
  • 15.
    15 realizado. Este capítulotambém apresenta as limitações identificadas e as sugestões para trabalhos futuros. Este trabalho é composto ainda por Apêndice e Anexo. O Apêndice contêm o questionário utilizado na avaliação do software, os dados da pesquisa e o arquivo utilizado na mineração de dados; e o anexo fornece uma descrição a respeito dos algoritmos de mineração de dados (APriori, KMeans e RandomTree) utilizados neste trabalho.
  • 16.
    16 2. Qualidade Os computadorestêm tido uma aplicação cada vez maior, em diferentes áreas, e sua correta operação é frequentemente crítica para o sucesso de negócios e até mesmo para a segurança humana. Deste modo, desenvolver ou selecionar produtos de software de alta qualidade é de primordial importância num mercado cada vez maior e mais competitivo. A ideia de qualidade é aparentemente intuitiva; contudo, quando examinado mais de perto, o conceito se revela complexo. Definir qualidade é uma tarefa menos trivial do que pode parecer. Uma das definições apresentada pelo dicionário Michaelis define qualidade como “Grau de perfeição, de precisão, de conformidade a um certo padrão”. Talvez a melhor das definições, por ser a mais ampla e aplicável a uma variedade de situações é a de Joseph Juran: “Qualidade é a adequação ao uso”. Pode-se aplicá-la, seja a situações do cotidiano, quanto a situações mais específicas, como, por exemplo, num processo de fabricação. Nesse caso, a definição de Philip Crosby, qualidade é a conformidade com os requisitos (requisitos significa tanto o produto quanto as necessidades do cliente), é uma variação mais restritiva da definição de Juran (SILVA, 2010). O site da Sociedade Americana para a Qualidade (ASQ - American Society for Quality) apresenta o seguinte conceito (http://asq.org/glossary/q.html): “Qualidade – Um termo subjetivo, para o qual cada pessoa, ou setor, tem a sua própria definição. Em sua utilização técnica, a qualidade pode ter dois significados: 1. As características de um produto ou serviço, que dão suporte (ou sustentação), à sua habilidade em satisfazer requisitos especificados ou necessidades implícitas e; 2. Um produto ou serviço livre de deficiências.” A norma NBR ISO 9000 (2005), que estabelece um modelo de gestão da qualidade para organizações em geral, define qualidade como “[...] o grau em que um conjunto de características
  • 17.
    17 inerentes a umproduto, processo ou sistema cumpre os requisitos inicialmente estipulados para estes”, sendo que características, segundo a própria norma são propriedades diferenciadoras, podendo ser de diferentes tipos, como físicas, sensoriais, comportamentais, temporais, ergonômicas ou funcionais. A qualidade também é um assunto tratado pelas Engenharias, é uma área de conhecimento fundamental em todas elas, e na Engenharia de Software não seria diferente. Segundo Pressman (2006), Fritz Bauer foi o primeiro a definir que a Engenharia de Software é “a criação e a utilização de sólidos princípios de engenharia a fim de obter softwares econômicos que sejam confiáveis e que trabalhem eficientemente em máquinas reais.” Ainda de acordo com Pressman (2006), “A engenharia de software é uma tecnologia em camadas” e a Figura 1 foi apresentada para ilustrar essa divisão. Figura 1: Engenharia de software em camadas Fonte: Pressman (2006) Como pode ser visto, o foco na qualidade é a base que apoia todas as outras camadas. Qualquer abordagem de engenharia (inclusive a engenharia de software) deve se apoiar num compromisso organizacional com a qualidade. Segundo o autor, é “a cultura de um processo contínuo de aperfeiçoamento (…) que leva ao desenvolvimento de abordagens cada vez mais efetivas para a engenharia de software”.
  • 18.
    18 2.1. Histórico deQualidade A Revolução Industrial pode ser considerada como o primeiro grande marco da história da qualidade. Nessa época novas tecnologias surgiram, o número de indústrias começou a crescer e também a concorrência entre elas e fez nascer a necessidade de um processo de melhoria dos produtos (KOSCIANSKI; SOARES, 2007). Ainda de acordo com Koscianski e Soares (2007), a partir da década de 20, a produção industrial passou a adotar um processo de qualidade. A fim de evitar que produtos defeituosos chegassem aos clientes surgiu o controle estatístico da produção. Como a produção industrial ocorre em grande escala, não era possível verificar a qualidade de cada peça produzida, então o processo de qualidade era feito através de um controle estatístico, em que algumas peças eram analisadas aleatoriamente. Quanto mais próximas ao padrão, melhor seria a qualidade daquela linha de produção. Foi na década de 40 que os principais órgãos ligados à qualidade foram criados, como a Associação Brasileira de Normas Técnicas (ABNT) e a Organização Internacional para Padronização (ISO – International Organization for Standardization). Porém, antes destas organizações, em 1906, a Comissão Eletrotécnica Internacional, conhecida pela sigla IEC (International Electrotechnical Commission) foi fundada em Londres, Inglaterra, com o objetivo de padronizar nomenclaturas, símbolos e tecnologias elétricas e eletrônicas (IEC, 2012). A ISO foi estabelecida em 1947, uma organização mundial não governamental, composta pelos órgãos nacionais de padronização de 163 países. Com sede em Genebra, Suíça, tem como principal atividade a elaboração de padrões para especificações e métodos de trabalho nas mais variadas áreas. O principal objetivo da ISO é o desenvolvimento de padrões mundiais, com vistas a facilitação do intercâmbio internacional de produtos e serviços e a criação de uma cooperação intelectual, científica, econômica e técnica (ISO, 2011). No Brasil, a ABNT foi fundada em 1940, é o único órgão responsável pela normalização técnica no país, fornecendo a base necessária ao desenvolvimento tecnológico brasileiro. É uma entidade privada, sem fins lucrativos, e representa o Brasil nas entidades de normalização internacional como a ISO e o IEC (ABNT, 2011).
  • 19.
    19 Segundo Sodré (2006),no período de duração da Segunda Guerra Mundial, de 1939 a 1945, as técnicas de produção foram melhoradas para a fabricação de materiais bélicos, pois é esperado que este tipo de material não tenha falha. O ritmo de desenvolvimento das indústrias manteve-se no pós-guerra e foi criado um controle de processos da produção desde o projeto até o produto final. A partir do controle de processos foi criado um novo conceito, a garantia de qualidade, que é a demonstração de que os produtos e serviços possuem qualidade. Nessa época, as indústrias que mais estavam crescendo eram a automobilística e aeronáutica, e ainda que para uso restrito a meios militares e acadêmicos, já havia o desenvolvimento de computadores. Nos anos 60, houve uma mudança no ambiente de negócios devido a diversos fatores como a saturação dos mercados, procura por produtos diferenciados, utilização de alta tecnologia nos processos produtivos, redução das barreiras do comércio internacional e a intensificação da competição internacional. Nessa época, os computadores se tornaram mais acessíveis e cada vez mais pessoas passaram a usá-los. Com isso começou a se pensar em Qualidade de Software (SODRÉ, 2006). O conceito de Qualidade de Software surgiu devido a necessidade de organização e padronização do desenvolvimento de softwares, que não tinham planejamento nem norma de qualidade estabelecidos. A única forma de obter um sistema eficiente era através do planejamento feito pelo próprio programador, entretanto esses sistemas tinham manutenção complicada quando realizada por outra pessoa e não eram completamente confiáveis. 2.2. Qualidade de Software Qualidade de software é uma mistura complexa de fatores que variam com cada aplicação diferente e com os clientes que as encomendam. Em sentindo mais geral, Pressman (2006) define qualidade de software como “a satisfação de requisitos funcionais e de desempenho explicitamente declarados, a padrões de desenvolvimento claramente documentados e a características implícitas que são esperadas de todo software profissionalmente desenvolvido”. Uma definição mais simples, aplicável também a qualidade de software, é feita por Crosby, ao dizer que qualidade é a
  • 20.
    20 “conformidade com osrequisitos”. De maneira mais abrangente temos a definição proposta por Bartié (2002): "Qualidade de software é um processo sistemático que focaliza todas as etapas e artefatos produzidos com o objetivo de garantir a conformidade de processos e produtos, prevenindo e eliminando defeitos". O IEEE (Institute of Electrical and Electronic Engineers) aplica a seguinte definição para qualidade de software: “[...] o grau em que um sistema, componente ou processo satisfaz os requisitos especificados. O grau em que um sistema, componente ou processo atende cliente ou usuário necessidades ou expectativas.” (NASA, 2009). A norma NBR ISO/IEC 9126-1, utilizada neste trabalho, conceitua qualidade de software como “A totalidade de características de um produto de software que lhe confere a capacidade de satisfazer necessidades explícitas e implícitas”. As necessidades explícitas dependem do que foi especificado nos requisitos, já as implícitas são necessidades, que embora não estejam especificadas nos requisitos, devem ser levadas em consideração, pois se baseiam em princípios necessários para que o usuário execute a sua tarefa. Ainda segundo a NBR ISO/IEC 9126-1, as necessidades explicitadas pelo usuário nem sempre refletem suas reais necessidades devido alguns fatores: frequentemente, o usuário não conhece suas necessidades reais; as necessidades podem mudar; usuários diferentes podem ter ambientes operacionais diferentes e pode ser impossível consultar todos os tipos de usuários. A utilização de um software de qualidade garante a segurança, a disponibilidade de serviços essenciais e, em geral, a sociedade pode dispor de melhores produtos a um menor custo. De acordo com Koscianski e Soares (2007), o controle da qualidade surge como uma necessidade; e a avaliação para julgamento da qualidade de software torna-se muito útil e importante para as pessoas envolvidas ou as partes interessadas que são: • Produtor de software: na avaliação durante o processo de desenvolvimento para assegurar a qualidade do produto final e corrigir aspectos negativos antes da liberação do produto. No produto já lançado para avaliar e planejar ações corretivas e evolutivas. • Comprador: ajudá-lo na seleção do produto mais adequado as suas necessidades. • Usuário: ajudá-lo a ter mais confiança no produto que está usando. • Vendedor: este usa a qualidade do produto para argumento de venda.
  • 21.
    21 A avaliação daQualidade de Software pode ser dividida em qualidade de processo de software e qualidade de produto de software. As normas para obtenção de qualidade de processo de software fazem um estudo dos requisitos necessários ao cliente, cria um ciclo de vida para os processos e, por final, realiza a instalação e manutenção do mesmo. Já as normas para qualidade de produto de software possuem características que um produto com qualidade deve ter, modo de medir essas características de qualidade e descrições para se fazer a avaliação do produto. Processo de software, de acordo com Koscianski e Soares (2007), é um conjunto de atividades e resultados associados que levam a produção de um produto de software. O estudo da Qualidade do Processo de Software desenvolve modelos na tentativa de avaliar processos, com o intuito de melhorá-lo continuamente e determinar sua capacitação. A qualidade de produto de software, ainda segundo os autores, é baseada em normas que avaliam a qualidade de um produto, através de técnicas, métricas e atividades operacionais o quanto cada requisito é atendido. Tais requisitos de uma maneira geral, são a expressão das necessidades, explicitados em termos quantitativos ou qualitativos, e têm por objetivo definir as características de um software, a fim de permitir o exame de seu atendimento. Este trabalho abordará as normas de qualidade de produto de software. 2.3. Normas de Qualidade de Software As normas internacionais de qualidade são criadas com base no trabalho de especialistas do mundo todo. Essas normas tornaram-se a base para especificar produtos, organizar o fornecimento de serviços e, até mesmo, para elaborar legislação em vários países. Existe um número expressivo de normas técnicas internacionais relacionadas com software e em sua maioria, senão na totalidade, as normas de software têm um caráter mais informativo do que regulatório. Ou seja, enquanto existem normas a serem respeitadas, como forma de lei, para instalação elétrica de um prédio, por exemplo, o mesmo não acontece em relação ao software. Atualmente, muitas instituições se preocupam em criar normas para permitir a correta avaliação de qualidade tanto de produtos de software quanto de processos de desenvolvimento de
  • 22.
    22 software. Apenas parater uma visão geral, pode-se observar a Tabela 1 com as principais normais e modelos nacionais e internacionais nesta área. Tabela 1: Principais normas e modelos nacionais e internacionais de qualidade de software Normas de Qualidade do Produto ISO/IEC 9126 Características da qualidade de produtos de software. A norma brasileira correspondente é ABNT NBR ISO/IEC 9126. ISO/IEC 14598 Guias para a avaliação de produtos de software, baseados na utilização prática da norma ISO/IEC 9126. A norma brasileira correspondente é ABNT NBR ISO/IEC 14598. ISO/IEC 25000 Fornece um guia para o uso da série de padrões internacionais denominado Software product Quality Requirements and Evaluation (SQuaRE). Normas e Modelos de Qualidade do Processo ISO/IEC 12207 Software Life Cycle Processes (Processos de ciclo de vida do software): qualidade do processo de desenvolvimento de software. ISO 9000 Sistemas de gestão da qualidade: fundamentos e vocabulário. CMMI Capability Maturity Model Integration (Integração dos Modelos de Capacitação e Maturidade): modelo de referência que contém práticas necessárias à maturidade em disciplinas específicas. ISO/IEC 15504 Também conhecida como Spice, define processo de desenvolvimento de software. MPS-Br Melhoria de Processos do Software Brasileiro: modelo de qualidade de processo voltada para o mercado brasileiro. As organizações internacionais ISO e IEC elaboraram um conjunto de normas que tratam, especificamente, sobre a atual padronização mundial para a qualidade dos produtos de software. Algumas dessas normas foram utilizadas como base para o desenvolvimento desse trabalho, como as normas ISO/IEC 9126 e ISO/IEC 14598. Ambas as normas foram reorganizadas através do projeto SQuaRE (ISO/IEC 25000) e serão mais detalhadas a seguir.
  • 23.
    23 2.3.1. SQuaRE: ISO/IEC25000 SQuaRE significa Software product Quality Requirements and Evaluation, que pode ser traduzida como Requisitos de Qualidade e Avaliação de Produtos de Software. Essa norma é uma evolução das séries de normas ISO/IEC 9126 e ISO/IEC 14598 que tratam de qualidade de produto de software (PREVIEW ISO/IEC 25000, 2005). As normas 9126 e 14598 abordam a qualidade de produto de software e são compostas por um total de dez documentos. A ideia de reorganizar essas normas, iniciou em 1998, durante uma reunião da Comissão de Estudos de Qualidade de Software da ABNT, que percebeu que para compreender determinado tópico, poderia ser necessário consultar vários outros documentos. Então a comissão propôs a criação de um guia ou manual de utilização, para auxiliar os leitores a compreenderem as ideias e conceitos básicos das normas, assim como a distribuição de informação ao longo dos dez documentos. A proposta foi considerada tão interessante que foi solicitada a sua tradução para inglês. O passo seguinte foi uma total reformulação das normas através do projeto SQuaRE (KOSCIANSKI, SOARES, 2007). O projeto SQuaRE reorganizou o material existente nas duas séries de normas anteriores (ISO/IEC 9126 e 14598), mas não realizou mudanças radicais no conteúdo do material preexistente. O modelo hierárquico de qualidade proposto na 9126 continuou válido, assim como diversos aspectos organizacionais abordados na 14598. Esses documentos são mostrados na Tabela 2: Tabela 2: Partes das normas ISO/IEC 9126 e 14598 Fonte: Koscianski, Soares, 2007 Norma Conteúdo 9126-1 Modelo de qualidade de software 9126-2 Métricas externas 9126-3 Métricas Internas 9126-4 Métricas para qualidade em uso 14598-1 Guia de avaliação – visão geral 14598-2 Planejamento e gerenciamento de avaliações 14598-3 Processo de avaliação para desenvolvedores 14598-4 Processo de avaliação para adquirentes 14598-5 Processo de avaliação para avaliadores 14598-6 Documentação de módulos de avaliação
  • 24.
    24 Ainda segundo osautores, a série 9126 cuida de maneira geral do que é necessário para realizar uma avaliação, estabelece um modelo de qualidade para o produto, assim como apresenta uma ampla descrição de como verificar, qualitativa e quantitativamente, se o produto possui qualidade. Já a série 14598 abrange os aspectos gerenciais, sugere estabelecer uma metodologia precisa na empresa, assim como indica a documentação que deve acompanhar todo o processo. Na reorganização das normas ISO/IEC 9126 e 14598, o projeto SQuaRE adotou uma nova divisão de assuntos em cinco tópicos como mostrado na Figura 2: Figura 2: Partes componentes da ISO/IEC 25000 Fonte: Koscianski; Soares, 2007 Cada divisão é composta por um conjunto de documentos e trata de um assunto em particular. As cinco divisões são comentadas a seguir (KOSCIANSKI; SOARES, 2007): • Gerenciamento de qualidade: os documentos desta divisão estão voltados a todos os possíveis usuários: gerentes, programadores, avaliadores, compradores. Aqui são definidos os termos utilizados nos demais documentos e são feitas recomendações e sugestões de caráter geral sobre como utilizar o SQuaRE. • Modelo de qualidade: corresponde principalmente a antiga ISO 9126-1, onde é definido um modelo hierárquico de características de qualidade, descrevendo o que se espera de um produto. São definidos também os conceitos de qualidade externa, interna e em uso, que permitem orientar diferentes perspectivas de avaliação.
  • 25.
    25 • Medição: Defineo que é uma medição e descreve os diversos aspectos relacionados a realização dessa tarefa. Propõe também uma série de métricas que podem ser utilizadas ou adaptadas a necessidades específicas. • Requisitos de qualidade: Para garantir qualidade é preciso que valores-alvo tenham sido previamente especificados, o que faz parte da especificação de requisitos. • Avaliação: a SQuaRE concretiza-se na realização de uma avaliação de qualidade a partir de medições cujos resultados são confrontados contra um modelo definido pelo usuário. Para realizar uma avaliação são sugeridos procedimentos a serem adotados para diferentes públicos da norma, como desenvolvedores e compradores. Vale enfatizar dois aspectos: a série ISO/IEC 25000 se baseia em séries anteriores que continuam válidas e podem ser utilizadas. O projeto SQuaRE não surgiu para desmentir tais normas, mas sim para reorganizá-las. Em segundo lugar, iremos abordar somente os aspectos relevantes ao desenvolvimento desse trabalho, como o modelo de qualidade da norma ISO/IEC 9126 e o processo de avaliação da norma ISO/IEC 14598. 2.3.2. ISO/IEC 9126 A norma internacional ISO/IEC 9126 foi desenvolvida por um comitê técnico estabelecido pelas organizações ISO e IEC e publicada em 1991. A norma descreve um modelo de qualidade e exemplos de métricas que podem ser utilizadas para avaliação do produto de software, sendo dividida da seguinte maneira (NBR ISO/IEC 9216-1, 2003): • ISO/IEC 9126-1: Modelo de qualidade • ISO/IEC 9126-2: Métricas externas • ISO/IEC 9126-3: Métricas internas • ISO/IEC 9126-4: Métricas de qualidade em uso
  • 26.
    26 A ISO/IEC 9126-1(Modelo de qualidade) foi publicada em 1991, sendo considerada uma das mais antigas normas na área de qualidade de software e atualmente encontra-se traduzida para o português através da norma NBR ISO/IEC 9126-1, publicada em 2003. Esta parte é abordada mais detalhadamente devido a sua relevância no contexto deste trabalho. A ISO/IEC 9126-1 é uma norma de avaliação do produto de software, onde são descritas características de qualidade e diretrizes para a sua utilização. Na norma também é descrito um modelo para a qualidade do produto de software, dividido em 2 partes (KOSCIANSKI; SOARES, 2007): • Qualidade interna e Qualidade externa: A qualidade interna se refere a avaliação da arquitetura interna do produto, ou seja, a qualidade de organização do código, a complexidade algorítmica entre outros, o que pode elevar o custo da manutenção e o tempo de resposta do sistema. A qualidade externa considera o produto uma caixa-preta, não importando o código ou a arquitetura utilizados. Para realizar essa avaliação são definidas seis características de qualidade interna e externa, que são ainda subdivididas em subcaracterísticas, objetivando definir o quanto um produto satisfaz as necessidades explícitas e implícitas quando utilizados em condições especificadas; • Qualidade em uso: Consiste na visão do usuário a respeito da qualidade do software no ambiente em que esta inserido. É medida em relação ao resultado da utilização do software e não em relação as características do produto. O modelo de qualidade descrito é representado de forma hierárquica, através de um conjunto de características e subcaracterísticas que devem ser verificadas, e certificam o produto de software quanto a sua qualidade. Na figura 3, podemos visualizar a estrutura hierárquica do modelo, onde são definidas no primeiro nível as características de qualidade do produto, no segundo nível as subcaracterísticas e no terceiro nível os atributos ou critérios, que são definidos de acordo com o usuário do modelo.
  • 27.
    27 Figura 3: Estruturahierárquica do modelo de qualidade. De acordo com a própria norma, essa estrutura hierárquica foi pensada visando delimitar melhor o amplo universo contemplado pela característica, definindo conceitos mais detalhados que facilitam, por exemplo, a especificação de requisitos. A norma apresenta um conjunto de seis características que um produto de software deve ter para ser considerado um software de qualidade, como podemos visualizar na figura 4: Figura 4: Características e subcaracterísticas da norma ISO/IEC 9126-1. Fonte: NBR ISO/IEC 9126-1 A ISO/IEC 9126-1 possui seis características, onde estas são divididas em subcaracterísticas,
  • 28.
    28 conforme a seguir(NBR ISO/IEC 9126-1): • Funcionalidade: Trata-se da capacidade de um software prover funcionalidades que satisfaçam o usuário em suas necessidades explícitas e implícitas, dentro de um determinado contexto de uso. Suas subcaracterísticas são: ◦ Adequação: mede o quanto o conjunto de funcionalidades é adequado às necessidades do usuário; ◦ Acurácia: representa a capacidade do software de fornecer resultados precisos ou com a precisão dentro do que foi acordado/solicitado; ◦ Interoperabilidade: trata da maneira como o software interage com outros sistemas; ◦ Segurança de acesso: mede a capacidade do sistema de proteger as informações do usuário e fornecê-las apenas às pessoas autorizadas; ◦ Conformidade relacionada à funcionalidade: capacidade do produto de software de estar de acordo com normas, convenções ou regulamentações previstas em leis e prescrições similares relacionadas à funcionalidade. • Confiabilidade: Verifica se o produto de software é imune à falhas, se mantém o nível de desempenho nas condições estabelecidas durante um determinado período de tempo. Suas subcaracterísticas são: ◦ Maturidade: capacidade de evitar falhas decorrentes de defeitos no software; ◦ Tolerância a falhas: mantém o funcionamento adequado mesmo quando ocorrem defeitos nele ou nas suas interfaces externas; ◦ Recuperabilidade: capacidade de um software se recuperar após uma falha, recuperando os dados e restabelecendo os níveis de desempenho; ◦ Conformidade relacionada à confiabilidade: capacidade do produto de software de estar de acordo com normas, convenções ou regulamentações relacionadas à confiabilidade. • Usabilidade: A capacidade do produto de software ser compreendido e seu funcionamento aprendido. Evidencia o esforço necessário para poder utilizar o software, assim como o julgamento individual deste uso. Suas subcaracterísticas são: ◦ Inteligibilidade: representa a facilidade com que o usuário pode compreender os
  • 29.
    29 conceitos utilizados pelosoftware e avaliar se o mesmo pode ser usado para satisfazer as suas necessidades específicas; ◦ Apreensibilidade: facilidade de aprendizado do sistema; ◦ Operacionalidade: facilidade de operar e controlar as operações; ◦ Atratividade: capacidade do produto de software de ser atraente ao usuário, refere-se a atributos de software que possuem a intenção de tornar o software mais atraente para o usuário, como o uso de cores e da natureza do projeto gráfico. ◦ Conformidade relacionada à usabilidade: capacidade do produto de software de estar de acordo com normas, convenções, guias de estilo ou regulamentações relacionadas à usabilidade. • Eficiência: Verifica se o tempo de execução e os recursos envolvidos são compatíveis com o nível de desempenho do software. Suas subcaracterísticas são: ◦ Comportamento em relação ao tempo: avalia se o tempo de processamento, o tempo de resposta e a velocidade na execução de suas funções estão dentro das especificações; ◦ Utilização de recursos: mede tanto os recursos consumidos quanto a capacidade do sistema em utilizar os recursos disponíveis; ◦ Conformidade relacionada à eficiência: capacidade do produto de software de estar de acordo com normas e convenções relacionadas à eficiência. • Manutenibilidade: A facilidade de modificar um produto de software, incluindo tanto as melhorias ou extensões de funcionalidade quanto as correções de falhas ou erros. Suas subcaracterísticas são: ◦ Analisabilidade: identifica a facilidade em se diagnosticar eventuais problemas e identificar as causas das deficiências ou falhas; ◦ Modificabilidade: caracteriza a facilidade com que o comportamento do software pode ser modificado; ◦ Estabilidade: avalia a capacidade do software de evitar efeitos colaterais decorrentes de modificações introduzidas; ◦ Testabilidade: representa a capacidade de se testar o sistema modificado, tanto quanto as novas funcionalidades quanto as não afetadas diretamente pela modificação;
  • 30.
    30 ◦ Conformidade relacionadaà manutenibilidade: capacidade do produto de software de estar de acordo com normas ou convenções relacionadas à manutenibilidade. • Portabilidade: A capacidade do sistema ser transferido de um ambiente para outro. Suas subcaracterísticas são: ◦ Adaptabilidade: representando a capacidade do software se a adaptar a diferentes ambientes sem a necessidade de ações adicionais (configurações); ◦ Capacidade para ser instalado: identifica a facilidade com que pode se instalar o sistema em um novo ambiente; ◦ Coexistência: mede o quão facilmente um software convive com outros instalados no mesmo ambiente; ◦ Capacidade para substituir: representa a capacidade que o sistema tem de substituir outro sistema especificado, em um contexto de uso e ambiente específicos. Este atributo interage tanto com adaptabilidade quanto com a capacidade para ser instalado; ◦ Conformidade relacionada à portabilidade: capacidade do produto de software de estar de acordo com normas ou convenções relacionadas à portabilidade. 2.3.3. ISO/IEC 14598 A ISO/IEC 14598 possui um conjunto de guias para orientar e planejar o processo de avaliação de um produto de software e oferece uma visão geral dos processos de avaliação de produtos de software, seja durante o desenvolvimento ou após sua conclusão. Pode ser utilizado por avaliadores, fornecedores, compradores, usuários e entidades certificadas, cada qual com seu objetivo. De acordo com esta norma, o objetivo principal da avaliação do produto de software é fornecer resultados quantitativos sobre a qualidade do produto de software que sejam compreensíveis, aceitáveis e confiáveis. Sua estrutura é divida em seis partes, como ilustrado na figura 5 e descrito logo a seguir:
  • 31.
    31 Figura 5 –Representação da norma ISO/IEC 14598 Fonte: SODRÉ, 2006 • ISO/IEC 14598-1 – Visão Geral: contém a estrutura de funcionamento das normas para avaliação da qualidade de produto de software e a definição dos termos técnicos. Possui também os conceitos e funcionamento de processo de avaliação de software; • ISO/IEC 14598-2 – Planejamento e Gerenciamento: são requisitos e guias que darão suporte as funções de avaliação dos produtos de software; • ISO/IEC 14598-3 – Processo para Equipe de Desenvolvedores: apresenta atividades de avaliação para serem usadas durante o desenvolvimento e manutenção do software. Além disso, fornece guia para avaliar dados de medição, guia para melhoria do processo de medição e critérios para seleção de indicadores de qualidade; • ISO/IEC 14598-4 – Processo para Compradores: norma para avaliação de produtos com objetivo de auxiliar na aquisição de um produto de software ou selecionar entre diversos produtos; • ISO/IEC 14598-5 – Processo para Avaliadores: possui orientações para realizar a avaliação
  • 32.
    32 do produto desoftware, definindo as atividades necessárias para todo o processo; • ISO/IEC 14598-6 – Módulo de Avaliação: define a estrutura e o conteúdo da documentação que será usada na descrição dos Módulos de Avaliação. Descreve o desenvolvimento e a validação dos módulos. As partes 1 e 5 possuem tradução para o Brasil como NBR ISO/IEC 14598, realizada pela ABNT. O presente trabalho utiliza estas partes da norma, que veremos mais detalhadamente devido sua importância no contexto abordado. De acordo com a norma ISO/IEC 14598, a parte 1 é uma introdução as outras partes. Ela fornece uma visão geral das outra partes também explica o relacionamento entre a ISO/IEC 14598 e o modelo de qualidade apresentado na ISO/IEC 9126. Na norma consta a informação que nesta parte há a definição dos termos técnicos utilizados nas demais partes, contém requisitos gerais para especificação e avaliação da qualidade de software e esclarece os conceitos gerais. Adicionalmente, ela também fornece uma estrutura para avaliar a qualidade de quaisquer produtos de software e estabelece os requisitos para métodos de medição e avaliação de produtos de software. Desenvolver um processo de avaliação requer tempo, pessoal e recursos. A norma ISO/IEC 14598-1 define as principais características de um processo de avaliação e descreve suas etapas (Figura 6), como (NBR ISO/IEC 14598-1, 2001):
  • 33.
    33 Figura 6: Processode Avaliação Fonte: NBR ISO/IEC 14598-1 • Estabelecer os requisitos de avaliação: identificar o produto e o propósito da avaliação, esta atividade se divide em três passos: ◦ Estabelecer o propósito da avaliação: deve ser definido qual o principal objetivo da avaliação. ◦ Identificar tipos de produtos a serem avaliados: deve ser definido o tipo de produto que será trabalhado, seja em desenvolvimento ou um produto final. ◦ Especificar modelo de qualidade: definição de um modelo de qualidade sobre o qual será realizada a avaliação. A norma ISO/IEC 14598 adota como guia o modelo de qualidade proposto pela ISO/IEC 9126-1. • Especificar a avaliação: define o escopo da avaliação e as medições a que o produto será submetido. A base para sua elaboração são os requisitos da avaliação e a descrição do produto de software. Esta atividade pode ser dividida em: ◦ Selecionar métricas: devem ser definidas métricas correlacionadas às características de
  • 34.
    34 qualidade, visto queessas não podem ser medidas diretamente. As métricas devem ser fáceis e econômicas. A ISO/IEC 14598-6 apresenta a documentação de módulos de avaliação e exemplos de métricas são encontrados na ISO/IEC 9126-2 e 3. ◦ Estabelecer níveis de pontuação para as métricas: deve ser elaborada uma escala de pontuação, que possa refletir a performance do sistema em relação a característica de qualidade que esta sendo avaliada. ◦ Estabelecer critérios para julgamento: interpretar os resultados obtidos na avaliação, visto que cada característica possui diferente relevância ao sistema. • Projetar a avaliação: com base na especificação da avaliação deve ser elaborado um plano de avaliação no qual estejam relacionados os componentes do produto de software a serem avaliados e os métodos de avaliação propostos; ◦ Produzir o plano de avaliação: descreve os métodos de avaliação e o cronograma das ações do avaliador. • Executar a avaliação: consiste na inspeção, medição e teste dos produtos e seus componentes de acordo com o plano de avaliação (podem ser utilizadas ferramentas de software para a medição e interpretação dos resultados), as ações executadas pelo avaliador devem ser registradas e os resultados colocados em versão preliminar do relatório da avaliação; ◦ Obter as medidas: as métricas selecionadas são aplicadas ao produto de software, obtendo os valores correspondentes na escala definida. ◦ Comparar com critérios: o valor obtido é comparado aos critérios estabelecidos nos níveis de pontuação da escala. ◦ Julgar os resultados: é elaborado um resultado declarando o quanto o produto de software atende aos requisitos de qualidade. A partir desse resultado, serão tomadas decisões. A ISO/IEC 14598-5 é a parte da ISO/IEC 14598 que fornece requisitos e recomendações para a implementação prática de avaliação de um produto de software, quando várias partes envolvidas necessitam entender, aceitar e confiar nos resultados da avaliação. Em especial, ela pode ser usada na aplicação dos conceitos descritos na ISO/IEC 9126 (NBR ISO/IEC 14598-5, 2001).
  • 35.
    35 Nessa parte danorma são definidas atividades necessárias para analisar os requisitos de avaliação, para especificar, projetar e executar as ações de avaliação, e concluir a avaliação de qualquer tipo de produto de software, seja um produto final ou em desenvolvimento. Pode ser utilizada por (NBR ISO/IEC 14598-5, 2001): • Avaliadores de laboratórios de teste, quando estiverem fornecendo serviços de avaliação de produtos de software; • Fornecedores de software, quando estiverem planejando avaliação de seus produtos de software, incluindo execução de avaliação por prestadores independentes de serviços de teste; • Adquirentes de software, quando requisitarem informações de avaliações do fornecedor ou de prestadores de serviços de teste; • Usuários de software, quando estiverem avaliando produtos, ou quando estiverem usando relatórios de avaliação fornecidos por laboratórios de teste; • Entidades de certificação na definição de novos procedimentos de certificação para produtos de software. 2.4. Qualidade para o Usuário Pressman (2006) define qualidade de software como “conformidade a requisitos funcionais e de desempenho explicitamente declarados, a padrões de desenvolvimento claramente documentados e a características implícitas que são esperadas de todo software profissionalmente desenvolvido”. Sendo assim, pode-se pensar que se o software possuir qualidade em relação a conformidade e no processo de desenvolvimento, a qualidade será alta. Porém, o próprio autor reconhece que a qualidade é importante, mas se o usuário não estiver satisfeito, nada mais realmente importa. Este enfoque parte da ideia de que "a qualidade está diante dos olhos de quem observa". Sendo assim, os desenvolvedores de software não podem se esquecer das necessidades implícitas de seus clientes. Mesmo sendo possível afirmar que se as qualidades internas foram observadas muito
  • 36.
    36 provavelmente as qualidadesexternas também foram atendidas, o usuário esta mais interessado no uso do software, no seu desempenho e nos efeitos que o seu uso possa produzir na organização. Eles não valorizam conhecer aspectos internos do software ou como o software foi desenvolvido. (Gomes, 2000) A qualidade estaria associada a uma visão subjetiva, baseada em preferências pessoais. Supõe-se que os bens que melhor satisfazem as preferências do consumidor são aqueles por ele considerados como tendo alta qualidade. Este enfoque levou ao conceito de "adequação ao uso", predominante na literatura da área de qualidade. A definição de qualidade, baseada neste enfoque, e mais difundida, é a definição de Juran, idêntica ao conceito apresentado. Os projetos de software muitas vezes são pensados levando em consideração a implementação, impondo limitações e restrições que tornam a “interface fácil de construir, mas frustrante de usar” (PRESSMAN, 2006). Mas para que os computadores se tornem amplamente aceitos e efetivamente usados eles precisam ser bem projetados. Isso de maneira alguma quer dizer que o design deve ser adequado a todas as pessoas, mas deve ser projetado para as necessidades e capacidades de um grupo alvo. Rocha e Baranauskas (2003) diz que usuários em geral não devem ser obrigados a pensar sobre como o computador funciona, da mesma forma que o funcionamento mecânico de um carro não é preocupação da maioria das pessoas, entretanto, a posição dos pedais, direção e câmbio têm muito impacto sobre o motorista, como também o design de sistemas computacionais têm efeito sobre seus usuários. O estudo de como ocorre essa interação, entre homem e máquina, é feita através da Interação Homem-Computador (IHC), que consiste no estudo do comportamento humano, da tecnologia computacional e das maneiras pelas quais estes influenciam um ao outro. Essa influência pode ocorrer através dos possíveis meios de comunicação que inclui o projeto, implementação e avaliação de interfaces que tornem o trabalho do homem confortável, saudável e produtivo. (GOMES, 2005). Os objetivos de IHC, segundo Rocha e Baranauskas (2003), são de produzir sistemas usáveis, seguros e funcionais. Esses objetivos podem ser resumidos como desenvolver ou melhorar a segurança, utilidade, efetividade e usabilidade de sistemas que incluem computadores. Nesse contexto o termo sistemas se refere não somente ao hardware e o software mas a todo o ambiente que usa ou é afetado pelo uso da tecnologia computacional. A parte mais difícil é de que forma atingir estes objetivos e justamente por isso IHC é uma matéria interdisciplinar que relaciona
  • 37.
    37 diversas disciplinas, comopode ser vista na Figura 7: Figura 7: Disciplinas que contribuem em IHC Fonte: adaptado de Rocha, Baranauskas, 2003 Segundo Rocha e Baranauskas (2003) as principais disciplinas são: Psicologia Cognitiva, Psicologia Social e Organizacional, Ergonomia e a Ciência da Computação; descritas a seguir: • Ciência da Computação contribui provendo conhecimento sobre as possibilidades da tecnologia e oferecendo ideias sobre como explorar todo o seu potencial. Os profissionais de computação têm se preocupado em desenvolver ferramentas de software para auxiliar ao design, implementação e manutenção de sistemas. • Psicologia Cognitiva. A preocupação principal da Psicologia é entender o comportamento humano e os processos mentais subjacentes. A Psicologia Cognitiva adotou a noção de processamento de informação como modelo para o comportamento humano e tenta colocar tudo que vemos, sentimos, tocamos, cheiramos, etc. , em termos desse modelo. • Psicologia Social tem como preocupação estudar a natureza e causas do comportamento humano no contexto social. Verifica a a influência de um indivíduo nas atitudes e comportamentos de outra pessoa , o impacto de um grupo sobre o comportamento e as
  • 38.
    38 atitudes de seusmembros , o impacto de um membro nas atividades e estrutura de um grupo e o relacionamento entre estrutura e atividades de diferentes grupos . • A Ergonomia se interessa de maneira geral pelo melhoramento das condições de trabalho. Já a ergonomia de software, concentra-se particularmente nas condições de utilização de um software por seus usuários. Seu objetivo é conceber e fazer o design de diversas ferramentas e artefatos para diferentes ambientes de trabalho, domésticos e de diversão, adequados às capacidades e necessidades de usuários. O objetivo é maximizar a segurança, eficiência e confiabilidade da performance do usuário, tornando as tarefas mais fáceis e aumentando os sentimentos de conforto e satisfação. As primeiras contribuições dos especialistas em fatores humanos para IHC foram no design do hardware (teclados mais ergonômicos, posições do vídeo, etc.) e nos aspectos de software que poderiam resultar em efeitos fisiológicos adversos nos humanos, como a forma da apresentação de informação na tela. ◦ A Psicologia Organizacional dá aos designers o conhecimento sobre estruturas organizacionais e sociais e sobre como a introdução de computadores influencia práticas de trabalho. Em grandes organizações, por exemplo, o computador serve tanto como meio de comunicação, quanto para fazer a folha de pagamento e contabilidade em geral, para controlar entrada e saída de pessoas, etc. Para Pressman (2006), “a interação homem-computador é o mecanismo por meio do qual se estabelece um diálogo entre o programa e o ser humano. Se os fatores humanos tiverem sido levados em conta, o diálogo será harmonioso e um ritmo será estabelecido entre o usuário e o programa. Se os fatores humanos tiverem sido ignorados, o sistema quase sempre será visto como possuindo pouca usabilidade”. Dentro das definições de IHC, a usabilidade é um conceito chave que diz respeito a produção de sistemas fáceis de aprender e de usar. Não basta que o produto ofereça muitas funções, é fundamental que os usuários possam usufruir delas, e, para isso a facilidade de utilização é essencial. O termo usabilidade começou a ser usado no início da década de 80 e a primeira norma que definiu o termo usabilidade foi a ISO/IEC 9126, sobre qualidade de software. Sua abordagem é claramente orientada ao produto e ao usuário, pois considera a usabilidade uma das características
  • 39.
    39 de qualidade existenteem um produto de software. Quando da evolução da norma expressada na NBR ISO/IEC 9126-1, este conceito pode ser definido pela seguinte definição: "Usabilidade é a capacidade do produto de software de ser compreendido, aprendido, operado e atraente ao usuário, quando usado sob condições especificadas". A norma NBR ISO/IEC 9126 também aborda a qualidade em uso, onde avalia a qualidade do produto de software sob a perspectiva do usuário, no ambiente onde esta envolvido. É medida em termos do resultado do uso do software e não das propriedades do próprio software. A norma atribui a seguinte definição a qualidade em uso: “Capacidade do produto de software de permitir que usuários especificados atinjam metas especificadas com eficácia, produtividade, segurança e satisfação em contextos de uso especificados”. A definição de qualidade em uso na norma se assemelha a definição de usabilidade, porém qualidade em uso pode ser influenciada por qualquer característica de qualidade, podendo assim ser mais ampla que usabilidade. De acordo com Rocha e Baranauskas (2003), o que se pode depreender dos princípios de usabilidade é que eles tratam basicamente de dois aspectos: a tarefa e as características individuais dos usuários. Portanto, conhecer o usuário é fundamental para se fazer o design de um sistema usável. Entender os principais modos de classificar usuários ajuda a fazer um bom design que atenda a maior diversidade desses. Na análise do usuário sua experiência é um fator relevante, e essa experiência deve ser analisada em três dimensões: com relação ao uso do sistema, com relação ao uso de computadores em geral e com relação ao domínio da aplicação. Nielsen (1993) apresenta essa diferenciação em um gráfico que ele denomina de cubo do usuário como pode ser visto na Figura 8:
  • 40.
    40 Figura 8: Trêsdimensões das diferentes experiências de usuários Fonte: adaptado de Nielsen, 1993. Segundo Nielsen (1993), é importante ressaltar que o uso do sistema altera a categoria do usuário, um novato não é um eterno novato, e isso tem importantes implicações no design. Algumas interfaces são e devem ser projetadas com ênfase apenas em novatos onde a facilidade de aprendizagem é fundamental, enquanto outras podem ser pensadas para ser adaptar ao usuário a medida que este se tornar experiente no sistema. Outro fator que tem impacto no design da interface é a experiência com computadores, pois usuários experientes em um amplo conjunto de aplicações têm mais ideias de como o computador normalmente trata várias situações. Já a experiência no domínio da tarefa é importante por definir a abordagem do sistema, pois interfaces projetadas para especialistas podem fazer uso de terminologia e jargão específico de uma área de especialidade. O uso de um sistema computacional envolve o usuário num mapeamento dos seus objetivos na estrutura e funcionalidade do sistema. A complexidade dessa tarefa de mapeamento depende parcialmente dos esforços do projetista em entender e considerar no seu projeto as necessidades inerentes à tarefa. De acordo com a norma NBR ISO/IEC 9126, para que um sistema seja operado por um usuário, a combinação de funcionalidade, confiabilidade, usabilidade e eficiência podem ser medidas externamente pela qualidade em uso. Além disso, essas características são utilizadas na metodologia apresentada no capítulo 4, por serem características facilmente percebidas pelo usuário. Nas próximas sessões essas características serão detalhadas de acordo com a visão de outros autores ou entidades da área de qualidade.
  • 41.
    41 2.4.1. Usabilidade O termousabilidade é frequentemente usado para se referir à capacidade de um produto ser facilmente usado. Isto corresponde a definição de usabilidade como uma qualidade de software na NBR ISO/IEC 9126-1: “Capacidade do produto de software de ser compreendido, aprendido, operado e atraente ao usuário, quando usado sob condições especificadas”. Um produto não tem usabilidade intrínseca, somente capacidade de ser usado em um contexto particular, conforme definido na norma NBR 9241-11 (2002). A usabilidade definida em termos de qualidade de um sistema de trabalho em uso depende, necessariamente, de todos os fatores que podem influenciar no uso de um produto do mundo real, incluindo fatores organizacionais tais como práticas de trabalho e localização ou aparência de um produto, e diferenças individuais entre usuários incluindo aquelas devido a fatores culturais e preferências. Esta ampla abordagem tem a vantagem que é concentrada no propósito real do projeto de um produto – que ele encontra as necessidades de usuários reais desenvolvendo tarefas reais em um ambiente organizacional, técnico, fisicamente e real (NBR 9241-11, 2002). Usabilidade é definida em função de vários atributos e é tradicionalmente associada a cinco deles (Nielsen, 1993, tradução nossa): • Facilidade de aprendizagem (Learnability): O sistema precisa ser fácil de aprender de forma que o usuário possa rapidamente começar a interagir. Segundo Nielsen, quando se analisa a facilidade de aprendizagem, é preciso ter em mente que geralmente o usuário aprende uma interface durante o seu uso. Portanto, esse fator é avaliado em função do tempo que o usuário demora para atingir um suficiente grau de proficiência na execução de suas tarefas. • Eficiência (Efficiency): O sistema precisa ser eficiente no uso, de forma que uma vez aprendido o usuário tenha um elevado nível de produtividade. Para isso o usuário precisa ter algum tempo de experiência utilizando o sistema. Um modo típico de avaliar esse atributo é definir de alguma forma o que significa um usuário experiente e avaliar um grupo desses executando tarefas típicas de um sistema. • Facilidade de relembrar (Memorability): O sistema precisa ser facilmente relembrado, de
  • 42.
    42 forma que ousuário ao voltar a usá-lo depois de um certo tempo não tenha novamente que aprendê-lo. Esse atributo tanto se refere a usuários casuais, como para aqueles sistemas utilitários que são usados em períodos específicos. • Erros (Errors): O sistema precisa ter uma pequena taxa de erros, de modo que o usuário cometa poucos erros durante o seu uso e, em errando, deve ser fácil a recuperação, sem perda de trabalho. Erros catastróficos, em que o usuário perde tudo por exemplo, não podem ocorrer. • Satisfação subjetiva (Satisfaction): Os usuários devem gostar do sistema, ou seja, deve ser agradável de forma que o usuário fique satisfeito ao usá-lo. Satisfação subjetiva pode ser medida simplesmente perguntando ao usuário sobre suas opiniões subjetivas. Para um único usuário o resultado desse questionamento é subjetivo, mas quando se considera muitos usuários, a média das respostas passa a ser uma medida objetiva. 2.4.2. Confiabilidade Confiabilidade pode ser definida, segundo Mazzola (2010), como “a capacidade dos produtos de software de realizarem suas tarefas de forma precisa, conforme definido nos requisitos e na especificação.”. Ainda segundo o autor, esse é um fator de suma importância em qualquer categoria de software, pois nenhum outro fator poderá compensar a ausência de correção. Não é interessante e nem viável produzir um software extremamente desenvolvido do ponto de vista da interface, por exemplo, se as suas funções são executadas de forma incorreta, porém, para que a correção alcance um nível satisfatório irá depender, principalmente, da definição dos requisitos do software e do desenvolvimento de acordo com esses requisitos. Sendo assim, é possível perceber que “para garantir a confiabilidade adequada: as ações devem funcionar como especificado, os dados apresentados devem refletir o conteúdo do banco de dados e atualizações devem ser aplicadas corretamente.” (SHNEIDERMAN, PLAISANT, 2005). A confiança que os usuários tem nos sistemas é muito frágil, uma única experiência com dados incorretos ou resultados inesperados irá prejudicar por muito tempo a credibilidade do sistema.
  • 43.
    43 De acordo comPressman (2006): “Confiabilidade de software, ao contrário de muitos outros fatores de qualidade, pode ser medida diretamente e estimada usando dados históricos e de desenvolvimento”. Confiabilidade de software é definida em termos estatísticos como “a probabilidade de operação livre de falhas de um programa de computador, em um ambiente especificado, durante um tempo especificado” (Musa apud Pressman, 2006). Mediante esse conceito, surge a dúvida em relação a palavra “falha”, dúvida essa abordada da seguinte maneira por Pressman (2006): “No contexto de qualquer discussão de qualidade e confiabilidade de software, falha é a não conformidade com os requisitos de software”. A norma NBR ISO/IEC 14598-1, também apresenta uma definição para a palavra: “Término da capacidade de um produto de executar uma função requerida ou a sua incapacidade de executá-la dentro de limites previamente especificados”. Outro fator importante relacionada a confiabilidade é a disponibilidade do sistema que, segundo Shneiderman e Plaisant (2005), depende de fatores externos e alheios ao software como os componentes de hardware e de rede. Se o sistema não está disponível ou apresenta erros, irá prejudicar o desempenho do usuário em suas atividades, tornando-se assim um empecilho ao invés de uma solução. Além disso, todos os fatores que levem o usuário a confiar no sistema, como garantir a integridade dos dados e alertar sobre destruição ou adulteração dos dados, permitirão que o usuário se sinta no controle do sistema, podendo confiar e compreender sua utilização (Shneiderman, Plaisant, 2005). Os requisitos de confiabilidade a serem considerados são (Rational, 2001): • frequência e gravidade de falha • possibilidade de recuperação • possibilidade de previsão • exatidão • tempo médio entre falhas
  • 44.
    44 2.4.3. Eficiência Segundo anorma NBR 9241-11, o termo eficiência pode ser definido como “Recursos gastos em relação à acurácia e abrangência com as quais usuários atingem objetivos”. Para entender melhor o conceito apresentado, na própria norma há a exemplificação das medidas de eficiência: “Medidas de eficiência relacionam o nível de eficácia alcançada ao dispêndio de recursos”, por exemplo, “Se o objetivo desejado for imprimir cópias de um relatório, então a eficiência pode ser especificada ou medida pelo número de cópias usáveis do relatório impresso, dividido pelos recursos gastos na tarefa tal como horas de trabalho, despesas com o processo e materiais consumidos.” Sendo assim, podemos concluir que a eficiência só é positiva quando todos os fatores envolvidos são positivos, pois, seguindo o exemplo, não adianta possuir uma grande quantidade de cópias do relatório, se ocorreu desperdício de recursos e/ou tempo. Como conceito de eficiência Mazzola (2010) apresenta a seguinte definição: “A eficiência está relacionada com a utilização racional dos recursos de hardware e de sistema operacional da plataforma onde o software será instalado. Recursos tais como memória, processador e co- processador, memória cache, recursos gráficos, bibliotecas (por exemplo, primitivas de sistema operacional) devem ser explorados de forma adequada em espaço e tempo.” 2.4.4. Funcionalidade Um estudo sobre características da funcionalidade de software foi realizado pelo SUMI, que significa Software Usability Measurement Inventory (KIRAKOWSKI, PORTEUS, CORBETT apud MEIRELLES, 2008), definindo funcionalidade como a capacidade de um software ser usado com eficiência e satisfação para atingir objetivos específicos em um determinado ambiente. O SUMI é um método de medir a qualidade do software a partir do ponto de vista do usuário final, no documento há a definição de algumas características sobre a funcionalidade do software, das quais serão destacadas as seguintes:
  • 45.
    45 • Utilidade: capacidadede resolver ou ajudar a resolver problemas para os quais o software foi proposto. • Controle: capacidade de um produto em responder de uma forma natural e consistente aos comandos e entradas de dados fornecidos; De acordo com Martinez (2011), a funcionalidade do sistema é importante no sentido de estar adequada aos requisitos da tarefa do usuário, ou seja, o design do sistema deve permitir ao usuário efetuar a tarefa pretendida e de modo mais fácil e eficiente. Isso inclui não somente ter a funcionalidade adequada disponível, mas também torná-la usável, na forma de ações que o usuário precisa efetuar para executar a tarefa. Shneiderman e Plaisant (2005), afirmam que o primeiro acerto na análise de requisitos é conhecer os usuários e suas necessidades. As tarefas mais frequentes são fáceis de determinar, mas as tarefas ocasionais, as tarefas excepcionais para situações de emergência, e as tarefas de reparação para lidar com erros no uso da interface são mais difíceis de descobrir. Os autores também afirmam que a análise de tarefas é fundamental, porque as interfaces com funcionalidade inadequada frustram os usuários e muitas vezes são rejeitadas ou subutilizadas. Se a funcionalidade é inadequada, não importa o quão bem a interface é projetada, da mesma maneira que fornecer funcionalidade excessiva (que é provavelmente o erro mais comum de designers) também é um perigo, porque a desordem e a complexidade tornam a implementação, manutenção, aprendizagem, e uso mais difícil. Ainda falando sobre funcionalidade, Mazzola (2010) define um dos atributos de funcionalidade, a compatibilidade: “facilidade com a qual produtos de software podem ser combinados com outros”. Este é um fator relativamente importante, dado que um produto de software é construído (e adquirido) para trabalhar convivendo com outros softwares. A impossibilidade de interação com outros produtos pode ser, sem dúvida, uma característica que resultará na não escolha do software ou no abandono de sua utilização. Os requisitos funcionais podem incluir (Rational, 2001): conjuntos de recursos, habilidades e segurança.
  • 46.
    46 3. Mineração deDados Segundo Silva (2008), a informação vem desempenhando um papel fundamental em todos os setores da sociedade. O desenvolvimento e sucesso das organizações baseiam-se na capacidade de coletar, tratar, interpretar e utilizar a informação de forma eficaz. No entanto, vê-se nos últimos anos um grande volume de dados gerados devido ao rápido avanço dos recursos computacionais. Esse crescimento do volume de dados tem gerado a necessidade de novas técnicas e ferramentas capazes de transformar dados em informações significativas e em conhecimento. Em resposta a essa necessidade, surgiu a Mineração de Dados (Data Mining). Mineração de Dados, faz parte de um processo maior denominado Descoberta de Conhecimento em Banco de Dados (Knowledge Discovery in Database – KDD), onde a própria Mineração de Dados e as outras partes são apenas instâncias do KDD (Braga, 2005). Antes de prosseguir com mais detalhes sobre a Mineração de Dados e KDD, é importante conceituar alguns termos que estão intimamente ligados a eles. Segundo Rezende (2005), dado é um elemento da informação, um conjunto de letras ou dígitos, que tomado isoladamente não confere nenhum conhecimento, ou seja, não contém um significado claro. Eles representam a matéria-prima a ser utilizada na produção de informações. Já a informação é todo dado trabalhado, útil, com valor significativo atribuído ou agregado a ele, e com um sentido natural e lógico para quem usa a informação, ou seja, informação são dados que sofreram algum tipo de processamento para serem exibidos em uma forma inteligível às pessoas. Quando a informação é “trabalhada” por pessoas ou por recursos computacionais, possibilitando a geração de cenários, simulações e oportunidades, esta pode ser chamada de conhecimento. O conceito de conhecimento complementa o de informação com valor relevante e de propósito definido. Conhecimento são informações que sua confiabilidade, importância e relevância foram analisadas e avaliadas.
  • 47.
    47 3.1. Descoberta deConhecimento em Banco de Dados (Knowledge Discovery in Database – KDD) Descoberta de Conhecimento em Banco de Dados, ou apenas KDD, é o processo que envolve a automação da identificação e do reconhecimento de padrões em banco de dados (Silva, 2008). Segundo Braga (2005), o termo KDD foi criado em 1995 para designar o conjunto de processos, técnicas e abordagens que propiciam o contexto no qual a Mineração de Dados terá lugar. Em suma, é a aplicação do método científico moderno aos problemas do mundo dos negócios. O KDD é o processo não trivial de identificar padrões válidos, novos, potencialmente úteis e, finalmente, compreensível em dados. Este processo vem evoluindo a partir da interseção de campos de pesquisa, tais como aprendizagem de máquina, reconhecimento de padrões, banco de dados, estatística, inteligência artificial, aquisição de conhecimento para sistemas especialistas, visualização de dados e computação de alta performance. O objetivo desta junção é a extração de conhecimento de alto nível a partir de dados de baixo nível, em um contexto de grandes conjuntos de dados (Fayyad, 1996). Ainda segundo Fayyad (1996), pode-se dividir o KDD em etapas como mostra a Figura 9. O primeiro passo no processo de KDD é entender o domínio da aplicação, identificar o problema e definir os objetivos a serem atingidos. O processo inicia com os dados brutos e finaliza com a extração de conhecimento (Martinhago, 2005).
  • 48.
    48 Figura 9: Etapasdo KDD. Fonte: (Fayyad, 1996) Seguem as etapas do KDD: • Seleção: este é o passo da seleção e coleta do conjunto de dados ou variáveis necessárias. Como nem sempre todos os dados a serem utilizados podem estar disponibilizados em bases de dados adequadas, pode haver a necessidade de um trabalho de compatibilidade nesta etapa (Barbosa, 2007). • Pré-processamento e Limpeza: é a atividade através da qual dados estranhos ou inconsistentes e ruídos, são tratados e onde são estabelecidas as estratégias para a resolução dos problemas de ausência de dados (Barbosa, 2007). • Transformação: os dados são transformados ou consolidados em formatos apropriados para minerar, e consiste em discretizar dados (os valores contínuos dos atributos são divididos numa lista de intervalos, convertendo valores contínuos em valores discretos), com isso obtém uma melhora da compreensão do conhecimento, redução do tempo de processamento, diminuição do espaço de busca, facilitação do algoritmo de tomada de decisões, agregação de dados (agrega dados existentes nas informações de modo que essas agregações contribuam no processo de descoberta de conhecimento), derivação de dados (adicionam-se
  • 49.
    49 novos dados derivadospor uma operação ou por séries de operações de dados existentes na tabela de dados), e redução de dados (reduz-se o número de variáveis a considerar) (Silva, 2008). • Processamento: os dados são analisados por um algoritmo e transformados em informações (resultados, padrões) úteis que serão avaliados no processo seguinte e consiste em escolha da função de mineração de dados, seleção de algoritmo de mineração de dados, e Data Mining (análise dos dados armazenados através de um programa computacional capaz de analisar os dados e encontrar padrões de interesse) (Silva, 2008). • Interpretação e Avaliação: os resultados do processo de descoberta do conhecimento podem ser mostrados de diversas formas que devem possibilitar uma análise criteriosa na identificação da necessidade de retorno a qualquer um dos estágios anteriores do processo de KDD (Barbosa, 2007). 3.2. Mineração de Dados (Data Mining) De acordo com Barbosa (2007), Mineração de Dados ou Data Mining, é a combinação de diferentes técnicas de sucesso comprovado (Figura 10), como estatísticas, inteligência artificial, e banco de dados. Estas técnicas tem como objetivo extrair informações relevantes para o negócio podendo ser usadas para agregar valor ao mesmo. Conforme Furtado (2002), a Mineração de Dados consiste na aplicação destas técnicas a grandes bases de dados para encontrar tendências ou padrões com a finalidade de apoiar decisões. Este conjunto de técnicas de Mineração de Dados é capaz de reduzir uma grande quantidade de dados em padrões e regras que contém um volume expressivo de informações. E, como visto anteriormente, a Mineração de Dados é parte de um processo maior denominado KDD. Entretanto, tornou-se mais conhecida que o KDD, por ser a etapa em que são aplicadas as técnicas de busca de conhecimentos (Gutierrez e Bertrand, 2005).
  • 50.
    50 Figura 10: Técnicasde origem da Mineração de Dados (Data Mining). Fonte: Barbosa, 2007. 3.2.1 Linhagens da Mineração de Dados A Mineração de Dados, descende fundamentalmente de 3 linhagens: estatística clássica, inteligência artificial (IA) e o aprendizado de máquina (casamento entre a estatística e a IA) (Pampa 2003 apud Silva 2008). • Estatística: a Estatística Clássica envolve conceitos como variância, distribuição normal, desvio simples, análise de regressão, análise de conjuntos, intervalos de confiança e análise de discriminante, todos usados para o estudo dos dados e seus relacionamentos (Barbosa, 2007). • Inteligência Artificial: é uma disciplina com base nos fundamentos da heurística, diferentemente da estatística, sua tentativa é a de imitar a maneira como o homem pensa na resolução dos problemas estatísticos (Barbosa, 2007). • Aprendizado de Máquina: pode-se descrever como a união entre a estatística e a IA, tenta fazer com que os programas de computador "aprendam" com os dados estudados por eles,
  • 51.
    51 de forma queesses programas tomem diferentes decisões com base nas características dos dados estudados (Barbosa, 2007). 3.2.2 Tarefas da Mineração de Dados Martinhago (2005) em seu trabalho define tarefa como um problema de descoberta de conhecimento a ser solucionado. E, de acordo com este autor, no KDD existem diversas tarefas que dependem principalmente do domínio de aplicação e do interesse do usuário. Cada uma delas tem a finalidade de extrair um tipo diferente de conhecimento da base de dados e podendo requerer um algoritmo diferente em cada tarefa. Amo (2004), diz que tarefa consiste na especificação do que estamos querendo buscar nos dados, que tipo de regularidades ou categoria de padrões temos interesse em encontrar, ou que tipo de padrões poderiam nos surpreender. A etapa de Mineração de Dados no KDD possui tarefas básicas, que são classificadas nas categorias descritivas e preditivas, que são: Classificação, Associação, Segmentação, Estimativa, e Sumarização. As descritivas procuram padrões interpretáveis pelos humanos que descrevem os dados antes de realizar a previsão, sendo útil ao suporte a decisão. Já as preditivas envolvem o uso dos atributos de um conjunto de dados para prever o valor futuro da variável meta, sendo útil à tomada de decisões (Rezende, 2005). • Classificação: diz respeito a predição de uma variável-alvo que é de uma natureza categórica. Ou, em outras palavras, observar as características de um objeto e alocá-lo em uma classe predefinida: tal como fraudulento/não-fraudulento, comprador, não-comprador (Gutierrez e Bertrand, 2005). Conforme Rezende (2005), a tarefa de classificação é uma função de aprendizado que mapeia dados de entrada, ou conjunto de dados de entrada em um número finito de categorias. Nela cada exemplo pertence a uma classe, entre um conjunto predefinido de classes. Os exemplos consistem de um conjunto de atributos e um atributo-classe discreto. O objetivo de um algoritmo de classificação é encontrar algum
  • 52.
    52 relacionamento entre atributose uma classe, de modo que o processo de classificação possa usar este relacionamento para predizer a classe de um exemplo novo e desconhecido. • Associação: conforme Romão (2002), uma das tarefas mais simples e mais conhecidas em Mineração de Dados é conhecida por Extração de Regras de Associação na forma SE X ENTÃO Y, onde X e Y são conjuntos de itens. Amo (2004) diz que uma regra de associação é um padrão da forma X Y , onde X e Y são conjuntos de valores (artigos comprados por→ um cliente, sintomas apresentados por um paciente, etc). Esta tarefa visa a combinação de itens importantes, de forma que a presença de um item em uma determinada transação pressupõe a presença de outro na mesma transação. Esta tarefa pode ser exemplificada pelo clássico exemplo norte-americano, em que um varejista descobriu que compra de fraldas estaria relacionada com aquisição de cervejas (Gutierrez e Bertrand, 2005). • Segmentação (clustering): segundo Rezende (2005)¹, esta é uma tarefa descritiva que procura identificar um conjunto finito de agrupamentos, ou clusters, a partir dos dados. Isso é feito, geralmente, de maneira que exemplos com valores de atributos similares são agrupados em um mesmo cluster. O autor ainda ressalta que os clusters podem ser mutuamente exclusivos ou sobrepostos. Gutierrez e Bertrand (2005) citam a segmentação, ou clustering, como a tarefa que objetiva reunir objetos em grupos, de modo que, os objetos de um grupo devem ser os mais semelhantes entre si e os menos semelhantes a objetos de outros grupos. Amo (2004) afirma que diferentemente da classificação e predição onde os dados de treinamento estão devidamente classificados e as etiquetas das classes são conhecidas, a análise de clusters trabalha sobre dados onde as etiquetas das classes não estão definidas. A tarefa consiste em identificar agrupamentos de objetos, agrupamentos estes que identificam uma classe. A segmentação, ou clustering, pode encontrar além de grupamentos, exceções, podendo ser aplicada, por exemplo, em atividades de marketing para identificar os segmentos de mercado, para encontrar estruturas significativas nos dados e na descoberta de fraudes ou dados incorretos (Martinhago, 2005 apud Groth, 1998). • Estimativa (regressão): para Gutierrez e Bertrand (2005), estimativa é um processo semelhante a classificação, mas diz respeito a variáveis-alvo contínuas, ainda conforme os autores, estimativa e classificação são os principais objetivos em tarefas de Mineração de
  • 53.
    53 Dados. Rezende (2005)também diz que a tarefa de estimativa é conceitualmente similar a de classificação, sendo a principal diferença o atributo predito, que em vez de ser discreto é contínuo. • Sumarização: a tarefa de sumarização envolve métodos para encontrar uma descrição compacta para um subconjunto de dados (Fayyad et a, 1996). 3.2.3 Técnicas de Mineração de Dados A técnica de mineração consiste na especificação de métodos que garantam como descobrir os padrões que interessam (Amo, 2004). A área de Mineração de Dados engloba um vasto campo de técnicas analíticas, variando das simples até as sofisticadas. Uma característica comum a todas, porém, é que as técnicas se baseiam em princípios muito simples que são compreensíveis até mesmo para aqueles indivíduos sem treino matemático ou estatístico. Na Mineração de Dados, muitas das técnicas tomam princípios básicos como comparação (regras de associação) ou analogias biológicas (redes neurais e algoritmos genéticos) como a base para o procedimento (Hair et al, 1998). As técnicas de mineração de dados podem ser aplicadas a tarefas como classificação, estimativa, associação, segmentação e sumarização (Dias, 2002). A Mineração de Dados é um campo que, atualmente, compreende muitas ramificações importantes. Cada tipo de tecnologia tem suas próprias vantagens e desvantagens. A familiaridade com as técnicas é necessária para facilitar a escolha de uma delas de acordo com os problemas apresentados (Dias, 2002). Atualmente existem várias técnicas de Mineração de Dados, no entanto, este trabalho apresenta a seguir a descrição de algumas das principais técnicas mais citadas na literatura. São elas: redes neurais, árvores de decisão, algoritmos genéticos, indução de regras, e raciocínio baseado em casos. • Redes Neurais: Redes Neurais são uma das ferramentas mais adequadas para serem associadas com Mineração de Dados. Inspirada no funcionamento do sistema neurológico
  • 54.
    54 do cérebro, arede neural tenta “aprender”, por tentativas repetidas, como melhor se organizar para conseguir previsão máxima (Hair et al, 1998). Dias (2002) define como modelos inspirados na fisiologia do cérebro, onde o conhecimento é fruto do mapa das conexões neuronais e dos pesos dessas conexões. As Redes Neurais tentam construir representações internas de modelos ou padrões detectados nos dados, mas essas representações não são apresentadas para o usuário. Estes elementos de processamento são interconectados em uma rede que pode identificar padrões nos dados uma vez expostos aos mesmos, ou seja, a rede aprende através da experiência, tais como as pessoas (Barbosa, 2007). • Árvores de Decisão: Hair (1998) define Árvores de decisão como uma partição sequencial do conjunto de dados a fim de maximizar as diferenças em uma variável dependente. Ainda de acordo com o autor os dois programas mais amplamente usados são CHAID (Detector de Interação Qui-Quadrado), e CART (Árvores de Classificação e Regressão). As Árvores de decisão fornecem um modo conciso para desenvolver grupos que são consistentes em seus atributos, mas variam em termos da variável dependente. Barbosa (2007) diz que este método é indicado no uso da Mineração de Dados quando o objetivo é a classificação de dados ou a predição de saídas. • Algoritmos Genéticos: estes são métodos de busca e otimização, inspirados na Teoria da Evolução, onde cada nova geração, soluções melhores tem mais chances de ter “descendentes” (Dias, 2002). Algoritmos Genéticos imitam o processo evolucionário usando seleção natural. Eles começam com uma pequena quantidade de possíveis soluções para um problema, e lentamente, com o passar do tempo a seleção natural “elimina” as soluções inferiores e resulta em um melhoramento geral, continuando o processo até que níveis aceitáveis de previsão são alcançados. Uma vantagem obtida com os algoritmos genéticos é que eles geralmente convergem para a solução ótima. A desvantagem é que isto pode levar muitas gerações e um grande número de indivíduos é exigido (Hair et al, 1998). • Indução de Regras: Indução de Regras é o processo de analisar uma série de dados e, a partir dela, gerar padrões. O processo é, em sua essência, semelhante àquilo que um analista humano faria em uma análise exploratória. A técnica em questão se refere a detecção de
  • 55.
    55 tendências dentro degrupos de dados ou de "regras" sobre os dados. As regras são, então, apresentadas aos usuários como uma lista "não encomendada", ou seja, sem que obedeçam algum critério previamente estabelecido. Realiza a descoberta de regras de previsão, do tipo SE...ENTÃO, onde a parte SE (a "condição") da regra especifica alguns valores de atributos previsores e a parte ENTÃO da regra prevê um valor para um determinado atributo cuja previsão é desejada (Barbosa, 2007). A indução de regras estabelece uma correlação estatística entre atributo de dados e conjunto de dados (Dias, 2002). Nesta técnica duas medidas são aplicadas para avaliar as associações. A primeira é a confiança, medida como a possibilidade de um evento ocorrer quando um outro também acontecer. A segunda medida é o suporte, que é o percentual de tempo que o evento conjunto acontece na população total (Hair et al, 1998). • Raciocínio Baseado em Casos: baseado no método do vizinho mais próximo, combina e compara atributos para estabelecer hierarquia de semelhança (Dias, 2002). Também conhecido como MBR (Raciocínio Baseado em Memória), utiliza como base o método do vizinho mais próximo, e tenta solucionar um dado problema fazendo uso direto de experiências e soluções passadas, podendo utilizar como medida da exatidão dos resultados a distância dos vizinhos (Martinhago, 2005). Esta técnica é apropriada para as tarefas de classificação e segmentação. Em seguida, pode-se observar na Tabela 3 uma relação entre tarefas, técnicas, e alguns exemplos de aplicações das mesmas. Tabela 3: Relação entre Técnica e Tarefa de Mineração de Dados. Técnicas Tarefas Exemplos Redes Neurais Classificação e Segmentação Perceptron; Rede MLP; Redes de Kohonen; Rede Hopfield; Rede BAM; Redes ART; Rede IAC; Rede LVQ; Rede Counterpropagation; Rede RFB; Rede PNN; Rede Time Delay; Neocognitron; Rede BSB; ou outros. Árvores de Decisão Classificação CART; CHAID; C5.0/See5; Quest; ID-3; C4.5; SLIQ;
  • 56.
    56 SPRINT; ou outros. Algoritmos Genéticos Classificaçãoe Segmentação Algoritmo Genético Simples; Genitor; CHC; Algoritmo de Hillis; GA-Nuggets; GA-PVMINER; ou outros. Indução de Regras Associação Apriori; AprioriTid; AprioriHybrid; AIS; SETM; e DHP; Raciocínio Baseado em Casos Classificação e Segmentação BIRCH; CLARANS; CLIQUE; ou outros.
  • 57.
    57 4. Avaliação daQualidade do Produto de Software através de Mineração de Dados Baseado nos capítulos anteriores, e no referencial teórico apresentado neste trabalho, utilizou-se uma metodologia onde a qualidade do produto de software é avaliada de acordo com o grau de satisfação dos usuários, ou seja, de acordo com a qualidade da interação entre os usuários e os produtos de software. Como forma de extração de conhecimento da avaliação, esta metodologia utiliza a Mineração de Dados. Esta metodologia foi proposta por Silva (2008), cujo objetivo é definir quais critérios precisam ser melhorados para garantir a qualidade do software e quais grupos de usuários possuem maior ou menor dificuldade para possível correção direcionada as reais necessidades. A metodologia é baseada em três etapas, tais como, seleção dos critérios que serão avaliados no software; seleção da técnica de avaliação que será utilizada; e tratamento das etapas do KDD (Silva, 2008). 4.1 Seleção dos Critérios e da Técnica de avaliação Primeiramente deve-se selecionar as características presentes na ISO 9126-1 que sejam facilmente percebidas pelos usuários comuns (Silva, 2008), que são mostradas, bem como suas sub- características, na Tabela 4.
  • 58.
    58 Tabela 4: Características,Sub-características e Critérios utilizados na avaliação do software. Fonte: Silva (2008). Características Sub-características Critérios Funcionalidade Acurácia e Segurança de acesso Precisão, Validação dos Dados e Segurança Confiabilidade Tolerância à falhas e Recuperabilidade Recuperação de Dados e Resistência aos Erros. Usabilidade Operacionalidade, Atratividade, Apreensibilidade e Inteligibilidade Help, Navegação, Documentação, Glossário, Aproveitamento de Dados, Mensagens e Padronização Eficiência Comportamento em relação ao tempo Tempo de Processamento Definidas as características, deve-se escolher a técnica de avaliação de satisfação do usuário, que no caso deste trabalho, será a pesquisa de opinião através de questionários (Figura 11), escolhida por apresentar baixo custo, rapidez de aplicação e dispensar a participação de especialistas. Após a coleta dos dados, estes são armazenados em um banco de dados para, posteriormente, serem trabalhados nas etapas seguintes.
  • 59.
    59 Figura 11: Questionárioutilizado como forma de avaliação da satisfação do usuário. Fonte: adaptado de Silva (2008). O questionário encontra-se também como apêndice deste trabalho e pode-se observar de forma mais clara os itens que o compõem, como os referentes ao usuário, aos critérios do software, bem como sua descrição, e, a satisfação do usuário em relação ao software. Os itens referentes ao usuário são: módulo do software que utiliza/utilizou; nome do usuário; setor em que trabalha; cargo que ocupa; e o tempo de experiência no software a ser avaliado, em anos. Os itens referentes aos critérios são: validação dos dados; documentação; glossário; help; mensagens; navegação; padronização; precisão; aproveitamento dos dados; recuperação de dados; resistência aos erros; segurança; e tempo de processamento, que podem ser classificados pelos usuários como Muito Bom, Bom, Médio, Ruim, Péssimo, ou Inexistente. Já a satisfação do usuário em relação ao software pode ser classificada pelo mesmo como alta, média, ou baixa.
  • 60.
    60 4.2 Etapas doKDD A metodologia em questão irá aplicar as etapas do KDD no estudo de caso apresentado no capítulo seguinte. Aqui são apresentadas as formas como isso acontecerá. Neste trabalho segue-se a abordagem utilizada por Silva (2008), onde as etapas estão divididas da seguinte forma: seleção, pré-processamento, transformação, mineração de dados, pós-processamento (análise). • Seleção: nesta etapa é identificado o domínio utilizado para a geração de conhecimento, e utilizar-se-á os dados coletados através do questionário apresentado anteriormente. • Pré-processamento: aqui, elimina-se campos referente aos usuários, no caso, os campos nome e setor, pois não há a necessidade desta identificação, porque tal informação não irá influenciar no conhecimento da qualidade do software utilizado. É também eliminado dos registros os campos com resposta nula, pois estes influenciam negativamente para a obtenção de resultados úteis. • Transformação: será realizada nesta etapa a transformação do campo tempo de experiência. Da medida em anos, passará aos valores nominais em conformidade com os níveis que são: novato, médio, e experiente. Para que isto seja possível, é necessário a obtenção do intervalo entre os tempos mínimo e máximo da amostra, e dividi-lo em três faixas. Poderá também haver transformação no formato da base de dados, dependendo do software de mineração que será utilizado. • Mineração de Dados: serão utilizadas três tarefas de mineração de dados nesta etapa, para que seja possível uma análise mais precisa e abrangente, com objetivo de se obter algum conhecimento útil para a avaliação, as tarefas que serão utilizadas são: Clusterização, Associação e Classificação. A combinação destas tarefas é importante, pois nem sempre apenas uma tarefa tem a capacidade de se extrair conhecimentos desejados ou necessários de uma base de dados. A Tabela 5 apresenta as tarefas, técnicas e algoritmos propostos para a utilização. Esses algoritmos propostos para utilização no estudo de caso, são baseados em suas inúmeras utilizações em casos práticos e citações na literatura. Para se realizar estes
  • 61.
    61 processamentos, pode-se utilizarde uma mesma ferramenta para cada um dos algoritmos propostos, caso esta ofereça os algoritmos citados. Caso contrário, poderá ser utilizado um conjunto de ferramentas para o processamento de cada um dos algoritmos. Tabela 5: Tarefas, Técnicas e Algoritmos a serem utilizados. Tarefas Técnicas Algoritmos Clusterização Algoritmo de Clusterização SimpleKMeans Associação Algoritmo de Associação Apriori Classificação Árvore de Decisão RandomTree • Pós-processamento (análise): esta é a fase onde os resultados são interpretados e analisados, utilizando apenas os resultados que interessam para a avaliação da qualidade. É esperado para a tarefa de clusterização a identificação dos grupos de critérios mais próximos, para que haja a capacidade de observar o grupo relacionado a satisfação alta, media ou baixa. Para a tarefa de associação espera-se a identificação de regras que relacionem os critérios apresentados. Na tarefa de classificação espera-se a identificação do nível de satisfação do usuário de acordo com os itens apresentados no questionário referentes aos usuários.
  • 62.
    62 5. Metodologia eEstudo de caso A metodologia utilizada neste trabalho divide-se em: • Levantamento de referências bibliográficas sobre qualidade de software, qualidade em uso e mineração de dados; • Estudo de uma metodologia para avaliar a qualidade do produto de software através da mineração de dados; • Seleção de um produto de software; • Aplicabilidade da metodologia estuda em relação ao produto de software selecionado (estudo de caso); • Análise do produto de software selecionado; • Estudo do software de mineração de dados (Weka); • Aplicação do questionário e coleta das informações; • Tratamento da base de dados; • Aplicação das técnicas de mineração de dados; • Análise dos resultados. O estudo de caso foi feito utilizando a metodologia apresentada no Capítulo 4. O software avaliado foi o Sistema Integrado de Gestão Acadêmica (SIGA), e depois aplicada a Mineração de dados para a descoberta de informação, utilizando a ferramenta Weka. Nesse capítulo serão apresentados o software SIGA, a ferramenta Weka e o resultado do estudo de caso realizado. 5.1. Sistema SIGA O SIGA é um sistema desenvolvido no Projeto SIGA-EPCT, como a própria sigla
  • 63.
    63 demonstra, é umSistema Integrado de Gestão Acadêmica da Educação Profissional e Tecnológica desenvolvido com tecnologias livres e de forma colaborativa por várias instituições federais do Brasil. Esse projeto tem o apoio do Ministério da Educação do Brasil - MEC, através da Secretaria da Educação Profissional e Tecnológica - SETEC (Renapi, 2012). Atualmente, o projeto SIGA-EPCT dispõe de duas áreas de ação. De acordo com o portal da Renapi (2012), a primeira ação é a de adaptar um sistema administrativo existente, dando origem ao chamado SIGA-ADM (Sistema Integrado de Gestão Acadêmica Administrativa). A outra ação consiste no desenvolvimento de um novo sistema que contemple todos os processos acadêmicos de uma instituição, o SIGA-EDU (Sistema Integrado de Gestão Acadêmica da Educação). O Sistema avaliado nesse trabalho faz parte do SIGA-ADM, que com o intuito de atender às expectativas no menor espaço de tempo possível, procurou identificar a existência de sistemas de gestão acadêmica em funcionamento que atendessem as necessidades da rede de ensino. O sistema que mais se aproximou das características definidas, foi o da Universidade Federal de Juiz de Fora (UFJF). Diante disso, a universidade foi convidada a integrar o projeto, na condição de núcleo de pesquisa e desenvolvimento. Essa instituição disponibilizou os módulos administrativos do seu sistema, para que os integrantes do projeto pudessem estudá-los e adaptá-los segundo a realidade da EPT (Renapi, 2012). Os módulos administrativos contemplados pelo SIGA-ADM oferecem as seguintes funcionalidades: Requisições online de Almoxarifado, Compras, Diárias, Hotel, Passagens; Restaurante, Serviços externos e Veículos; Controle de pagamento de bolsas oferecidas pela instituição; Licitação de materiais e serviços; Controle orçamentário; Controle contábil; Controle de empenhos; Controle de pagamentos; Patrimônio; Almoxarifado; Protocolo e Recursos Humanos. No Instituto Federal Fluminense Campus Campos Centro, campus no qual também fica localizada a Reitoria da Instituição, os módulos implantados são Protocolo e Requisição de Veículos, que serão alvo do estudo de caso realizado nesse trabalho. O Módulo Protocolo (Figura 12) consiste no controle de entrada, andamento e saída dos processos na Instituição. Seu principal objetivo é prover aos usuários o acompanhamento dos processos que tramitam em vários setores, possibilitando identificar onde o processo se encontra e no caso de extravio, identificar o setor responsável.
  • 64.
    64 Figura 12: Telainicial do Módulo Protocolo. O fluxo ideal tem seu início com a abertura de um processo que pode ser mantido no setor de origem (status: Normal) ou dada saída para outro (status: Aguardando Entrada). Ao dar saída, o processo fica aguardando que o responsável pelo setor dê entrada no processo, ao dar entrada o status do processo passa para “Normal”, assim sucessivamente, de acordo com o trâmite do processo na Instituição. Ao final, o processo pode ser “Arquivado”. No Módulo Requisição de Veículos (Figura 13), como o próprio nome diz, permite aos funcionários solicitar a reserva de veículos para viagens a trabalho. Para utilização do módulo, há diferentes perfis: solicitante, solicita a reserva do veículo; gestor, que aprova a solicitação e executante, que é o responsável pelo setor que coordena a utilização dos veículos da Instituição.
  • 65.
    65 Figura 13: Telainicial do Módulo Requisição de Veículos, perfil Requisitante. O fluxo ideal de uma requisição tem o seu início através do Requisitante, que após realizar a solicitação, a mesma é avaliada pelo Gestor e caso seja aprovada, segue direto para ser liberada para execução. No retorno da viagem, o motorista entrega a ficha de Requisição de Veículo para o Executor, que ao concluí-la permite que o Requisitante realize a avaliação do serviço prestado. 5.2. Weka A ferramenta Weka, de acordo com Witten e Frank (2005), foi desenvolvida na Universidade de Waikato, na Nova Zelândia, e o nome significa Waikato Ambiente para Análise do Conhecimento (Waikato Enviroment for Knowledge Analysis). Fora da universidade o nome Weka, é pronunciado para rimar com Meca, uma ave que não voa, com uma natureza inquisitiva encontrada apenas nas ilhas da Nova Zelândia. O sistema é escrito em Java e distribuído sob os termos da Licença Pública Geral GNU e roda em qualquer plataforma. O sistema fornece uma interface uniforme para diversos algoritmos de aprendizagem, juntamente com métodos para pré e pós- processamento e para avaliar o resultado da aprendizagem de qualquer conjunto de dados determinado (WITTEN, FRANK; 2005).
  • 66.
    66 Figura 14: Telainicial da ferramenta Weka Ainda segundo os autores, a ferramenta Weka fornece métodos para os problemas de mineração de dados padrão: regressão, classificação, clusterização, mineração de regras de associação e seleção de atributo. Uma maneira de usar Weka é aplicar um método de aprendizagem sobre um conjunto de dados e analisar a sua saída para saber mais sobre os dados. Outra possibilidade é usar modelos de aprendizagem para gerar previsões em novas instâncias. Uma terceira opção é a aplicação de vários modelos de aprendizagem diferentes e comparar o seu desempenho, a fim de escolher um para a predição. A ferramenta encontra-se disponível em http://www.cs.waikato.ac.nz/ml/weka e a versão utilizada nesse trabalho é a 3.6.5. A escolha da ferramenta se justifica por ela apresentar as seguintes características: Software Livre, Facilidade de Download, Facilidade de Instalação, Usabilidade e Quantidade de Algoritmos, pois apresenta todos os algoritmos selecionados na metodologia apresentada no capítulo 4. Nesse trabalho são realizadas as tarefas de clusterização, classificação e associação; como pode ser visto na sessão 5.3.
  • 67.
    67 5.3. Caracterização daamostra O estudo de caso foi realizado com usuários no Instituto Federal Fluminense, pertencentes ao Campus Campos Centro e Reitoria. Participaram da pesquisa usuários dos seguintes setores (Tabela 6): Tabela 6: Setores que participaram da pesquisa e a quantidade de usuários por setor SIGLA SETOR USUÁRIOS CAI Coordenação da Área de Indústria 1 CCTQ Coordenação do Curso Técnico de Química 2 CLC Coordenação de Licitação e Compras 1 DDA Diretoria do Departamento Administrativo 1 DDGFO Diretoria do Departamento de Gestão Financeira e Orçamentaria 4 DEB Diretoria de Ensino Básico 1 DESCSTB Diretoria de Ensino Superior dos Cursos Superiores de Tecnologia e Bacharelado 1 DGC Diretoria Geral do Campus 1 DPPG Diretoria de Pesquisa e Pós-Graduação 1 PROREN Pró-Reitoria de Ensino 1 O estudo foi realizado com 14 usuários, sendo que 6 deles avaliaram o módulo Requisição de Veículos e 8 avaliaram o módulo Protocolo. A quantidade de usuários escolhida se justifica de acordo com o estudo realizado por Nielsen (1993). Segundo esse estudo, um único avaliador encontra 35% dos problemas de utilização nas interfaces, porém há uma “agradável recompensa” ao usar cinco avaliadores, onde 75% dos problemas são encontrados. Baseado nisso, Nielsen conclui que “parece razoável recomendar o uso de cerca de cinco avaliadores”.
  • 68.
    68 5.3.1. Aplicação dametodologia para o SIGA Aplicação das Etapas do KDD: • Seleção: a base de dados criada com as informações dos questionários de avaliação. • Pré-Processamento: os campos nome e setor foram eliminados, pois há uma grande variedade de setores entre os usuários entrevistados e, não há a necessidade da identificação dos usuários, sendo dados que não trariam informação relevante. ◦ nenhum registro foi eliminado, pois o processo de aplicação dos questionários foi acompanhado, evitando assim que houvessem registros nulos ou o preenchimento incorreto. • Transformação: o menor tempo na amostra foi de 6 meses e o maior de 5 anos. Então foi criado um intervalo dividido em três faixas: Novato (tempo <= 1), Médio (1 < tempo <=3) e Experiente (3 < tempo <= 5). ◦ Os dados dos questionários foram passados para o arquivo Questionário.xls (criado em LibreOffice Calc) e depois exportados para o formato csv (Comma-Separated Variables), contendo 18 atributos² e 14 instâncias³. É possível importar esse formato de arquivo na ferramenta Weka, porém o formato arrf (Attribute-Relation File Format) permite descrever uma lista de instâncias que compartilham um conjunto de atributos e definir a ordem que os atributos serão apresentados (Figura 15). @relation Questionario @attribute 'MÓDULO' {'P','V'} @attribute 'CARGO' {'DIRETOR','COORDENADOR','ASSISTENTE ADMIN.','RECEPCIONISTA', 'BOLSISTA'} @attribute 'TEMPO DE EXPERIÊNCIA' {'NOVATO','MÉDIO','EXPERIENTE'} @attribute 'VALIDAÇÃO' {MB,B,M,R,P,I} @attribute 'DOCUMENTAÇÃO' {MB,B,M,R,P,I} @attribute 'GLOSSÁRIO' {MB,B,M,R,P,I} @attribute 'HELP' {MB,B,M,R,P,I} @attribute 'MENSAGENS' {MB,B,M,R,P,I}
  • 69.
    69 @attribute 'NAVEGAÇÃO' {MB,B,M,R,P,I} @attribute'PADRONIZAÇÃO' {MB,B,M,R,P,I} @attribute 'PRECISÃO' {MB,B,M,R,P,I} @attribute 'APROVEITAMENDO DOS DADOS' {MB,B,M,R,P,I} @attribute 'RECUPERAÇÃO DE DADOS' {MB,B,M,R,P,I} @attribute 'RESISTÊNCIA AOS ERROS' {MB,B,M,R,P,I} @attribute 'SEGURANÇA' {MB,B,M,R,P,I} @attribute 'TEMPO DE PROCESSAMENTO' {MB,B,M,R,P,I} @attribute 'SATISFAÇÃO' {'BAIXA','MÉDIA','ALTA'} @data 'REQUISIÇÃO DE VEÍCULOS','BOLSISTA','NOVATO',R,I,I,I,M,B,B,B,B,P,R,B,B,'MÉDIA' 'REQUISIÇÃO DE VEÍCULOS','DIRETOR','MÉDIO',M,I,I,I,M,M,B,MB,R,R,R,MB,M,'BAIXA' 'PROTOCOLO','COORDENADOR','MÉDIO',MB,MB,I,I,MB,MB,MB,MB,M,R,R,M,MB,'MÉDIA' 'PROTOCOLO','DIRETOR','EXPERIENTE',R,I,R,I,R,M,B,R,R,R,R,M,B,'MÉDIA' ... Figura 15: Arquivo Questionário.arff. • Mineração de Dados: utilização da ferramenta Weka para mineração de dados. • Pós-Processamento: Análise e interpretação dos resultados. Nas próximas sessões são apresentados os resultados obtidos e é feita uma análise e interpretação dos mesmos. 5.3.1.1. Resultados e Análises com Algoritmo de Clusterização Tabela 7: Relação entre Tarefa e Técnica para Clusterização. Tarefa Técnica Algoritmo Clusterização Algoritmo de Clusterização SimpleKmeans
  • 70.
    70 • Análise dasatisfação em relação ao módulo utilizado: Tabela 8: Módulo X Satisfação (Atributos ignorados: Cargo e Tempo de Experiência). Em ambos os módulos o nível de satisfação é o mesmo: “Médio”, o que permite constatar que o sistema possui um padrão e que os módulos são semelhantes, gerando o mesmo grau de satisfação aos usuários de diferentes módulos. É possível verificar também, que alguns atributos coincidem em uma avaliação negativa, evidenciando uma deficiência no desenvolvimento dos módulos, como o atributo “Recuperação dos dados” e “Resistência a erros”, onde em ambos a avaliação é “Ruim”. Além disso, os usuários consideraram como “Inexistente”, o “Glossário” e o “Help” por não apresentar esse item no sistema ou não terem tido acesso.
  • 71.
    71 • Análise daSatisfação em relação ao cargo exercido: Tabela 9: Cargo X Satisfação (Atributos Ignorados: Módulo e Tempo de Experiência). Verificou-se que o maior nível de satisfação incide sobre os usuários do cargo “Bolsista”, podendo concluir que a falta de experiência comum a ocupação, diminui a exigência quanto ao sistema utilizado. Além disso, normalmente se tratam de pessoas jovens, que notoriamente possuem maior aceitação a novas ferramentas e maior adaptabilidade a novos ambientes. 5.3.1.2. Resultados e Análises com Algoritmo de Associação Tabela 10: Relação entre Tarefa e Técnica para Associação. Tarefa Técnica Algoritmo Associação Algoritmo de Associação Apriori
  • 72.
    72 As regras maisimportantes foram: Tabela 11: Regras Identificadas. Satisfação=Média ==> Glossário=I Help=I Tempo de Processamento=MB conf:(1) Satisfação=Média ==> Glossário=I Precisão=MB conf:(1) Satisfação=Média ==> Recuperação de Dados=R Resistência aos Erros=R conf:(1) Satisfação=Alta ==> Navegação=MB Segurança=MB Tempo de Processamento=MB conf:(1) Satisfação=Alta ==> Cargo=Bolsista conf:(1) Cargo=Coordenador ==> Satisfação=Média conf:(1) Analisando os resultados acima: • 55% dos usuários que classificaram o nível de satisfação na utilização do software como Médio, consideram o Help e o Glossário como Inexistente, e a Recuperação de Dados e Resistência aos Erros como Ruim, porém avaliaram como Muito Bom a Precisão e o Tempo de Processamento. • 100% dos usuários que classificaram o nível de satisfação na utilização do software como Alta, consideram Muito Bom o Tempo de Processamento, a Navegação e a Segurança. • 100% dos usuários que classificaram o nível de satisfação na utilização do software como Alta, exercem o cargo de Bolsista. • 100% dos usuários que exercem o cargo de Coordenador, classificaram o nível de satisfação na utilização do software como Média. Através dos resultados apresentados pode-se concluir que: • Mesmo sendo considerado Inexistente, o Glossário e o Help não tiveram total influência sobre o grau de satisfação na utilização do software, assim como os critérios Recuperação de Dados e Resistência a Erros, mesmo sendo ruins não impactaram totalmente na utilização do software permitindo que sua avaliação permanecesse como Média.
  • 73.
    73 • Foi possívelestabelecer uma relação entre o cargo exercido na Instituição, ao nível de satisfação na utilização do software. • Os atributos Tempo de Processamento, Navegação e Segurança foram relevantes para a classificação do nível de satisfação como Alta. 5.3.1.3. Resultados e Análises com Algoritmo de Decisão Tabela 12: Relação entre Tarefa e Técnica para Decisão. Tarefa Técnica Algoritmo Classificação Árvore de Decisão RandomTree • Critérios: Tempo de Experiência e Satisfação: Figura 16: Árvore de Decisão (Tempo de Experiência x Satisfação). O nível de satisfação dos usuários utilizando o sistema se mantém o mesmo independente do tempo de experiência no sistema.
  • 74.
    74 • Critérios: Móduloe Satisfação: Figura 17: Árvore de Decisão (Módulo x Satisfação). Assim como na Clusterização, verifica-se que o nível de satisfação dos usuários é o mesmo nos dois módulos avaliados. • Critérios: Cargo e Satisfação: Figura 18: Árvore de Decisão (Cargo x Satisfação). Através da figura 18 pode-se observar que as informações obtidas divergem das informações apresentadas no resultado do algoritmo de Clusterização. Os resultados diferentes apareceram nos cargos “Diretor” e “Bolsista”, cujo o resultado na Clusterização foi “Média” e “Alta”,
  • 75.
    75 respectivamente. Nesse caso,essa divergência ocorreu pois na amostra (Anexo III) há a coincidência, de ambos os cargos apresentarem número par de usuários que se dividiram em 2 grupos de opinião igual, por exemplo, dos 4 usuários que são diretores, 2 consideram a satisfação “Média” e 2 consideram “Baixa”. Sendo assim, podemos verificar a importância de se trabalhar com a combinação de várias análises, para gerar uma conclusão. Nesses 2 casos, podemos verificar que não houve disparidade entre as respostas (Média e Baixa, Média e Alta), permanecendo válida a análise obtida através da Clusterização, sem inviabilizar o resultado encontrado na Classificação. Através da pesquisa realizada foi possível perceber que a maioria dos usuários (64%, 9 dos 14 usuários) consideraram o nível de satisfação como Média. Isto é facilmente percebido no levantamento dos dados mostrado no Apêndice, arquivo Questionário.xls, e corroborado em todas as análises realizadas, onde independentemente dos critérios analisados, a maioria classifica a satisfação como Média. Pode-se assim concluir que de maneira geral o usuário esta satisfeito em relação ao uso do sistema. Ao mesmo tempo, apesar da maioria ter uma opinião similar, alguns perfis apresentaram diferentes resultados. Esta informação se torna importante e aplicável, caso ocorra a implementação de um novo módulo, por exemplo. Se antes de implementar um novo módulo houver o levantamento do perfil dos usuários que irão utilizá-lo, pode ser feito um planejamento das melhorias que melhor atenderão a esses usuários, direcionando os desenvolvedores para os itens que terão prioridade. Outra informação obtida através da mineração de dados, foram os itens que, de maneira geral, apresentaram maior aprovação e reprovação por parte do usuário, permitindo definir os pontos fracos e fortes do sistema, auxiliando a perceber quais melhorias podem ser sugeridas. Sendo assim, dois itens que necessitam de atenção são os itens “Glossário” (79%) e “Help” (74%), considerados Inexistentes pela maioria dos usuários, o que mostra claramente a necessidade de criá- los ou colocá-los em local mais acessível para o usuário. Ainda numa classificação negativa, temos os itens “Recuperação dos dados” e Resistência aos erros”, considerados pela maioria dos usuários (57% e 79%, respectivamente) como Ruim ou Péssimo, sendo necessário que sejam revistos e melhorados. Em contrapartida, os itens “Navegação” e “Padronização” foram classificados como Muito Bom e Bom, por 79% dos usuários, demostrando uma grande satisfação com a interface e usabilidade do sistema.
  • 76.
    76 6. Conclusão A satisfaçãodos usuários é preponderante para o sucesso de um projeto de desenvolvimento e para a continuidade de utilização de um software. Por isso, a metodologia aplicada buscou o alinhamento entre as necessidades dos usuários e o software desenvolvido. Desta forma, embora não seja possível garantir, espera-se que através da aplicação da metodologia apresentada seja possível aumentar as chances de sucesso dos projetos de desenvolvimento e elevar a qualidade dos produtos de software No estudo, as respostas fornecidas pelos usuários do software foram obtidas para as avaliações de um conjunto de requisitos previamente identificados. Os questionários utilizados para a avaliação podem servir como uma importante ferramenta de orientação para o processo de inspeção da qualidade de um produto de software, ajudando a entender as reais necessidades e anseios dos usuários em relação ao produto. Através das Análises e Resultados apresentados pelo processo de Mineração de dados é possível obter algumas informações: • Os critérios considerados insatisfatórios são identificados, permitindo que sejam melhorados ou até mesmo criados, nos casos em que foram considerados inexistentes. • Identificar o grau de satisfação dos usuários com o software utilizado. • O grau de satisfação de um produto de software pode variar de acordo com o perfil dos usuários, no caso apresentado, em relação ao tempo de experiência ou cargo exercido. 6.1. Trabalhos futuros Como trabalho futuro, sugere-se: • Utilizar da metodologia durante o processo de desenvolvimento do produto de software, avaliando cada release do sistema, selecionando somente os critérios relacionados,
  • 77.
    77 verificando sua aplicaçãoem cada fase do ciclo de desenvolvimento. • Aproveitar a metodologia apresentada, na avaliação de outros sistemas, alterando os critérios que forem necessários, de acordo com o software. • Aumentar a amostra de usuários na avaliação do sistema SIGA, permitindo verificar se ocorreram significativas alterações nos resultados e/ou comparar com os resultados obtidos. Tendo em vista esta mesma finalidade, pode-se aplicar outras metodologias de avaliação, como checklists, diferentes questionários, teste de uso em laboratórios, entre outros.
  • 78.
    78 Referências ABNT: A Históriada Normalização Brasileira. São Paulo, 2011. Disponível em <http://www.abnt.org.br/imprensa/livro_abnt/70anos_ABNT.pdf>. Acesso em 07/05/2012. AGRAWAL, Rakesh; SRIKANT, Ramakrishnan. Fast Algorithms for Mining Association Rules. 1994. Disponível em <http://www.kddresearch.org/Groups/Probabilistic- Reasoning/Papers/agrawal94fast.pdf>. Acesso em 14/06/2012. AMO, Sandra de. Técnicas de Mineração de Dados, In: Congresso da Sociedade Brasileira de Computação, 24., Jornada de Atualização em Informática, 23., 2004, Salvador, BA. Minicurso... Salvador: Sociedade Brasileira de Computação, 2004. 43 páginas. Disponível em: <http://www.sbc2004.ufba.br/jai_04.html>. Acesso em 28/05/2012. ASQ. Glossary. Disponível em <http://asq.org/glossary/q.html>. Acesso em 21/08/2012. ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR ISO/IEC 14598-1: Avaliação de produto de software: Visão Geral. Rio de Janeiro, 2001. ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR ISO/IEC 14598-5: Avaliação de produto de software: Processo para avaliadores. Rio de Janeiro, 2001. ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR ISO/IEC 9126-1: Qualidade do produto: Modelo de qualidade. Rio de Janeiro, 2003. AZEVEDO, Samanta Pinto de. Modelo de avaliação da qualidade funcional de software. Disponível em <http://tconline.feevale.br/tc/files/0002_1582.pdf>. Acesso em 17/05/2012.
  • 79.
    79 BARBOSA, Denise ChavesCarvalho. Mineração de Dados Usando o Software WizRule em Base de Dados de Compras de Itens de TI. Dissertação (Mestrado em Administração e Economia) – Faculdade de Economia e Finanças IBMEC. Fevereiro de 2007. 77 páginas. BARTIÉ, Alexandre. Garantia da Qualidade de Software. 1ª ed., São Paulo, SP: Campus, 2002. 304 páginas. BEVAN, Nigel. Quality in use: incorporating human factors into the software engineering lifecycle Disponível em <http://www.nigelbevan.com/papers/qiuhf97.pdf>. Acesso em 16/06/2012. BEVAN, Nigel. Quality in Use: Meeting User Needs for Quality. Disponível em <http://www.usabilitynet.org/papers/qiuse.pdf>. Acesso em 16/06/2012. BRAGA, Luis Paulo Vieira. Introdução à Mineração de Dados. 2ª ed., Rio de Janeiro, RJ: E- Papers, 2005. CORDEIRO, Aline Gomes. Priorização de requisitos e avaliação da qualidade de software segundo a percepção dos usuários. Dissertação (Mestrado em Ciências da Engenharia) – Universidade Estadual do Norte Fluminense. Abril de 2010. 90 páginas. DIAS, Maria Madalena. Parâmetros na Escolha de Técnicas e Ferramentas de Mineração de Dados. Acta Scientiarum, v. 24, n. 6, p. 1715-1725, 2002. Disponível em: <http://periodicos.uem.br/ojs/index.php/ActaSciTechnol/article/view/2549>. Acesso em 28/05/2012. DUARTE, Katia Cristina; FALBO, Ricardo de Almeida. Uma Ontologia de Qualidade de Software, In: Workshop de Qualidade de Software, 7., Simpósio Brasileiro de Engenharia de Software, 14., 2000, João Pessoa, PB. Anais... João Pessoa: Sociedade Brasileira de Computação, 2000. p. 275-285.
  • 80.
    80 FAYYAD, Usama; PIATETSKY-SHAPIRO,Gregory; SMYTH, Padhraic. From Data Mining to Knowledge Discovery in Databases. AI Magazine, v. 17, n. 3, p. 37-54, 1996. Disponível em: <http://www.aaai.org/ojs/index.php/aimagazine/article/view/1230/1131>. Acesso em 28/05/2012. FURTADO, Vasco. Tecnologia e Gestão da Informação na Segurança Pública. Rio de Janeiro, RJ: Garamond, 2002. GOMES, Nelma da Silva. Qualidade de Software: uma necessidade. 2000. Disponível em <http://www.fazenda.gov.br/ucp/pnafe/cst/arquivos/Qualidade_de_Soft.pdf>. Acesso em 02/05/2012. GUTIERREZ, Margarida; BERTRAND, Hélène. Estudos em Negócios IV. Rio de Janeiro, RJ: Mauad, 2005. HAIR, Joseph F.; TATHAM, Ronald L.; ANDERSON, Rolph E.; BLACK, William. Análise Multivariada de Dados. 5ª ed., São Paulo, SP: Bookman, 1998. IEC. International Electrotechnical Commission. Disponível em <http://www.iec.ch>. Acesso em 02/05/2012. ISO: The ISO Story. Disponível em <http://www.iso.org/iso/about.htm>. Acesso em 02/05/2012. KOSCIANSKI, André; SOARES, Michel dos S. Qualidade de Software: Aprenda as metodologias e técnicas mais modernas para o desenvolvimento de software. 2ª ed., São Paulo, SP: Novatec, 2007. 395 páginas. LARMAN, Craig. Utilizando UML e Padrões. 3ª ed., Porto Alegre, RS: Bookman, 2005. MARTINEZ, Maria Laura. Design de Interfaces Interativas. 2010. SENAC, São Paulo.
  • 81.
    81 MARTINHAGO, Sergio. Descobertade Conhecimento Sobre o Processo Seletivo da UFPR. Dissertação (Mestrado em Métodos Numéricos em Engenharia) – Universidade Federal do Paraná. Julho de 2005. 125 páginas. MAZZOLA, Vitório. Engenharia de Software. 2010. Disponível em <http://jalvesnicacio.files.wordpress.com/2010/03/engenharia-de-software.pdf>. Acesso em 23/05/2012. MEIRELLES, Paulo Roberto Miranda. Levantamento de Métricas de avaliação de Projetos de Software Livre. São Paulo, 2008. Disponível em <http://ccsl.ime.usp.br/files/relatorioPauloMeirelles_final.pdf>. Acesso em 16/05/2012. MILLS, Everald. Software Metrics. Seattle, 1998. Disponível em <http://www.sei.cmu.edu/library/abstracts/reports/88cm012.cfm? DCSext.abstractsource=SearchResults>. Acesso em 19/05/2012. NASA. Software Assurance Definitions. 2009. Disponível em <http://www.hq.nasa.gov/office/codeq/software/umbrella_defs.htm>. Acesso em 22/08/2012. NIELSEN, J. Usability Engineering. Cambridge: Academic Press, 1993. 340 páginas. PAGANI, Talita. Qualidade em Uso: expandindo a Usabilidade. 2011. Disponível em <http://tableless.com.br/qualidade-em-uso-expandindo-a-usabilidade>. Acesso em 25/05/2012. PICHILIANI, Mauro. Data Mining na Prática: Algoritmo K-Means. 2006. Disponível em <http://imasters.com.br/artigo/4709/sql_server/data_mining_na_pratica_algoritmo_k-means>. Acesso em 14/06/2012. PRESSMAN, Roger S. Engenharia de Software. 6ª ed., São Paulo, SP: Makron Books, 2006. 711
  • 82.
    82 páginas. Qualidade – Conceitoe definição. Disponível em <http://www.qualidade.eng.br/artigos_qualidade_conceito.htm>. Acesso em 02/05/2012. Rational Software Corporation. Conceitos: Requisitos. 2001. Disponível em <http://www.wthreex.com/rup/process/workflow/requirem/co_req.htm>. Acesso em 24/05/2012. REZENDE, Denis Alcides. Engenharia de Software e Sistemas de Informação. 3ª ed., Rio de Janeiro, RJ: Brasport, 2005. REZENDE, Solange Oliveira. Sistemas Inteligentes: fundamentos e aplicações. 1ª ed., Barueri, SP: Manole, 2003. ROCHA, Heloísa V.; BARANAUSKAS, Maria Cecília C. Design e Avaliação de Interfaces Humano-Computador. Universidade Estadual de Campinas, 2003. Disponível em <http://pan.nied.unicamp.br/publicacoes/publicacao_detalhes.php?id=40>. Acesso em 01/03/2012. ROMÃO, Wesley. Descoberta de Conhecimento Relevante em Banco de Dados Sobre Ciência e Tecnologia. Tese (Doutorado em Engenharia de Produção) – Universiade Federal de Santa Catarina. Fevereiro de 2002. 253 páginas. SALGADO, André Batista; UZAI, Diego de Oliveira; SALEMA, Hélio Augusto Maia; MANHÃES NETTO, Joanne. Minerando Regras de Associação: Uma Ferramenta de Data Mining. Monografia (Graduação em Tecnologia em Desenvolvimento de Software) – Centro Federal de Educação Tecnológica de Campos. Novembro de 2005. SHNEIDERMAN, Ben; PLAISANT, Catherine. Designing the user interface: strategies for effective human-computer interaction . 4ª ed. Maryland: Pearson Education, 2005.
  • 83.
    83 SILVA, Simone Vasconcelos.Avaliação da Qualidade de Software Através de Técnicas da Mineração de Dados, In: Simpósio Brasileiro de Qualidade de Software, 7., 2008, Florianópolis, SC. Anais... Florianópolis: Sociedade Brasileira de Computação, 2008. p. 61-74. SILVA, Simone Vasconcelos. Qualidade de software: uma abordagem baseada na satisfação do usuário. Dissertação (Mestrado em Ciências da Engenharia) – Universidade Estadual do Norte Fluminense. Março de 2003. 170 páginas. SODRÉ, Cibele Cristina Pelizer. Norma ISO/IEC 9126: Avaliação de Qualidade de Produtos de Software. Londrina: Universidade Estadual de Londrina, 2006. p. 52. Monografia, Bacharel em Ciência de Computação. Disponível em <http://www.trabalhosfeitos.com/ensaios/Iso- 9126/202596.html>. Acesso em 25/05/2012. VAZ, Daniel. Planejamento de movimento cinemático-dinâmico: para robôs móveis com rodas deslizantes. 2011. Disponível em <http://www.teses.usp.br/teses/disponiveis/18/18153/tde-02012012- 144022/publico/Vaz.pdf>. Acesso em 14/06/2012. WEISZFLOG, Walter. Michaelis: Moderno Dicionário da Língua Portuguesa. 1ª ed. Editora Melhoramentos Ltda, 2007.
  • 84.
    84 Apêndice I -Questionário
  • 85.
    85 Apêndice II –Arquivo Questionário.arff
  • 86.
    86 Apêndice III –Arquivo Questionário.xls
  • 87.
    87 Anexo Algoritmo Apriori O algoritmoApriori, iterativamente reduz o apoio mínimo até encontrar o número necessário de regras com o mínimo de confiança dado. O algoritmo tem uma opção para minerar regras de associação de classe (weka.sourceforge.net, tradução nossa). Suas propriedades: • Todo subconjunto de um conjunto frequente é frequente. • Todo conjunto que contém um subconjunto não frequente também não é frequente. Etapas do Apriori: • Calcular o suporte de todos os conjuntos de tamanho 1 e eliminar aqueles que não possuem o suporte mínimo. • Formar todos os possíveis conjuntos de tamanho 2 a partir daqueles de tamanho 1 e eliminar os novos conjuntos que não possuem o suporte mínimo. • Repetir o procedimento anterior até que, no k-ésimo passo, nenhum novo conjunto de tamanho k, obtido a partir dos conjuntos de tamanho k-1, tenha suporte mínimo. Algoritmo (AGRAWAL , SRIKANT, 1994) F1 = conjuntos frequentes de tamanho 1; para ( k=2; Fk ≠ Ø;k++ ) faça Gerar Ck (todos os candidatos de tamanho k) a partir de Fk-1; para cada transação t pertencente a base de dados faça Incrementar o contador associado a todo candidato Ck cujos itens pertençam a t; fim-para; Fk = todos os candidatos pertencentes a Ck com suporte mínimo maior ou igual a SupMin; fim-para; Resposta = união de todos os conjuntos Fk;
  • 88.
    88 Algoritmo K-Means A idéiado algoritmo K-Means (também chamado de K-Médias), de acordo com Pichiliani (2006), é fornecer uma classificação de informações de acordo com os próprios dados. Esta classificação, como será vista a seguir, é baseada em análise e comparações entre os valores numéricos dos dados. Desta maneira, o algoritmo automaticamente vai fornecer uma classificação automática sem a necessidade de nenhuma supervisão humana, ou seja, sem nenhuma pré- classificação existente. Por causa desta característica, o K-Means é considerado como um algoritmo de mineração de dados não supervisionado. Segundo Pichiliani (2006) podemos entender como o algoritmo funciona da seguinte maneira: “[...] vamos imaginar que temos uma tabela com linhas e colunas que contêm os dados a serem classificados. Nesta tabela, cada coluna é chamada de dimensão e cada linha contém informações para cada dimensão, que também são chamadas de ocorrências ou pontos. Geralmente, trabalha-se com dados contínuos neste algoritmo, mas nada impede que dados discretos sejam utilizados, deste que eles sejam mapeados para valores numéricos correspondentes. Como foi dito, o algoritmo vai analisar todos os dados desta tabela e indicar uma classe (cluster) e vai dizer quais linhas pertencem a esta classe. O usuário deve fornecer ao algoritmo a quantidade de classes que ele deseja. Este número de classes que deve ser passada para o algoritmo é chamado de k e é daí que vem a primeira letra do algoritmo: K-Means. Para gerar as classes e classificar as ocorrências, o algoritmo faz uma comparação entre cada valor de cada linha por meio da distância. A maneira de calcular esta distância vai depender da quantidade de atributos da tabela fornecida. Após o cálculo das distâncias o algoritmo calcula centróides para cada uma das classes. Conforme o algoritmo vai iterando, o valor de cada centróide é refinado pela média dos valores de cada atributo de cada ocorrência que pertence a este centróide. Com isso, o algoritmo gera k centróides e coloca as ocorrências da tabela de acordo com sua distância dos centróides.”
  • 89.
    89 Para simplificar aexplicação de como o algoritmo funciona, será apresentado o algoritmo K- Means em cinco passos (PICHILIANI, 2006): PASSO 01: Fornecer valores para os centróides. PASSO 02: Gerar uma matriz de distância entre cada ponto e os centróides. PASSO 03: Colocar cada ponto nas classes de acordo com a sua distância do centróide da classe. PASSO 04: Calcular os novos centróides para cada classe. PASSO 05: Repetir, a partir do passo 2, até a convergência. Algoritmo Random Tree Classe para a construção de uma árvore que considera K atributos escolhidos aleatoriamente em cada nó, sem executar podas. Também tem uma opção para permitir a estimativa de probabilidades de classe com base em um conjunto de hold-out (backfitting) (http://weka.sourceforge.net). O Rapidly-exploring Random Tree, RRT, é um método de planejamento de movimento baseado em amostragem e foi proposto com a intenção de resolver problemas de planejamento cinemático-dinâmico (LAVALLE; KUFFNER apud Vaz, 2011). Segundo Vaz (2011), os métodos de planejamento de movimento baseados em amostragem são apropriados quando o número de graus de liberdade é grande, uma vez que estes métodos amostram estados aleatórios e aplicam as ações de controle no modelo do sistema. Este é o funcionamento básico do RRT que realiza duas tarefas simultaneamente: expande uma árvore aleatória que possui ótima capacidade de exploração do ambiente e guia o crescimento dessa árvore em direção ao estado final desejado.