SlideShare une entreprise Scribd logo
1  sur  89
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.
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS

Contenu connexe

Tendances

Estimativa de software usando pontos de função
Estimativa de software usando pontos de funçãoEstimativa de software usando pontos de função
Estimativa de software usando pontos de funçãoClaudio Martins
 
Engenharia de Software II - Atividade: Diagramas da UML
Engenharia de Software II - Atividade: Diagramas da UMLEngenharia de Software II - Atividade: Diagramas da UML
Engenharia de Software II - Atividade: Diagramas da UMLAlessandro Almeida
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Luís Fernando Richter
 
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...Edlaine Zamora
 
Normas e Padrões para a Qualidade de Software
Normas e Padrões para a Qualidade de SoftwareNormas e Padrões para a Qualidade de Software
Normas e Padrões para a Qualidade de SoftwareDanilo Sousa
 
Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Adriano Tavares
 
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software Cloves da Rocha
 
Aula 1 requisitos
Aula 1   requisitosAula 1   requisitos
Aula 1 requisitoslicardino
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de RequisitosCloves da Rocha
 
Especificação de Requisitos de Software
Especificação de Requisitos de SoftwareEspecificação de Requisitos de Software
Especificação de Requisitos de SoftwareRalph Rassweiler
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de softwareRondinelli Mesquita
 
Análise de Sistemas - Requisitos (Revisão e Requisitos Suplementares)
Análise de Sistemas - Requisitos (Revisão e Requisitos Suplementares)Análise de Sistemas - Requisitos (Revisão e Requisitos Suplementares)
Análise de Sistemas - Requisitos (Revisão e Requisitos Suplementares)Rosanete Grassiani dos Santos
 
REA- Diagramas de Casos de Uso da UML
REA- Diagramas de Casos de Uso da UMLREA- Diagramas de Casos de Uso da UML
REA- Diagramas de Casos de Uso da UMLIFFar - SVS
 
Fatores de Qualidade de MacCall e ISO/IEC 9126
Fatores de Qualidade de MacCall e ISO/IEC 9126Fatores de Qualidade de MacCall e ISO/IEC 9126
Fatores de Qualidade de MacCall e ISO/IEC 9126Elaine Cecília Gatto
 

Tendances (20)

Estimativa de software usando pontos de função
Estimativa de software usando pontos de funçãoEstimativa de software usando pontos de função
Estimativa de software usando pontos de função
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
Cmmi e mps.Br
Cmmi e mps.BrCmmi e mps.Br
Cmmi e mps.Br
 
Engenharia de Software II - Atividade: Diagramas da UML
Engenharia de Software II - Atividade: Diagramas da UMLEngenharia de Software II - Atividade: Diagramas da UML
Engenharia de Software II - Atividade: Diagramas da UML
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006
 
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
 
Reingeniería
ReingenieríaReingeniería
Reingeniería
 
Normas e Padrões para a Qualidade de Software
Normas e Padrões para a Qualidade de SoftwareNormas e Padrões para a Qualidade de Software
Normas e Padrões para a Qualidade de Software
 
Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1
 
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
 
Aula 1 requisitos
Aula 1   requisitosAula 1   requisitos
Aula 1 requisitos
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Aula3 engenharia requisitos
Aula3 engenharia requisitosAula3 engenharia requisitos
Aula3 engenharia requisitos
 
Especificação de Requisitos de Software
Especificação de Requisitos de SoftwareEspecificação de Requisitos de Software
Especificação de Requisitos de Software
 
Mpsbr
MpsbrMpsbr
Mpsbr
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de software
 
Análise de Sistemas - Requisitos (Revisão e Requisitos Suplementares)
Análise de Sistemas - Requisitos (Revisão e Requisitos Suplementares)Análise de Sistemas - Requisitos (Revisão e Requisitos Suplementares)
Análise de Sistemas - Requisitos (Revisão e Requisitos Suplementares)
 
REA- Diagramas de Casos de Uso da UML
REA- Diagramas de Casos de Uso da UMLREA- Diagramas de Casos de Uso da UML
REA- Diagramas de Casos de Uso da UML
 
Fatores de Qualidade de MacCall e ISO/IEC 9126
Fatores de Qualidade de MacCall e ISO/IEC 9126Fatores de Qualidade de MacCall e ISO/IEC 9126
Fatores de Qualidade de MacCall e ISO/IEC 9126
 
Introdução à linguagem UML
Introdução à linguagem UMLIntrodução à linguagem UML
Introdução à linguagem UML
 

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

