Académique Documents
Professionnel Documents
Culture Documents
Comissão julgadora
_________________________________
Orientador e Presidente
_________________________________
Examinador (1)
_________________________________
Examinador (2)
ii
AGRADECIMENTOS
A Deus, por nos ter dado força e coragem para enfrentar os problemas durante este
trabalho.
Aos nossos pais, por nos acompanhar pacientemente, entender os obstáculos por nós
superados durante todo o curso e ensinar que a desistência não é uma opção.
Ao nosso orientador Prof o. Dr o. Plinio Thomaz Aquino Junior pela amizade, pelo
Aos nossos mestres pela paciência nas aulas ministradas e todo o conhecimento
passado.
iii
RESUMO
Este projeto tem por objetivo trabalhar uma técnica de apoio ao desenvolvedor de
software. Ela utiliza três conceitos já existentes no mercado: Patterns, Anti-Patterns e
Personas – documentações denominadas neste trabalho como APPP. Embora os três
conceitos citados já sejam conhecidos e aplicados por profissionais da área, a técnica
explorada por este trabalho destaca o relacionamento entre elas, ou seja, a agregação dos
benefícios de cada conceito em prol de outro. A técnica visa atender os desenvolvedores
através da documentação de boas e más práticas no desenvolvimento de software. Por meio da
documentação de problemas e soluções recorrentes, minimiza-se o tempo de esforço
empregado em um problema já resolvido. É de conhecimento comum que soluções diversas,
bem como boas e más práticas podem ser apropriadamente documentadas – tal como é feito
atualmente por meio de Patterns e Anti-Patterns – porém, por meio desta técnica a
documentação poderá ainda ser orientada a um ou mais perfis de usuários: as Personas.
Visando sustentar a viabilidade e eficácia desta proposta, o trabalho apresenta uma ferramenta
que possibilita aos projetistas e desenvolvedores gerirem todo o processo de criação,
armazenamento, pesquisa, aplicação e validação das estruturas APPP e seus respectivos
relacionamentos. A ferramenta poderá ainda, no futuro, ser adaptada para receber as estruturas
APPP automaticamente, por exemplo, através de técnicas de inteligência artificial visando
uma melhor autonomia na disponibilização de recursos para um bom desenvolvimento de
software.
iv
ABSTRACT
v
SUMÁRIO
1 INTRODUÇÃO ............................................................................................................... 12
1.1 Objetivo .......................................................................................................................... 13
2 TRABALHOS RELACIONADOS ................................................................................ 14
3 CONCEITOS FUNDAMENTAIS ................................................................................. 17
3.1 Patterns ou Padrões ....................................................................................................... 17
3.1.1 Origem ......................................................................................................................... 17
3.1.2 Definição ...................................................................................................................... 18
3.1.3 Criação de Patterns ..................................................................................................... 20
3.1.4 Linguagem de Patterns ............................................................................................... 20
3.2 Anti-Patterns ................................................................................................................... 22
3.2.1 Definição ...................................................................................................................... 22
3.2.2 Formato ....................................................................................................................... 22
3.2.3 Criação de Anti-Patterns ............................................................................................ 23
3.3 Personagens Fictícios ou Personas ............................................................................... 24
3.3.1 Definição ...................................................................................................................... 24
3.3.2 O processo de criação ................................................................................................. 24
3.4 Busca por Similaridade ................................................................................................. 27
3.4.1 Definição ...................................................................................................................... 28
3.4.2 Similaridade local ....................................................................................................... 28
3.4.3 Similaridade Global.................................................................................................... 29
4 METODOLOGIA ........................................................................................................... 30
4.1 Entrada / Início .............................................................................................................. 32
4.2 Definição da Estrutura .................................................................................................. 32
4.3 Inserção de APPP no SiGePAPP .................................................................................. 33
4.4 Relacionamento entre APPP......................................................................................... 34
4.4.1 PICAPs – Relacionamento entre Patterns e Personas ............................................. 34
4.4.2 Anti-PICAPs – Relacionamento entre Anti-Patterns e Personas ............................ 34
4.4.3 Relacionamento entre Anti-Patterns e Patterns ........................................................ 34
4.4.4 APPP – Relacionamento entre Anti-Pattern, Pattern e Personas. ........................... 35
4.5 Utilização ........................................................................................................................ 35
4.6 Avaliação ........................................................................................................................ 36
vi
4.7 Análise da Avaliação / Ações de Bloqueio ................................................................... 36
4.7.1 Cálculo da média: ....................................................................................................... 37
4.7.2 Análise do resultado: .................................................................................................. 37
4.8 Processo da Busca por Similaridade ............................................................................ 37
4.8.1 O algoritmo ................................................................................................................. 38
4.8.2 Melhoria de Desempenho........................................................................................... 44
5 MODELAGEM ............................................................................................................... 46
5.1 Requisitos ....................................................................................................................... 46
5.1.1 Requisitos Funcionais ................................................................................................. 46
5.1.2 Não Funcionais............................................................................................................ 49
5.2 Diagramas de Caso de Uso............................................................................................ 50
5.2.1 Caso de Uso: Login ..................................................................................................... 50
5.2.2 Caso de Uso: Cadastro ............................................................................................... 50
5.2.3 Caso de Uso: Consulta................................................................................................ 51
5.2.4 Caso de Uso: Relacionamento ................................................................................... 52
5.2.5 Caso de Uso: Avaliação .............................................................................................. 53
5.3 Diagrama de Classe ....................................................................................................... 54
5.3.1 Classe Usuário ............................................................................................................. 56
5.3.2 Classe Login ................................................................................................................ 56
5.3.3 Classe Estrutura ......................................................................................................... 56
5.3.4 Classe Objeto .............................................................................................................. 57
5.3.5 Classe Pattern .............................................................................................................. 57
5.3.6 Classe Anti-Pattern...................................................................................................... 58
5.3.7 Classe Persona ............................................................................................................. 58
5.3.8 Classe Atributo ........................................................................................................... 59
5.3.9 Classe RelacObjetos ................................................................................................... 59
5.4 Diagramas de Seqüência ............................................................................................... 60
5.4.1 Login ............................................................................................................................ 60
5.4.2 Cadastro de Usuário ................................................................................................... 60
5.4.3 Cadastro de Estrutura ............................................................................................... 61
5.4.4 Cadastro de Atributos ................................................................................................ 62
5.4.5 Cadastro de Tipos ....................................................................................................... 63
5.4.6 Cadastro de documento: Pattern ............................................................................... 64
5.4.7 Cadastro de documento: Anti-Pattern ...................................................................... 65
vii
5.4.8 Cadastro de documento: Persona.............................................................................. 66
5.4.9 Cadastro de documento: APPP Personalizado ......................................................... 66
5.4.10 Relacionamento ........................................................................................................... 67
5.4.11 Busca ............................................................................................................................ 68
5.4.12 Avaliação ..................................................................................................................... 68
5.4.13 Ações de Bloqueio ....................................................................................................... 69
5.5 banco de dados ............................................................................................................... 71
5.5.1 Modelo Entidade Relacionamento ............................................................................ 71
5.6 Tecnologias utilizadas ................................................................................................... 73
5.6.1 Oracle........................................................................................................................... 73
5.6.2 Java – JSP ................................................................................................................... 73
6 AVALIAÇÃO DO SISTEMA ........................................................................................ 74
6.1 Avaliação da Interface .................................................................................................. 74
6.1.1 Avaliação Heurística .................................................................................................. 74
6.1.2 Testes com o Usuário baseado em Personas ............................................................. 75
6.1.3 Metodologia de Teste .................................................................................................. 76
6.2 Resultados ...................................................................................................................... 78
6.2.1 Usuários por meio das Personas ................................................................................ 78
6.2.2 Conclusão dos testes com Usuários ........................................................................... 81
6.2.3 Melhorias no sistema com o resultado dos testes com Usuários............................. 81
6.2.4 Heurísticas ................................................................................................................... 82
6.2.5 Conclusão dos testes Heurísticos ............................................................................... 83
7 RESULTADOS OBTIDOS ............................................................................................ 85
8 CONCLUSÃO ................................................................................................................. 86
9 TRABALHOS FUTUROS ............................................................................................. 87
REFERÊNCIAS ..................................................................................................................... 88
ANEXO I – TELAS PRINCIPAIS ........................................................................................ 91
viii
LISTA DE FIGURAS
Figura 1. Grafo da relação entre os padrões Fonte: (GERBER, 1999) .................................... 21
Figura 2. Diagrama de processo para criação de um Anti-Patterns Fonte: Os Autores ........... 23
Figura 3. Metodologia do SiGePAPP Fonte: os autores. ......................................................... 31
Figura 4. Exemplo de PICAP. Fonte: (AQUINO JR., 2008) ................................................... 35
Figura 5. Similaridade Letra a Letra Fonte: Os autores ........................................................... 38
Figura 6. Exemplo Fonte: Os autores ....................................................................................... 39
Figura 7. Quantidade de palavras Fonte: Os autores. ............................................................... 40
Figura 8. Vetor A Fonte: Os autores ........................................................................................ 40
Figura 9. Vetor B Fonte: Os autores ......................................................................................... 41
Figura 10. Ciclo de Busca Fonte: Os autores ........................................................................... 42
Figura 11. Algoritmo Fonte: Os autores ................................................................................... 43
Figura 12. Matriz B, obtida a partir da varredura no Vetor B. Fonte: Os autores .................... 44
Figura 13. Texto 01 vs Texto 02 vs tempo(seg) ....................................................................... 45
Figura 14. Diagrama de Caso de Uso: Login Fonte: os autores. .............................................. 50
Figura 15. Diagrama de Caso de Uso: Cadastro Fonte: os autores. ......................................... 51
Figura 16. Diagrama de Caso de Uso: Consulta Fonte: os autores. ......................................... 52
Figura 17. Diagrama de Caso de Uso: Relacionamento Fonte: os autores............................... 52
Figura 18. Diagrama de Caso de Uso: Avaliação Fonte: os autores ........................................ 53
Figura 19. Digrama de Classes SiGePAPP Fonte: os autores .................................................. 55
Figura 20. Diagrama de Seqüencia: Login Fonte: os autores. .................................................. 60
Figura 21. Diagrama de Seqüência: Cadastro de Usuário Fonte: os autores. ........................... 61
Figura 22. Diagrama de Seqüência: Cadastro de Estrutura Fonte: os autores. ......................... 62
Figura 23. Diagrama de Seqüência: Cadastro de Atributos ..................................................... 63
Figura 24. Diagrama de Seqüência: Cadastro de Tipos ........................................................... 64
Figura 25. Diagrama de Seqüência: Cadastro de documento Pattern Fonte: os autores. ........ 65
Figura 26. Diagrama de Seqüência: Cadastro de documento Anti-Pattern .............................. 65
Figura 27. Diagrama de Seqüência: Cadastro de documento Persona .................................... 66
Figura 28. Diagrama de Seqüência: Cadastro de documento APPP Personalizado ................. 67
Figura 29. Diagrama de Seqüência: Relacionamento Fonte: os autores. ................................. 67
Figura 30. Diagrama de Seqüência: Busca Fonte: os autores. ................................................. 68
Figura 31. Diagrama de Seqüência: Avaliação Fonte: Os autores. .......................................... 69
Figura 32. Diagrama de Seqüência: Ações de Bloqueio Fonte: os autores. ............................. 70
ix
Figura 33. Modelo Entidade Relacionamento .......................................................................... 72
Figura 34. Média de Notas da Avaliação no Teste de Usuário. Fonte os Autores. .................. 79
Figura 35. Erro Heurística 1 e 2 ............................................................................................... 82
Figura 36. Erro Heurística 3 e 4 ............................................................................................... 83
Figura 37. Erro Heurística 5 e 6 ............................................................................................... 83
Figura 38. Tela: Inicial ............................................................................................................. 91
Figura 39. Tela: Cadastro de Usuário ....................................................................................... 92
Figura 40. Tela: Cadastro de Estrutura ..................................................................................... 93
Figura 41. Tela: Cadastro de Conteúdo .................................................................................... 94
Figura 42. Tela: Busca APPP ................................................................................................... 95
Figura 43. Tela: Resultado da Busca ........................................................................................ 95
x
LISTA DE TABELAS
Tabela 1. Atributos fundamentais de um Pattern (GAMMA, et al., 1995) .............................. 18
Tabela 2. Modelo de atributos opcionais para Pattern(GAMMA, et al., 1995) ....................... 19
Tabela 3. Exemplo de Pattern .................................................................................................. 19
Tabela 4. Atributos fundamentais de um Anti-Pattern ............................................................. 22
Tabela 5. Tabela de exemplos de Personas .............................................................................. 26
Tabela 6. Classificação de Grau de Severidade ........................................................................ 75
Tabela 7. Usuários .................................................................................................................... 76
Tabela 8. Lista de Tarefas......................................................................................................... 77
Tabela 9. Questionário .............................................................................................................. 78
Tabela 10. Melhorias reportadas pelos Usuários ...................................................................... 81
xi
1 INTRODUÇÃO
Nos dias atuais existem softwares controlando boa parte de tudo que nos cerca, desde
um aparelho eletrônico até as grandes corporações. A qualidade do desenvolvimento de um
software tornou-se algo fundamental para o sucesso do produto e, de forma significativa, vê-
se intensificar esse quadro nos últimos anos. A demanda por sistemas desenvolvidos de forma
mais rápida, o inevitável aumento da dependência das empresas de softwares que atendam aos
seus negócios e a enorme diversidade de perfis de usuários acabam impactando diretamente a
maneira como os sistemas computacionais são planejados, desenvolvidos e finalmente
implementados. Por outro lado, o dinamismo, a necessidade de processamento, transformação
de informações e a flexibilidade do mercado pressionam os desenvolvedores de tal forma que
o tempo entre a solicitação do software e sua entrega final tem sido significativamente
minimizado. Como conseqüência, a relação custo, qualidade e prazo têm sido seriamente
desafiados e/ou comprometidos. Soma-se ainda a este quadro o crescimento exponencial de
usuários com seus mais variados perfis, características e conhecimentos, trazendo com eles a
natural necessidade de que os sistemas envolvidos atendam de alguma forma as
particularidades de cada perfil. Assim, os desenvolvedores carecem cada vez mais de técnicas
e recursos que efetivamente os auxiliem a maximizar o tempo, minimizar o retrabalho e
atender às crescentes necessidades de seus clientes. Tudo isso sem comprometer a qualidade
do produto final.
Esse equilíbrio exigido pelo mercado – custo, qualidade e prazo – faz com que a
criação, compartilhamento e a gerência adequada de documentos se tornem ainda mais
necessários.
Muitos são os itens a serem documentados: boas e más práticas, perfis de usuários,
problemas e também possíveis soluções. Todas essas informações, quando disponíveis de
forma padronizada e completa, auxiliam os desenvolvedores a, por exemplo, entenderem a
maneira como um determinando componente foi desenvolvido, qual a melhor prática para
resolução de um determinado problema e como essas soluções podem ser aplicadas a perfis
específicos de usuários. Atualmente, os conceitos de Patterns e Anti-Patterns atendem
parcialmente estas necessidades relacionadas ao desenvolvimento de software.
Em (AQUINO JR., 2008) o autor descreve os Patterns, ou Padrões, como soluções de
problemas que se repetem em diferentes contextos. Ele esclarece que a idéia de padrões é
capturar conhecimento do bom projeto e documentá-lo de forma que possa ser compartilhado
pela comunidade.
12
Por outro lado os Anti-Patterns descrevem soluções ineficientes ou que resultam em
conseqüências negativas (KOTZÉ, et al., 2006).
Essas duas estruturas – Patterns e Anti-Patterns – são ótimas técnicas de
documentação durante o desenvolvimento de software, contudo poucas levam em
consideração o perfil do usuário final e suas mais diversas características. Tal deficiência
pode ser resolvida através da técnica de Personas.
De acordo com (COOPER, 1999) as Personas são um conjunto de informações
realísticas e representativas que incluem detalhes fictícios para caracterização mais completa
de um grupo de usuários. Isso possibilita o planejamento do sistema focando um pequeno
conjunto de perfis, porém atendendo uma grande quantidade de usuários e suas respectivas
características (AQUINO JR., 2008).
1.1 Objetivo
Este trabalho explora e relaciona os conceitos de Anti-Patterns, Patterns e Personas
(APPP) promovendo uma técnica para apoio ao desenvolvimento de software. Também
apresenta uma ferramenta, intitulada SiGePAPP (Sistema de Gerenciamento de Patterns,
Anti-Patterns e Personas), que possibilita o compartilhamento, busca e gerenciamento das
documentações.
13
2 TRABALHOS RELACIONADOS
16
3 CONCEITOS FUNDAMENTAIS
3.1.1 Origem
Os Patterns foram inicialmente definidos como aplicação do conhecimento ao
trabalho (TAYLOR, 1911). Em 1977, um arquiteto chamado Christopher Alexander
17
(ALEXANDER, 1977) percebeu que, com o passar do tempo, seu trabalho resumia-se a
resolver problemas que de alguma forma já haviam sido tratados em algum momento.
Alexander percebeu que os problemas eram relativamente parecidos e que, em muitos casos, a
solução era genérica e que poderia, sem muitas dificuldades, ser aplicada a diversos
problemas específicos em seus mais variados contextos. A partir da disponibilização dessas
soluções, um arquiteto sem experiência poderia alcançar um excelente resultado por meio da
implementação dessas regras de projeto, compartilhando um conjunto de padrões de forma
que possa ser utilizado pela comunidade em geral.
O conceito de Pattern definido por Alexander tem, como referência, portanto,
problemas e soluções relacionadas com a construção civil. Contudo, este conceito pode ser
aplicado em quaisquer áreas de trabalho, inclusive em computação.
3.1.2 Definição
Christopher Alexander definiu um padrão como: “Cada Pattern descreve um
problema que ocorre várias e várias vezes em nosso meio, descrevendo, portanto, a solução
para este problema, de tal forma que possa ser utilizada milhares de vezes, sem que haja o
retrabalho desta.”(ALEXANDER, 1977).
Embora a aplicação prática de um Pattern seja um processo relativamente claro e
simples, a definição exata de sua estrutura não é algo único. Existem diversas estruturas que
contém atributos diferentes que podem ser atribuídos.
Em (GAMMA, et al., 1995) os autores explicam que, embora notações gráficas sejam
importantes e úteis, elas por si só não são suficientes para se documentar um padrão. Essas
notações simplesmente capturam o produto final do processo de modelagem, seus
relacionamentos entre as classes e objetos. Para que uma solução possa ser reutilizada torna-
se também necessário documentar decisões, alternativas e até mesmo exemplificar com casos
concretos.
Um Pattern possui basicamente quatro atributos fundamentais. A Tabela 1 apresenta
estes atributos:
Tabela 1. Atributos fundamentais de um Pattern (GAMMA, et al., 1995)
18
Nunca deve ser descrito uma solução específica, como por exemplo, um
código que implementa um algoritmo. A solução é como um modelo que
deve ser aplicado a qualquer projeto.
Além dos atributos fundamentais ainda podem ser inseridos diversos outros atributos
que ajudem a compreender melhor o padrão descrito. Gamma (GAMMA, et al., 1995) cita
ainda outros atributos opcionais que podem compor um padrão. A Tabela 2 apresenta alguns
destes atributos.
Tabela 2. Modelo de atributos opcionais para Pattern(GAMMA, et al., 1995)
Exemplo de Código Uma exemplificação literal de como o Pattern pode ser codificado. Essa
codificação pode ser feita em qualquer linguagem.
Patterns Quais Patterns estão associados com este? Quais são as principais
diferenças e semelhanças? Com quais outros Patterns este deveria ser
Relacionados
utilizado?
Tree-Table
19
hierarquia dos itens, além de uma matriz com dados adicionais ou atributos de cada
item, tudo em uma estrutura unificada.
Solução: Os exemplos mostram o que deve ser feito: coloca-se a árvore na primeira coluna e
os atributos dos itens nas colunas subseqüentes. As linhas – um item por linha – são
normalmente selecionáveis. Naturalmente, pode ser combinada numa tabela
ordenada com o objetivo de produzir uma estrutura mais usável e interativa.
Esta técnica tornou-se comumente utilizada em clientes de e-mail e noticias.
Fonte: (TIDWELL, 2006)
21
exista tal estrutura hierárquica entre eles, isso é considerado apenas como um conjunto ou
catálogo de padrões.
3.2 Anti-Patterns
É senso comum que dificilmente um projeto seja entregue sem que erros aconteçam
durante sua concepção. Naturalmente, os projetistas tencionam buscar melhores soluções
gerando experiência e aprendizado, porém algumas dessas resoluções podem conter falhas.
Um meio de documentação para os problemas existentes que descreve erros ou
procedimentos ineficientes é conhecido como Anti-Patterns(LONG, 2001). Em (AKROYD,
1996) foi apresentado este conceito, que tem como objetivo completar e agregar valor a idéia
já existente de Patterns.
Anti-Pattern mostra inclusive o caminho seguido para tentar chegar ao resultado,
evitando assim que outros profissionais cometam os mesmos equívocos.
3.2.1 Definição
Pesquisas comprovam que cinco entre seis projetos de software falham (BROWN, et
al., 2000). Essas falhas podem ser aproveitadas para documentar o domínio de soluções
insatisfatórias por meio de Anti-Patterns, que permitem uma comunicação entre os projetistas.
Podem ser destacados dois tipos de Anti-Patterns (KOTZÉ, et al., 2006):
Simple Anti-Pattern: Apresenta soluções negativas.
Amelioration Anti-Pattern: Descreve os passos de uma solução ineficiente na
tentativa de encontrar uma solução positiva.
3.2.2 Formato
A Tabela 4 apresenta os atributos fundamentais de um Anti-Pattern (MICROSOFT
CORPORATION, 2005) (LONG, 2001):
Tabela 4. Atributos fundamentais de um Anti-Pattern
22
Recomendações: Como a solução pode ser alcançada, podendo ser direcionada há um
Pattern. Este atributo está presente apenas em Anti-Patterns de
Melhoria.
Fonte: os autores
23
3.3 Personagens Fictícios ou Personas
Devido ao crescimento da diversidade de usuários, torna-se evidente as suas diferenças
de comportamento, necessidade, habilidade e experiência computacional. Essa variedade de
características e perfis impõe aos projetistas um grande desafio, que é o de desenvolver um
produto acessível a todos os perfis de usuários que o utilizarão (AQUINO JR., 2008). Uma
resposta para este problema é unir as características dos usuários envolvidos e representá-los
na forma de personagens fictícios, chamados Personas.
É sabido por meio de pesquisas e pela prática comum entre os projetistas, que estes
possuem a tendência de desenvolver sistemas tendo como base o seu próprio perfil ao invés
do perfil do usuário. As Personas, portanto, auxiliam a romper esta tendência, contribuindo
para que estes profissionais desenvolvam o sistema focando nos perfis dos usuários(AQUINO
JR., 2008).
3.3.1 Definição
De acordo com (COOPER, et al., 2003), as Personas são personagens fictícios que
caracterizam de forma mais completa um grupo de usuários finais. Elas devem possuir um
nome, características e imagem para agregar realismo e facilitar sua aplicação, comunicação e
reconhecimento entre os profissionais que irão utilizá-las (ver exemplo na Tabela 5). Através
deste conceito, é possível desenvolver um sistema baseado em poucos perfis, mas que, na
verdade, abrange uma quantidade maior de usuários (AQUINO JR., 2008).
25
descartar redundâncias, agrupar Personas, descartar atributos irrelevantes,
etc.
26
Característica: Detalhista
Vê-se, portanto, que a consolidação dos passos propostos por (COOPER, 1999) para a
fabricação de uma Persona permite ao desenvolvedor personificar em sua mente o usuário
para quem o sistema está sendo desenvolvido. A descrição visual permite aos
desenvolvedores discutirem possíveis soluções para determinada Persona sem que, para isso,
seja necessário listar todos os seus atributos novamente. Por meio da descrição expandida e
seus mais variados atributos, é possível expandir a compreensão de quem realmente é o
usuário, quais são suas dificuldades na realização de suas funções e até mesmo prever qual
será seu comportamento diante de situações impostas naturalmente pelo uso da aplicação
desenvolvida.
3.4.1 Definição
Comumente usado em RBC (Raciocínio Baseado em Casos) e IR (Information
Retrieval), a similaridade é um conceito que extrai um grau de semelhança entre dois
objetos(GRESSE, 2003). Esse grau de semelhança pode ser utilizado para comparar cada
objeto da base de dados com o objeto que se deseja obter.
A busca visa encontrar um grau de similaridade entre 0.0 e 1.0 efetuando uma
comparação de características, com os casos armazenados.
O processo de similaridade, portanto, envolve duas etapas:
28
3.4.3 Similaridade Global
Similaridade referente à comparação de todos os atributos ou índices dos casos,
analisados anteriormente com a similaridade local. Essas características, ou atributos,
podem ter pesos, classificando-o como maior ou menor relevância no cálculo.
Para ter maior eficiência, a busca pode ser feita em uma base de casos indexada,
ou seja, é possível escolher quais atributos devem ser comparados. A fórmula abaixo
apresenta o cálculo do algoritmo Nearest Neighbour (vizinho mais próximo)(GRESSE,
2003):
𝑊𝑖 ∗ 𝑠𝑖𝑚(𝑞𝑖, 𝑐𝑖)
𝑆𝑖𝑚 𝑋, 𝑌 =
𝑊𝑖
Sendo:
Wi: Peso do Atributo
Sim(X,Y): Similaridade global da consulta X com o caso Y
sim(qi,ci): Similaridade local entre atributo qi de X e ci de Y.
29
4 METODOLOGIA
30
Legenda:
31
4.1 Entrada / Início
Como parte inicial da metodologia do SiGePAPP, o processo de entrada resume-se
nos meios pelos quais o usuário poderá iniciar o fluxo de criação ou pesquisa de um APPP:
Busca: Por conter uma base de documentações inseridas pelos mais diversos
profissionais da área, os usuários do SiGePAPP poderão pesquisar por um
Pattern, Anti-Pattern ou Persona, sendo possível também encontrar outros
documentos relacionados. O processo inicia-se com o preenchimento dos
seguintes campos: Nome, Contexto, Problema e/ou Solução. A partir disso, o
sistema utilizar-se-á das técnicas provenientes da busca por similaridade em
RBC (Raciocínio Baseado em Casos) (conforme descrito no item 3.4.2) para
comparar as informações digitadas com os atributos comuns entre Patterns e
Anti-Pattern. O processo de busca de Personas ocorre pelos seus atributos
nome e descrição.
32
pela criação de uma nova estrutura. Os atributos que compõem as estruturas mínimas para
cada componente do APPP são:
Pattern
o Nome;
o Contexto;
o Descrição do Problema;
o Solução.
Anti-Pattern
o Nome;
o Contexto;
o Solução;
o Descrição do Problema;
o Barreiras;
o Sintomas;
o Conseqüências;
o Recomendações;
Personas
o Nome;
o Descrição;
o Link para Foto;
Caso o usuário julgue que os atributos acima não são suficientes para uma boa
descrição de sua documentação, ele terá, portanto, a flexibilidade para criar outros atributos
que irão compor sua estrutura final. Ademais, o usuário poderá ainda usufruir de estruturas
criadas por outros usuários.
33
4.4 Relacionamento entre APPP
O sistema permite ao usuário efetuar o relacionamento entre os documentos APPP
gerados. Este relacionamento pode ocorrer entre as três, ou apenas duas das estruturas. Em
(AQUINO JR., 2008) ou autor expõe uma estrutura chamada de PICaP, que é justamente a
relação entre Pattern e Personas (ver Figura 4) . Ele explica que a relação entre as duas
estruturas enriquece a documentação, pois embora o problema seja o mesmo, a solução
abordada pode ser feita tendo como base as características de cada uma das Personas
envolvidas.
A seguir, é detalhado como é possível realizar estes relacionamentos:
34
Anti-Pattern, o atributo “Recomendações” pode ser referenciado a um Pattern. Isso torna a
documentação muito mais objetiva e direta, características tão claramente defendidas por
diversos autores, como descritas em (GAMMA, et al., 1995).
4.5 Utilização
Uma vez finalizado o processo de inserção e disponibilização, o usuário tem a
possibilidade de navegar pelo SiGePAPP, verificar estruturas e conteúdos de APPP, com o
intuito de aplicá-los em seus projetos usufruindo de todos os recursos do sistema.
35
4.6 Avaliação
Conforme as documentações são disponibilizadas para uso, os usuários podem avaliá-
las à medida que são aplicados em seus projetos. Essa avaliação é feita através de um
questionário cujas respostas possuem pesos que variam entre 1 (um) e 5 (cinco). O
administrador do sistema possui a flexibilidade para criar um questionário personalizado, criar
as perguntas e suas respectivas respostas, bem como anexar respostas já existentes como:
“Sim”, “Não”, “Sempre”, “Fácil”, entre outras.
Essa avaliação é essencial para a filtragem dos dados inseridos no sistema, pois
somente por meio deste feedback por parte dos usuários é possível classificar a confiabilidade
de cada documento.
A princípio, os autores deste projeto de formatura haviam criado a possibilidade do
usuário avaliar tanto a estrutura do documento (seus atributos, nomes e organização) como o
conteúdo de cada documento, a primeira avaliação denominava-se “Estrutura” e a segunda
“Conceitual”. À medida que o trabalho foi sendo desenvolvido, conclui-se por meio de testes
e experiências que a avaliação da estrutura não agregaria valor suficiente para justificar o
investimento necessário em sua implantação. Para o usuário do SiGePAPP, ter a certeza – por
meio de avaliações – de que o conteúdo de um determinado documento é de fato eficaz, é o
que realmente importa. Saber, por meio da experiência alheia – que será refletida nas
avaliações dos documentos (conteúdo) – que um determinado Pattern, Anti-Pattern ou
Persona realmente atende às suas necessidades é indubitavelmente o maior retorno esperado
pelos usuários.
A experiência de uso aliada às avaliações freqüentes procura fazer com que somente
os melhores documentos sejam destacados, contribuindo para o sucesso no compartilhamento
de conhecimento e experiências. O resultado desta avaliação alimenta o processo de análise
descrito no item 4.7.
Onde:
N(x) = Nota da análise
n(i) = Nota de um usuário i
Sendo:
i ≥ 10
Para efetuar este cálculo foi utilizado uma função do banco de dados Oracle. O nome
desta função é AVG, que executa exatamente a fórmula apresentada na Equação 1.
Em caso de bloqueio o autor recebe uma mensagem que informa essa ocorrência.
37
Figura 5. Similaridade Letra a Letra
Fonte: Os autores
No exemplo da Figura 5, as letras “P”, “O”, “D” e “E” são encontradas em ambas as
palavras, resultando, portanto, em uma similaridade de 4 / 7, ou seja, 57% - de sete letras,
quatro são semelhantes. Um algoritmo que não levasse em consideração a busca letra a letra
simplesmente encerraria sua lógica alegando similaridade zero. O passo a passo deste
algoritmo será discutido posteriormente. Por agora é necessário enfatizar que, devido à
vantagem apresentada acima, o grupo julgou o algoritmo “Taxa de maior substring comum” –
doravante denominada apenas TMSC – como sendo aquele que melhor atende às
necessidades deste trabalho, justificando, portanto, sua implantação.
4.8.1 O algoritmo
A TMSC foi implantada com base em alguns conceitos já existentes (GRESSE, 2003)
e outros julgados necessários pelo próprio grupo, são eles:
38
Figura 6. Exemplo
Fonte: Os autores
39
Figura 7. Quantidade de palavras
Fonte: Os autores.
Sendo assim, o Texto A será o texto base e o Texto B o comparado, uma vez que este
último possui sete palavras, uma a menos do que o primeiro.
Figura 8. Vetor A
Fonte: Os autores
40
Figura 9. Vetor B
Fonte: Os autores
41
A palavra percorrida (no Vetor A) chegar ao fim, no exemplo aplicado aqui após a
letra “e” de “interface”;
Encontrar uma palavra no Vetor B cuja similaridade seja igual a 1, ou seja, 100% -
palavra idêntica;
Logo após o término do ciclo demonstrado pela figura acima o TMSC inicia todo o
processo novamente agora tendo como base a próxima palavra do Vetor A: “devera”. A
42
função retornará a fração de similaridade desta palavra e repetirá o processo até o término do
vetor base. No exemplo demonstrado na figura acima, todas as outras palavras do Texto B -
além da “interface” – foram descartadas logo no primeiro ciclo, já que nenhuma delas possui
a letra “i” na primeira posição. Caso houvesse alguma palavra iniciando com “i” além da
“interface” esta seria percorrida até que encontrasse a primeira discrepância, ao término do
processo o algoritmo teria duas palavras cujas frações de similaridades seriam maior do que
zero, nesta situação, o TMSC retorna sempre aquela de maior similaridade.
Na Figura 11, encontra-se delineado a codificação do algoritmo Maior_substring() em
pseudo-código, conforme lógica anteriormente descrita.
43
4.8.1.4 Passo 4 – A similaridade Global
Uma vez que todo o processo destina-se a informar ao usuário qual a similaridade de
todo o APPP, o SiGePAPP utiliza da similaridade local para calcular a global. Esta é feita
através de pesos que são atribuídos a cada atributo do APPP. No final do processo, a
similaridade de cada atributo é multiplicada por seu respectivo peso de forma que a soma
destes formarão a similaridade global entre os APPP‟s analisados.
44
matriz, onde terá que percorrer um número muito menor de palavras do que faria caso
estivesse trabalhando com a vetorização tradicional. Ademais, quando uma palavra é utilizada
esta é excluída da matriz, tornando-a ainda mais enxuta para o próximo ciclo de busca.
O gráfico da Figura 13 demonstra que a busca por similaridade comporta-se como
uma função exponencial. O eixo x e y do gráfico representam o tamanho em caracteres de
cada um dos textos comparados. O eixo z, por sua vez, representa o tempo em segundos do
início até o fim de toda a execução do algoritmo. Conclui-se, portanto, que o tempo de
resposta do algoritmo é diretamente proporcional ao tamanho dos textos comparados.
t (seg)
1,5
1 t (seg)
1-1,5
0,5 0,5-1
1838
0-0,5
0 152
1281 Texto 01
640 62
320
Texto 02 62
45
5 MODELAGEM
5.1 Requisitos
Identificação: RF-1
Requisito: Cadastro de Pattern
Descrição: Possibilidade de cadastrar um Pattern baseado em uma
estrutura definida. A estrutura poderá ser a mínima ou
personalizada pelo usuário por meio da inclusão de novos
atributos.
Identificação: RF-2
Requisito: Cadastro de Anti-Pattern
Descrição: Possibilidade de cadastrar um Anti-Pattern baseado em uma
estrutura definida. A estrutura poderá ser a mínima ou
personalizada pelo usuário por meio da inclusão de novos
atributos.
Identificação: RF-3
Requisito: Cadastro de Persona
Descrição: Possibilidade de cadastrar uma Persona baseada em uma
estrutura definida. A estrutura poderá ser a mínima ou
personalizada pelo usuário por meio da inclusão de novos
atributos.
Identificação: RF-4
46
Requisito: Cadastro da Estrutura de Pattern
Descrição: Caso não exista uma estrutura que descreva eficientemente
um Pattern, o usuário poderá criar uma nova estrutura a
partir da mínima com atributos personalizados.
Identificação: RF-5
Requisito: Cadastro de Estrutura de Anti-Pattern
Descrição: Caso não exista uma estrutura que descreva eficientemente
um Anti-Pattern, o usuário poderá criar uma nova estrutura a
partir da mínima com atributos personalizados.
Identificação: RF-6
Requisito: Cadastro de Estrutura de Persona.
Descrição: Caso não exista uma estrutura que descreva eficientemente
uma Persona, o usuário poderá criar uma nova estrutura a
partir da mínima com atributos personalizados.
Identificação: RF-7
Requisito: Busca de APPP
Descrição: Encontrar outros APPP a partir de atributos específicos
digitados pelo usuário, tais como nome, contexto etc. O
usuário poderá escolher se deseja uma “Busca por Estrutura”
ou uma “Busca por Conteúdo ou Documento”. Ademais, ele
poderá ainda desejar uma busca por similaridade, digitando
parte do texto ou palavras aleatórias.
Identificação: RF-8
Requisito: Associações entre os APPP
Descrição: Há quatro tipos de relacionamentos entre os APPPs:
Relacionar um Pattern à Personas(PiCAPS)
Relacionar um Anti-Pattern à Personas(Anti-
PiCAPS)
Relacionar Pattern com Anti-Pattern.
47
Relacionar Pattern com Anti-Pattern e Personas.
Identificação: RF-9
Requisito: Cadastro de Usuários
Descrição: Os usuários devem estar cadastrados previamente de acordo
com seu perfil, podendo ser:
Administrador
Usuário
Identificação: RF-10
Requisito: Avaliação dos documentos
Descrição: Usuários podem atribuir notas aos documentos. As respostas
possuem pesos que variam de 1 (um) a 5 (cinco) sendo 1
(um) o menor peso e 5 (cinco) o maior. As perguntas e
respostas poderão ser cadastradas pelo administrador, tendo
este flexibilidade total para criar respostas relacioná-las às
perguntas que desejar.
Identificação: RF-11
Requisito: Ação de bloqueio
Descrição: De acordo com dados obtidos com a avaliação (RF-11), o
sistema bloqueará o documento, avisando o autor desse
bloqueio.
48
Identificação: RF-12
Requisito: Exibir APPP relacionado
Descrição: O usuário poderá visualizar quais documentos estão
relacionados uns com os outros.
Identificação: RNF-1
Requisito: Estrutura Client-Server
Descrição: Estrutura que contém computadores clientes e
computadores servidores onde existe uma comunicação em
rede.
Identificação: RNF-2
Requisito: Usabilidade
Descrição: Proporcionar ao usuário uma interface de fácil navegação,
clara e objetiva. Conceder botões, atalhos e seqüência de
telas objetivando a agilidade por parte do usuário.
Identificação: RNF-3
Requisito: Uso de SGBD
Descrição: Sistema de gerenciamento de banco de dados para criação
de banco de dados relacional.
Identificação: RNF-4
Requisito: Segurança
Descrição: Controle de usuários por meio de Login, podendo este ter o
perfil de administrador ou usuário convencional.
Identificação: RNF-5
Requisito: Ambiente WEB
49
Descrição: Sistema deverá ser projetado em plataforma WEB.
Identificação: RNF-6
Requisito: Manutebilidade
Descrição: Código estruturado para prover manutenção facilitada.
50
Ao realizar o acesso ao caso de uso “Cadastro de Usuário”, o usuário poderá efetuar o
cadastro de seu acesso e alterações de seu perfil no sistema. Para realizar o cadastro de uma
nova estrutura APPP, o acesso é feito pelo caso de uso “Cadastro de Estrutura”, se não existir
os atributos desejados pelo usuário este deverá inseri-lo através do caso de uso “Criação e/ou
Alteração de atributos”. Por fim, o cadastro dos APPP será realizado através do caso de uso
“Cadastro de Conteúdo”.
51
Figura 16. Diagrama de Caso de Uso: Consulta
Fonte: os autores.
52
5.2.5 Caso de Uso: Avaliação
Na Figura 18 é apresentado o diagrama de caso de uso para o cenário de avaliação dos
APPP pelos usuários do sistema.
Através dessas avaliações o sistema poderá bloquear a exibição, de um determinado
APPP e enviar ao seu criador um informativo sobre o bloqueio.
53
5.3 Diagrama de Classe
O Diagrama de Classe tem por finalidade representar as classes utilizadas, de forma
gráfica, de acordo com as regras de UML. A Figura 19 apresenta o diagrama de classe gerado
para este projeto de formatura.
54
Figura 19. Digrama de Classes SiGePAPP
Fonte: os autores
55
5.3.1 Classe Usuário
Essa classe armazena todas as informações necessárias para o sistema funcionar, no
que tange o usuário.
Atributos:
cd_user: código do usuário no sistema.
nm_prim_nome: Primeiro nome do usuário no sistema.
nm_ult_nome: Ultimo ou sobrenome do usuário.
dt_nasc: data de nascimento do usuário.
nr_nota: Nota que usuário tem no sistema, de acordo com sua avaliação.
dt_cadastro: data da criação do cadastro do usuário no sistema.
ds_área_interesse: Áreas de interesse do usuário.
nm_msn: username do Microsoft MSN Messenger do Usuário.
nm_skype: username do Skype usado pelo usuário.
Métodos:
Construtores, Getters e Setters.
Dependências:
Relação de composição com a classe Usuário.
56
ds_estrutura: Descrição da estrutura.
cd_estrutura: É o atributo que armazena o código da estrutura.
tpEstrutura: Tipo da estrutura(„PA‟ – Pattern; „AP‟ – AntiPattern, „PE‟ -
Persona).
Métodos:
Construtores, Getters e Setters.
Dependências:
Relação de composição com a classe Usuário.
Dependências:
Relação de composição com a classe Estrurura.
Relação de composição com a classe Usuario.
57
Herda todos os atributos da classe Objeto, com relação entre cd_objeto e
cd_pattern.
cd_pattern: Representa o código do Pattern no sistema (cd_objeto).
ds_Pat_problema: descrição do problema que esse Pattern documenta.
ds_Pat_solução: descrição da solução do problema que esse Pattern
documenta.
Métodos:
Herda todos os métodos da classe Objeto.
58
Atributos:
Herda todos os atributos da classe Objeto, com relação entre cd_persona e
cd_Objeto.
cd_persona: Código da Persona.
url_foto: link para o local onde se encontra a foto dessa Persona.
Métodos:
Herda todos os métodos da classe Objeto.
Construtores, Getters e Setters.
Dependências:
59
Relação de composição com a classe Objeto.
Relação de composição com a classe Atributo.
5.4.1 Login
Na Figura 20 representa o processo encontrado no cenário para efetuar o login no
sistema.
O usuário acessa a interface de login – responsável pela obtenção dos dados
necessários – e transmite para a servlet LoginServlet.
A servlet LoginServlet instancia a classe LoginDAO para validar o login cadastrado no
banco de dados. Se a verificação deste estiver correta, o login será executado, caso
contrário a classe GravarLog irá gerar um log com o erro ocorrido.
Após a conexão com o banco, esta é fechada.
60
O usuário acessa a interface de cadastro que, por sua vez, transmite os dados para a
servlet CadUsuarioServlet.
Em seguida, o banco de dados é acessado para verificar se o usuário cadastrado existe.
Caso o usuário já exista, o sistema lança uma notificação. Em caso negativo, ou seja, o
usuário ainda não existe no banco de dados, este é acessado e o novo usuário é
inserido pelo método Insere(Usuario usuario)
Em caso de algum erro durante o processo, um log é gerado.
61
Figura 22. Diagrama de Seqüência: Cadastro de Estrutura
Fonte: os autores.
62
Figura 23. Diagrama de Seqüência: Cadastro de Atributos
Fonte: Os autores
63
Figura 24. Diagrama de Seqüência: Cadastro de Tipos
Fonte: Os autores
64
Figura 25. Diagrama de Seqüência: Cadastro de documento Pattern
Fonte: os autores.
65
5.4.8 Cadastro de documento: Persona
66
Figura 28. Diagrama de Seqüência: Cadastro de documento APPP Personalizado
Fonte: Os autores
5.4.10 Relacionamento
Na Figura 29 é apresentado o processo de relacionamento os documentos.
Através da interface, o usuário relaciona os documentos manualmente.
A servlet CadRelacAPPPServlet é responsável por instanciar a DAO
RelacObjetoDAO que então efetua o relacionamento entre os documentos.
Em seguida, a conexão é fechada.
67
5.4.11 Busca
Na Figura 30 é apresentado o cenário de busca de um documento.
O usuário entrará com os dados com os quais o sistema efetuará a busca por
similaridade.
Em seguida, a servlet BuscaSimilaridadeServlet instancia a DAO GenericDAO que,
através do método buscaSimilaridade, passa os parâmetros necessários para o cálculo
da similaridade e retorno da função.
A conexão é fechada.
5.4.12 Avaliação
Na Figura 31 é apresentado o processo do cenário encontrado para a realização da
avaliação de uma documentação APPP.
Primeiramente, através da Servlet CadQuestPreenchServlet o questionário é buscado
bem como todas as suas perguntas e respectivas respostas.
Após o preenchimento do questionário, este é inserido no banco através da DAO
QuestPreenchDAO, armazenando as respostas do questionário que será utilizada para
o cálculo da média final do documento.
68
Figura 31. Diagrama de Seqüência: Avaliação
Fonte: Os autores.
69
Figura 32. Diagrama de Seqüência: Ações de Bloqueio
Fonte: os autores.
70
5.5 Banco de Dados
71
Figura 33. Modelo Entidade Relacionamento
Fonte: Os autores
72
5.6 Tecnologias Utilizadas
5.6.1 Oracle
O grupo optou por utilizar o SGBD da Oracle pois membros do grupo já estavam
familiarizados com a ferramenta, e o Oracle atendia a todas as necessidades do projeto. A
escolha de qualquer outra tecnologia que não Oracle iria impor aos autores deste projeto de
formatura a necessidade de se adequarem a uma nova curva de aprendizado. Tendo em vista o
curto prazo de entrega proposto do projeto, essa escolha poderia inviabilizar sua conclusão.
73
6 AVALIAÇÃO DO SISTEMA
74
Minimizar a carga de Memória do Usuário: O sistema deve trazer as
informações importantes para a tomada de decisão dos usuários, evitando
navegação desnecessária entre as telas.
Grau Descrição
0 O evento documentado não corresponde a um problema de usabilidade.
1 Trata-se de um problema cosmético. Será corrigido caso sobre algum tempo no projeto.
3 Problema de Usabilidade médio: A correção deve ser considerada como prioridade alta.
Fonte: Os autores
75
reformulação de design de interfaces focando os resultados baseados em perfis reais de
usuários, representados pelas Personas.
Para este teste os seguintes procedimentos foram adotados:
Definição dos perfis reais dos usuários: Com base nos perfis de usuários que
provavelmente utilizarão o sistema proposto por este projeto de formatura, foi
definido um conjunto de três Personas, sendo estas, Felipe (Professor), Andréia
(Gerente de Projetos) e Matheus (Analista de Sistemas). Os atributos de cada
Persona encontram-se descritos no item 3.3.1.
Criação das Personas: As Personas foram criadas utilizando-se da estrutura
conforme item 3.3.2
76
Os usuários foram instruídos a executarem uma lista pré-determinada de tarefas
conforme Tabela 8, recebendo algumas instruções:
As tarefas deveriam ser executadas na ordem em que se encontra;
O usuário deveria ler cada tarefa em voz alta, antes de executá-la;
Uma vez iniciada, o usuário poderia desistir da tarefa a qualquer momento;
Foi instruído que o que estaria sendo avaliado são a interface propriamente dita
e sua usabilidade e não o usuário ou seus conhecimentos.
77
6.2 Resultados
Tabela 9. Questionário
Pergunta
1 Como você avalia a navegação na interface?
2 Qual o seu nível de satisfação quanto ao uso da página?
3 Como você define a interface?
4 Qual sua opinião em relação às tarefas executadas?
5 Você utilizaria o SiGePAPP futuramente?
6 Qual sua opinião a respeito do Cadastro de APPP?
7 Qual a sua opinião a respeito da Criação de Estruturas?
8 Qual a sua opinião a respeito da Busca de APPP?
9 Como você define a Usabilidade do sistema?
10 Dê uma nota geral para a interface do SiGePAPP.
Fonte: Os autores
As notas dadas pelos usuários fora compiladas e uma média final calculada. A Figura
34 demonstra o resultado final da avaliação.
78
Figura 34. Média de Notas da Avaliação no Teste de Usuário.
Fonte os Autores.
6.2.1.2 Felipe
Felipe obteve êxito em 67% das tarefas que lhe foram designadas, realizando-as em
aproximadamente 17 minutos. Ele é um usuário muito paciente, característica essa que ficou
evidente no teste. O Felipe destacou-se pelo fato de ter despendido um tempo significativo
navegando nas páginas, lendo e familiarizando-se com as instruções da tela, rótulos e campos
em geral antes de iniciar a primeira tarefa. Apresentou dificuldades com relação ao tamanho
da fonte utilizada nas páginas, o que é característico de seu perfil.
O Felipe não teve sucesso na realização das tarefas 6 e 7. Ambas as tarefas tinham
como objetivo comum cadastrar um novo documento do tipo Pattern e Persona. Foi
observado que o usuário ficou confuso quanto ao o que exatamente deveria ser feito. Sua
confusão ficou evidente quando tentou cadastrar uma estrutura, quando na verdade, deveria
cadastrar um documento a partir da estrutura previamente cadastrada em um das tarefas
anteriores. Ao avaliar o sistema no final do teste, Felipe – mais uma vez – evidenciou sua
necessidade por informações claras e detalhadas, reportando, portanto, a deficiência do
sistema neste quesito. Ademais, o Felipe apreciou muito a facilidade de navegação, a
organização da interface, combinação das cores e efeitos envolvidos.
79
6.2.1.3 Andrea
Andrea obteve sucesso em 68% das tarefas designadas. Por ter um perfil
extremamente detalhista e observador, a Andrea destacou-se por ter sido o usuário que levou
mais tempo para executar as tarefas, finalizando-as em aproximadamente 28 minutos.
Observou-se que devido ao seu perfil de liderança, atitude e conhecimento técnico,
Andrea passou grande parte do teste sugerindo melhorias em voz alta e, ao tempo que
navegava nas telas do sistema, percebia-se que despendia mais tempo do que o necessário,
pois estava paralelamente pensando na parte lógica do sistema, ao invés de concentrar-se
unicamente na realização das tarefas propostas.
A Andrea apresentou dificuldade com as tarefas 6 e 7. Para ela, não ficou claro a
diferença entre o cadastro de uma estrutura APPP e o cadastro do documento propriamente
dito. Após uma breve explicação do avaliador, o usuário conseguiu realizar a tarefa sem
dificuldades. Andrea elogiou a navegação e simplicidade das telas, para ela, o SiGePAPP é
uma ferramenta extremamente útil por parte dos desenvolvedores de sistema, atestando
firmemente que utilizaria a ferramenta em seu dia-a-dia.
6.2.1.4 Matheus
Matheus é o usuário mais representativo entre todos os que participaram dos testes.
Seu perfil de programador coincide com o daqueles que mais utilizarão o sistema. O Matheus
teve sucesso em mais de 70% das tarefas designadas, levando em média 20 minutos para sua
realização.
O Matheus demonstrou o tempo todo como sendo um usuário bastante intuitivo, ao
contrário do que aconteceu com o usuário Felipe ou a Andrea, o Matheus navegou pelas telas
do sistema praticamente pela tentativa e erro, não se importando muito com as instruções
contidas no caminho. Mesmo quando encontrava alguma dúvida buscava a resposta por meio
de sua própria intuição. Outra característica bastante marcante do Matheus é o fato dele
utilizar freqüentemente atalhos, procurava constantemente meios de pular passos e/ou
abreviar o processo convencional. Reportou problemas relacionados à agilidade das telas
como o foco do cursor, a posição default após preenchimento de um determinado formulário
de modo que ao pressionar o ENTER o processo seguisse o fluxo padrão.
Devido à sua experiência e agilidade com a utilização de sistemas em geral, o Matheus
não teve muitas dificuldades com as tarefas como um todo, apresentou ligeira confusão na
tarefa 8 onde deveria buscar o Pattern cadastrado em tarefas anteriores.
80
6.2.2 Conclusão dos testes com Usuários
As Personas utilizadas nos testes evidenciaram a real necessidade que tanto o
SiGePAPP quanto qualquer outro sistema possui de levar em consideração as necessidades de
cada perfil de usuário, conforme corroborado durante o desenvolvimento deste trabalho de
conclusão de curso.
Percebeu-se que tarefas que eram simples e até mesmo corriqueiras para um
determinado perfil, foi indubitavelmente um desafio para um outro tipo de usuário. Ficou
evidente que o desejo de instruir o usuário quanto aos passos a serem tomados deve ir além do
que simplesmente colocar textos explicativos na interface, ação amplamente praticada no
início do desenvolvimento. As Personas tiveram dificuldades em realizar tarefas que eram
literalmente óbvias para os autores, o que, mais uma vez, reforçou a necessidade e
importância dos testes literais com o usuário propriamente dito. Por outro lado, algumas
características foram amplamente elogiadas, o que repercutiu numa aplicação ainda mais
vasta pelo sistema como um todo dessas boas práticas.
Como resultado, algumas alterações foram feitas no sistema, conforme item 6.2.3, e
outras foram incluídas como trabalhos futuros. Os testes com as Personas efetivamente
contribuíram para o sucesso do SiGePAPP.
1. O menu de opções localizado à esquerda da tela inicial foi modificado, de modo que
o cadastro de estrutura e de documento (conteúdo) ficou claramente definido e
separado.
2. Foi inserida uma opção em que o usuário ajusta o tamanho da fonte utilizada nos
campos, labels e telas, proporcionando mais conforto na utilização do sistema
4. O processo de busca por documentações foi aberto de forma que o usuário pode
81
pesquisar diretamente pelo nome de um documento já conhecido, visualizar todas as
documentações a partir de uma estrutura pré-selecionada ou utilizar da busca por
similaridade através da parte de um texto ou palavra digitada.
6.2.4 Heurísticas
Após os ajustes dos erros de usuários, o SiGePAPP passou por uma bateria de testes
baseados nas regras heurísticas definidas no item 6.1.1. Os 6 (seis) itens encontrados estão
entre a Figura 35 e Figura 37 como sendo os mais significativos, estão listados e qualificam-
se como ajustes de trabalho futuro.
Problema 1 Problema 2
Método Utilizado Método Utilizado
AH TUBAP AH TUBAP
Interface Interface
Alteração de Senha Ajuda ao usuário
82
Método Utilizado Método Utilizado
AH TUBAP AH TUBAP
Interface Interface
Menu lateral do sistema SiGePAPP Cadastro de Estrutura ou Conteúdo
Problema 5 Problema 6
Método Utilizado Método Utilizado
AH TUBAP AH TUBAP
Interface Interface
Cadastro de perguntas e cadastro de respostas de um Cadastro de Conteúdo
questionário.
Atividade na Interface Atividade na Interface
Cadastar uma nova pergunta ou uma nova resposta. Tentar cadastrar um novo conteúdo deixando um atributo da
estrutura em branco e clicar no botão "Cadastrar"
Detalhamento do Problema Detalhamento do Problema
O SiGePAPP não fornece nenhum tipo de retorno ao usuário da O sistema SiGePAPP retorna uma mensagem de erro para o
ação que está executando. usuário, dizendo que existe campos em branco e que todos devem
ser preenchidos, porém não cita qual o campo que está em
branco, isso facilicitaria o usuário na identificação do campo.
Recomendações Recomendações
Disponibilizar o retorno da ação que o sistema está executando, Criar uma verificação e na mensagem de erro citar qual o campo
para o usuário não tomar decisões precipitadas. que está em branco.
84
7 RESULTADOS OBTIDOS
85
8 CONCLUSÃO
86
9 TRABALHOS FUTUROS
87
REFERÊNCIAS
88
GAMMA, E., et al. 1995. Design Patterns: Elements of Reusable Object-Oriented
Software. s.l. : Addison-Wesley Professional, 1995. ISBN-13: 978-0201633610.
GERBER, L. D. 1999. Uma linguagem de padrões para o desenvolvimento de
sistemas de apoio à decisão baseado em frameworks. Tese de Mestrado apresentada na PUC
- RS. 1999.
GILBRETH, F. B. 1911. Motion study: a method for increasing the efficiency of the
workman. Imprenta New York : D. Van Nostrand Company. 1911.
GRESSE, C. W. 2003. Raciocínio Baseado em Casos. s.l. : Editora Manole Ltda.,
2003. ISBN 85-204-1459-1.
HANMER, R. 2003. Introduction to Pattern Languages. SugarLoafPLoP 2003, The
Third Latin American Conference on Pattern Languages of Programming, Porto de Galinhas,
PE. 2003.
KOTZÉ, P., et al. 2006. Patterns, anti-patterns and guidelines – effective aids to
teaching HCI principles? in E T Hvannberg, J C Read, L Bannon, P Kotzé and W Wong
(eds.), Inventivity: Teaching theory, design and innovation in HCI, University of Limerick.
2006, 115-120.
LIMA, W. T. 2003. Avaliação de usabilidade em sistema colaborativo na área
bancária. 2003.
LONG, J. 2001. Software Resuse Antipatterns. IBM. 2001.
MARINHO, F., et al. 2003. Uma Proposta de um Repositório de Padrões de Software
Integrado ao RUP. III Conferência Latino-Americana em Linguagens de Padrões para
Programação. 2003.
MASIERO, A., et al. 2008. Anti-Patterns Apoiando a Documentação dos Problemas
de Usabilidade. Revista Hífen, SIMS - XIII Simpósio de Informática. 2008, Vol. 32, 62 - ISSN
1983-6511.
MICROSOFT CORPORATION. 2005. Principles of Service Design: Service
Patterns and Anti-Patterns. MSDN. Disponível online em msdn.microsoft.com/en-
us/library/ms954638.aspx, 2005, último acesso em julho/2008.
NIELSEN, J. 1993. Usability Engineering. 1993.
RIESBECK, CHRISTOPHER K. e SCHANK, ROGER C. 1989. Inside case-based
reasoning. Hillsdale, New Jersey : Lawrence Erlbaum Associates, 1989.
SHNEIDERMAN, B. 2000. Universal Usability, Pushing human-computer
interaction. COMMUNICATIONS OF THE ACM. 5, 2000, Vols. 43, pp. 85-91.
89
SILVA, E. R. e SCHIEL, U. 2004. SAMOA Uma Ferramenta Para Detecção de
Padrões de Projetos em Diagramas UML, na WEB. Apresentação de Trabalho/Seminário -
Tese de Mestrado. 2004.
TAYLOR, F. W. 1911. The principles of scientific management. Imprenta New York;
London: Harper & brothers. 1911.
TIDWELL, J. 2006. UI Patterns and Techniques. [Online] 2006. [Citado em: 18 de
Novembro de 2008.] http://www.time-tripper.com/uipatterns/Tree-Table.
WEHMEIER, S. 2000. Oxford Advanced Learner's Dictionary. Oxford : Oxford
University Press, 2000. 6.
90
ANEXO I – TELAS PRINCIPAIS
91
Figura 39. Tela: Cadastro de Usuário
Fonte: Os autores
A Figura 40, por sua vez, demonstra a tela inicial do cadastro de estruturas.
92
Figura 40. Tela: Cadastro de Estrutura
Fonte: Os autores
93
Figura 41. Tela: Cadastro de Conteúdo
Fonte: Os autores
A tela de busca está sendo demonstrada na Figura 42. O usuário possui a flexibilidade
de buscar seu documento de digitando parte do nome, contexto, problema ou solução,
podendo ainda buscar uma Persona da mesma forma. O resultado da busca é listado de forma
ordenada de acordo com seu grau de similaridade, conforme Figura 43.
94
Figura 42. Tela: Busca APPP
Fonte: Os autores