AMAO - DESENVOLVIMENTO DE UM AMBIENTE ONLINE DE AUXÍLIO À CORREÇÃO E RESOLUÇÃ...
AMAO - DESENVOLVIMENTO DE UM AMBIENTE ONLINE DE AUXÍLIO À CORREÇÃO E RESOLUÇÃ...AMAO - DESENVOLVIMENTO DE UM AMBIENTE ONLINE DE AUXÍLIO À CORREÇÃO E RESOLUÇÃ...
AMAO - DESENVOLVIMENTO DE UM AMBIENTE ONLINE DE AUXÍLIO À CORREÇÃO E RESOLUÇÃ...Felipe Pontes
 
Projeto de Conclusão de Curso - Anderson Nascimento / Mariana Benedett
Projeto de Conclusão de Curso - Anderson Nascimento / Mariana BenedettProjeto de Conclusão de Curso - Anderson Nascimento / Mariana Benedett
Projeto de Conclusão de Curso - Anderson Nascimento / Mariana BenedettAnderson Nascimento
 
A Importância dos Sistemas de Qualidade para o Desenvolvimento de Software da...
A Importância dos Sistemas de Qualidade para o Desenvolvimento de Software da...A Importância dos Sistemas de Qualidade para o Desenvolvimento de Software da...
A Importância dos Sistemas de Qualidade para o Desenvolvimento de Software da...Universidade de São Paulo (EEL USP)
 
Plano de Projeto de Software
Plano de Projeto de SoftwarePlano de Projeto de Software
Plano de Projeto de SoftwareLeonardo Felipe
 
APOSTILA PCM gestão da manutenção tipos de manutençãopdf
APOSTILA PCM gestão da manutenção tipos de manutençãopdfAPOSTILA PCM gestão da manutenção tipos de manutençãopdf
APOSTILA PCM gestão da manutenção tipos de manutençãopdfWilliansilva12549
 
Algoritmos e-programacao-apostila-completa
Algoritmos e-programacao-apostila-completaAlgoritmos e-programacao-apostila-completa
Algoritmos e-programacao-apostila-completaAssis Alcantara
 
Gestao contexto qos_qoe
Gestao contexto qos_qoeGestao contexto qos_qoe
Gestao contexto qos_qoeIP10
 
Monografia Qualidade de Software
Monografia Qualidade de SoftwareMonografia Qualidade de Software
Monografia Qualidade de SoftwareOscarlino Silva
 
Projeto Aplicado 4°Ciclo Grp01 Testes De Software
Projeto Aplicado 4°Ciclo Grp01 Testes De SoftwareProjeto Aplicado 4°Ciclo Grp01 Testes De Software
Projeto Aplicado 4°Ciclo Grp01 Testes De SoftwareLuiz Nakazone
 
PLANO DE PROJETO DE SOFTWARE para produtos da Lacertae SW
PLANO DE PROJETO DE SOFTWARE para produtos da Lacertae SWPLANO DE PROJETO DE SOFTWARE para produtos da Lacertae SW
PLANO DE PROJETO DE SOFTWARE para produtos da Lacertae SWLays Lopes
 
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De ProcessoUma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processocrc1404
 
FEI - Modelagem de negocios - 2° semestre 2010
FEI - Modelagem de negocios - 2° semestre 2010FEI - Modelagem de negocios - 2° semestre 2010
FEI - Modelagem de negocios - 2° semestre 2010nathan85
 
11 1 --teste_de_software_motivação_e_conceitos_basicos
11 1 --teste_de_software_motivação_e_conceitos_basicos11 1 --teste_de_software_motivação_e_conceitos_basicos
11 1 --teste_de_software_motivação_e_conceitos_basicosFabricio Guimaraes Soares
 
TCC - METODOLOGIA SCRUM APLICADA AOS PROCESSOS DE GERÊNCIA E DESENVOLVIMENTO ...
TCC - METODOLOGIA SCRUM APLICADA AOS PROCESSOS DE GERÊNCIA E DESENVOLVIMENTO ...TCC - METODOLOGIA SCRUM APLICADA AOS PROCESSOS DE GERÊNCIA E DESENVOLVIMENTO ...
TCC - METODOLOGIA SCRUM APLICADA AOS PROCESSOS DE GERÊNCIA E DESENVOLVIMENTO ...Juliano Oliveira
 
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de AtividadeSIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de AtividadeUNIEURO
 
A Arte dos Testes de Performance Aplicacional
A Arte dos Testes de Performance AplicacionalA Arte dos Testes de Performance Aplicacional
A Arte dos Testes de Performance AplicacionalNuno Baptista Rodrigues
 
Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenhari...
Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenhari...Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenhari...
Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenhari...Erivan de Sena Ramos
 

Similaire à AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO DE DADOS (20)

Qualidade sistemas legados
Qualidade sistemas legadosQualidade sistemas legados
Qualidade sistemas legados
 
AMAO - DESENVOLVIMENTO DE UM AMBIENTE ONLINE DE AUXÍLIO À CORREÇÃO E RESOLUÇÃ...
AMAO - DESENVOLVIMENTO DE UM AMBIENTE ONLINE DE AUXÍLIO À CORREÇÃO E RESOLUÇÃ...AMAO - DESENVOLVIMENTO DE UM AMBIENTE ONLINE DE AUXÍLIO À CORREÇÃO E RESOLUÇÃ...
AMAO - DESENVOLVIMENTO DE UM AMBIENTE ONLINE DE AUXÍLIO À CORREÇÃO E RESOLUÇÃ...
 
Auditoria de Processo
Auditoria de ProcessoAuditoria de Processo
Auditoria de Processo
 
Projeto de Conclusão de Curso - Anderson Nascimento / Mariana Benedett
Projeto de Conclusão de Curso - Anderson Nascimento / Mariana BenedettProjeto de Conclusão de Curso - Anderson Nascimento / Mariana Benedett
Projeto de Conclusão de Curso - Anderson Nascimento / Mariana Benedett
 
A Importância dos Sistemas de Qualidade para o Desenvolvimento de Software da...
A Importância dos Sistemas de Qualidade para o Desenvolvimento de Software da...A Importância dos Sistemas de Qualidade para o Desenvolvimento de Software da...
A Importância dos Sistemas de Qualidade para o Desenvolvimento de Software da...
 
Plano de Projeto de Software
Plano de Projeto de SoftwarePlano de Projeto de Software
Plano de Projeto de Software
 
APOSTILA PCM gestão da manutenção tipos de manutençãopdf
APOSTILA PCM gestão da manutenção tipos de manutençãopdfAPOSTILA PCM gestão da manutenção tipos de manutençãopdf
APOSTILA PCM gestão da manutenção tipos de manutençãopdf
 
Algoritmos e-programacao-apostila-completa
Algoritmos e-programacao-apostila-completaAlgoritmos e-programacao-apostila-completa
Algoritmos e-programacao-apostila-completa
 
Gestao contexto qos_qoe
Gestao contexto qos_qoeGestao contexto qos_qoe
Gestao contexto qos_qoe
 
Monografia Qualidade de Software
Monografia Qualidade de SoftwareMonografia Qualidade de Software
Monografia Qualidade de Software
 
Projeto Aplicado 4°Ciclo Grp01 Testes De Software
Projeto Aplicado 4°Ciclo Grp01 Testes De SoftwareProjeto Aplicado 4°Ciclo Grp01 Testes De Software
Projeto Aplicado 4°Ciclo Grp01 Testes De Software
 
PLANO DE PROJETO DE SOFTWARE para produtos da Lacertae SW
PLANO DE PROJETO DE SOFTWARE para produtos da Lacertae SWPLANO DE PROJETO DE SOFTWARE para produtos da Lacertae SW
PLANO DE PROJETO DE SOFTWARE para produtos da Lacertae SW
 
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De ProcessoUma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
 
FEI - Modelagem de negocios - 2° semestre 2010
FEI - Modelagem de negocios - 2° semestre 2010FEI - Modelagem de negocios - 2° semestre 2010
FEI - Modelagem de negocios - 2° semestre 2010
 
11 1 --teste_de_software_motivação_e_conceitos_basicos
11 1 --teste_de_software_motivação_e_conceitos_basicos11 1 --teste_de_software_motivação_e_conceitos_basicos
11 1 --teste_de_software_motivação_e_conceitos_basicos
 
Wellington Vasconcelos - Priorização de requisitos
Wellington Vasconcelos - Priorização de requisitosWellington Vasconcelos - Priorização de requisitos
Wellington Vasconcelos - Priorização de requisitos
 
TCC - METODOLOGIA SCRUM APLICADA AOS PROCESSOS DE GERÊNCIA E DESENVOLVIMENTO ...
TCC - METODOLOGIA SCRUM APLICADA AOS PROCESSOS DE GERÊNCIA E DESENVOLVIMENTO ...TCC - METODOLOGIA SCRUM APLICADA AOS PROCESSOS DE GERÊNCIA E DESENVOLVIMENTO ...
TCC - METODOLOGIA SCRUM APLICADA AOS PROCESSOS DE GERÊNCIA E DESENVOLVIMENTO ...
 
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de AtividadeSIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
 
A Arte dos Testes de Performance Aplicacional
A Arte dos Testes de Performance AplicacionalA Arte dos Testes de Performance Aplicacional
A Arte dos Testes de Performance Aplicacional
 
Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenhari...
Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenhari...Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenhari...
Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenhari...
 

Plus de Juliana Cindra

Dru - Desenvolvimento para Reuso
Dru - Desenvolvimento para ReusoDru - Desenvolvimento para Reuso
Dru - Desenvolvimento para ReusoJuliana Cindra
 
Trabalho de Reengenharia de Software
Trabalho de Reengenharia de SoftwareTrabalho de Reengenharia de Software
Trabalho de Reengenharia de SoftwareJuliana Cindra
 
Fermine como ferramenta de apoio à implantação do nível G do MPS.Br
Fermine como ferramenta de apoio à implantação do nível G do MPS.BrFermine como ferramenta de apoio à implantação do nível G do MPS.Br
Fermine como ferramenta de apoio à implantação do nível G do MPS.BrJuliana Cindra
 
Trabalho de Sistemas Distribuídos
Trabalho de Sistemas DistribuídosTrabalho de Sistemas Distribuídos
Trabalho de Sistemas DistribuídosJuliana Cindra
 
Exercicio de UML - Documentacao Restaurante
Exercicio de UML  - Documentacao RestauranteExercicio de UML  - Documentacao Restaurante
Exercicio de UML - Documentacao RestauranteJuliana Cindra
 
Padrões de Projeto - Observer
Padrões de Projeto - ObserverPadrões de Projeto - Observer
Padrões de Projeto - ObserverJuliana Cindra
 
Padrão de Projeto - Adapter
Padrão de Projeto - AdapterPadrão de Projeto - Adapter
Padrão de Projeto - AdapterJuliana Cindra
 
Fermine como ferramenta de apoio à implantação do nível G do MPS.Br
Fermine como ferramenta de apoio à implantação do nível G do MPS.BrFermine como ferramenta de apoio à implantação do nível G do MPS.Br
Fermine como ferramenta de apoio à implantação do nível G do MPS.BrJuliana Cindra
 

Plus de Juliana Cindra (12)

UM ESTUDO SOBRE SOA
UM ESTUDO SOBRE SOAUM ESTUDO SOBRE SOA
UM ESTUDO SOBRE SOA
 
Dru - Desenvolvimento para Reuso
Dru - Desenvolvimento para ReusoDru - Desenvolvimento para Reuso
Dru - Desenvolvimento para Reuso
 
Trabalho de Reengenharia de Software
Trabalho de Reengenharia de SoftwareTrabalho de Reengenharia de Software
Trabalho de Reengenharia de Software
 
Fermine como ferramenta de apoio à implantação do nível G do MPS.Br
Fermine como ferramenta de apoio à implantação do nível G do MPS.BrFermine como ferramenta de apoio à implantação do nível G do MPS.Br
Fermine como ferramenta de apoio à implantação do nível G do MPS.Br
 
Trabalho Web Services
Trabalho Web ServicesTrabalho Web Services
Trabalho Web Services
 
Trabalho de Sistemas Distribuídos
Trabalho de Sistemas DistribuídosTrabalho de Sistemas Distribuídos
Trabalho de Sistemas Distribuídos
 
Exercicio de UML - Documentacao Restaurante
Exercicio de UML  - Documentacao RestauranteExercicio de UML  - Documentacao Restaurante
Exercicio de UML - Documentacao Restaurante
 
Padrões de Projeto - Observer
Padrões de Projeto - ObserverPadrões de Projeto - Observer
Padrões de Projeto - Observer
 
Padrão de Projeto - Adapter
Padrão de Projeto - AdapterPadrão de Projeto - Adapter
Padrão de Projeto - Adapter
 
Fermine como ferramenta de apoio à implantação do nível G do MPS.Br
Fermine como ferramenta de apoio à implantação do nível G do MPS.BrFermine como ferramenta de apoio à implantação do nível G do MPS.Br
Fermine como ferramenta de apoio à implantação do nível G do MPS.Br
 
Torre de Hanoi
Torre de HanoiTorre de Hanoi
Torre de Hanoi
 
Rail road
Rail roadRail road
Rail road
 

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

  • 1. 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
  • 2. 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
  • 3. 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
  • 4. As pessoas esquecem quã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 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.
  • 7. 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
  • 8. 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
  • 9. 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. 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 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. 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. 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. 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. 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. 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. 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. 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. 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 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. 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. 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. 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. 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. 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. 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: 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. 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 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. 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 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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, 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. 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. 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.