Upload
internet
View
108
Download
2
Embed Size (px)
Citation preview
Mineração de Traços de Execução
AULA 20DATA MINING
Motivação Evolução de um software
Correção de erros Adaptações de seu funcionamento Melhoria de suas funcionalidades
Como ? Requisitos funcionais originais
Como ? Documentação
Problemas Inexistente Confusa, ambigua Desatualizada
Problema central Entender as funcionalidades de um
software existente, cuja documentação é inutilizável.
Exemplo Adaptação das funcionalidades de um software
existente para operar em novas plataformas (ex. Web)
Exemplo Projeto CelLEST (University of Alberta – Canada)
Objetivo: Desenvolver um método semi-automático para migrar para a
Web interfaces desenvolvidas originalmente para serem operadas em plataformas tradicionais. Documentação das interfaces originais não são utilizáveis.
Metodologia: as funcionalidades de uma interface podem ser “descobertas” a partir do comportamento em tempo real de seus usuários.
Arquitetura de CelLEST
1a Fase: LeNDI
2a Fase: Mineração de padrões de interação com o usuárioLeNDI: Legacy Navigation Domain Interface
Interface Legada
S1 = i1 i2 i3 i4 ...S2 = a1 a2 a3 a4 i1 i3 ...S3 = b1 a2 a3 a4 i1 i3 ..
Sequências de identificadoresde telas
P1 = i1 i3P2 = a1 a2..
Modelo especificando uma funcionalidade
Traços da Interação com o Usuário Cada sequência = lista de identificadores de telas da
interface. S = i1 i2 ... in Transição entre duas telas =
Resulta de uma sequência de movimentos do cursor Resulta de um conjunto de teclas “apertadas”
Padrão sequencial representa múltiplas execuções de uma mesma tarefa.
Padrão sequencial corresponde a uma funcionalidade da interface.
Tecnologia utilizada após a mineração Transformando padrões de interação com o usuário em um
modelo de especificação de uma funcionalidade da interface Enfoque “Programação por demonstração”
Cypher, A. : Watch What I do: Programming by Demonstration, MIT Press, Cambridge, MA, 1993.
Transformando as especificações de funcionalidades numa especificação declarativa da interface Kapoor, R. Stroulia, E. : Simultaneous Legacy Interface Migration to
Multiple Platforms. Proc. 9th Int. Conf. On Human-Computer Interaction., Vol. 1, 51-55, 2001.
Nova interface = front-end da interface legada, para ser utilizada em um ambiente multi-plataforma.
Mineração de Sequências: para diferentes problemas, diferentes soluções
Mineração de Padrões Sequenciais em banco de dados de sequências de transações: GSP, Spade, PrefixSpan, Clospan.
Mineração de Episódios (Mannila-Toivonen-Verkamo) em uma única sequência longa: Winepi, Minepi, Seq-ready&Go
Mineração de Sequências: para diferentes problemas, diferentes soluções
Mineração de Padrões em Bioinformática- cada padrão é uma expressão regular (representando um conjunto de strings). Exemplo de padrão
A.CG. Representa o conjunto de strings
AAACGCGA;AAACGCGC;AAACGCGT;AAACGCGG;AACCGCGA;AACCGCGC;… Ocorre duas vezes na sequência AAACGCCTAACCGT
Algoritmo de Mineração: Teiresias
Mineração de Sequências: para diferentes problemas, diferentes soluções
Mineração de Traços de Interação em banco de dados de sequências de identificadores de telas Exemplo de padrão 1 4 5 ocorre na sequência 3 5 1 33 4 8 98 9 5 6
com erro inferior a 3
Mineração de Traços de Interação com o usuário: Conceitos principais A = alfabeto de identificadores de telas da interface do
sistema legado. Sequência
s = sequência de elementos de A = {a1, ..., an}. Representa um traço de interação entre a interface do sistema legado
e um de seus usuários. Episódio
e = subsequência (contigua) de uma sequência do banco de dados de traços = pedaço de uma sequência
Exemplo : 1 4 5 6 3 3 4 5 6 8 1 9 11 23 34 56 32 32 23 35 56 49 32 4 5 3 6
Mineração de Traços de Interação com o usuário: Conceitos principais PadrãoPadrão: sequência de identificadores Um episódio e suporta um padrão psuporta um padrão p com erro máximo erro máximo αα
se p ocorre em e com no máximo α inserções erradas p[1] = e[1] e p[n] = e[m], onde n= tamanho de p, m = tamanho de e Os elementos de p aparecem em e na mesma ordem em que aparecem em p.
Exemplo
1 4 5 6 3 3 4 5 6 8 1 9 11 23 34 56 32 32 23 35 56 49 32 4 5 3 6
p = 23 56 3223 56 32 ocorre no episódio 23 34 56 32 com no máximo 1 inserção errada.
p = 23 56 3223 56 32 ocorre no episódio 23 35 56 49 32 com no máximo 2 inserções erradas.
Mineração de Traços de Interação com o usuário: Conceitos principais Suporte de um padrão p com relação a um limite α de erros
= número de episódios em um conjunto de sequências que suportam p com um número máximo α de erros de inserção.
ExemploExemploS1 = 1 4 5 6 3 3 4 5 6 8 1 9 11 23 34 56 32 32 23 35 56 49 32 4 5 3 6
S2 = 2 3 5 6 2 3 3 4 5 8 6 1 9 11 4 34 5 7 8 6 35 56 49 32 4 5 3 6
Suporte (4 5 6) = 5 para α = 1 Suporte (4 5 6) = 6 para α = 3
Mineração de Traços de Interação com o usuário: Conceitos principais
Lista de localizações de um padrão p num conjunto de sequências – com relação a um limite α de inserções erradas. Lista de triplas (seqnum, startLoc, endloc)
Seqnum = identificador da sequência onde p aparece startLoc = início do episódio suportando p (α) endLoc = fim do episódio suportando p (α)
ExemploS1 = 1 4 5 6 3 3 4 5 6 8 1 9 11 23 34 56 32 32 23 35 56 49 32 4 5 3 6
S2 = 2 3 5 6 2 3 3 4 5 8 6 1 9 11 4 34 5 7 8 6 35 56 49 32 4 5 3 6
P = 4 5 6
α = 3
Loclist(p) =
(s1, 2, 4), (s1, 7, 10), (s1, 24, 27), (s2, 8, 11), (s2, 15, 20), (s2, 25, 27)
Mineração de Traços de Interação com o usuário: Conceitos principais
Densidade de um padrão p suportado por um conjunto de episódios E = razão entre o tamanho de p e o tamanho médio dos episódios de E.
Densidade(p) = |p| * suporte(p)
Σ |e|e ɛ E
ExemploS1 = 1 4 5 6 3 3 4 5 6 8 1 9 11 23 34 56 32 32 23 35 56 49 32 4 5 3 6
S2 = 2 3 5 6 2 3 3 4 5 8 6 1 9 11 4 34 5 7 8 6 35 56 49 32 4 5 3 6 P = 4 5 6 1) α = 3
Suporte(p) = 6|p| = 3Tamanho médio dos episódios suportando p = 4Densidade(p) = 3/4 = 0,75
2) α = 1 Tamanho médio dos episódios suportando p = 3,6Densidade(p) = 3/3,6 = 0,83
Mineração de Traços de Interação com o usuário: Conceitos principais Padrão Maximal
P é maximal se todo padrão que o contiver tem suporte estritamente menor do que P.
ExemploS1 = 1 4 5 6 3 3 4 5 6 8 1 9 11 23 34 56 32 32 23 35 56 49 32 4 5 3 6
S2 = 2 3 5 6 2 3 3 4 5 8 6 1 9 11 4 34 5 7 8 6 35 56 49 32 4 5 3 6 α = 2
P = 5 6 é maximal Repare que 4 5 6 contém P, mas seu suporte é menor. P’ = 35 56 não é maximal Suporte(35 56) = 2, mas Suporte(35 56 49) = 2
Mineração de Traços de Interação com o usuário: Conceitos principais
Critérios de qualificação de um padrão p(comp-minimo, MinSup, MaxError, MinScore) comp-minimo = comprimento minimo MinSup = suporte mínimo MaxError = número máximo de erros de inserção MinScore = score mínimo
score(p) = log |p| * log sup(p) * densidade(p)
Problema de Mineração de Traços de Interação Dados
Conjunto de traços de interação Um critério de qualificação
C= (comp-min, minsup, maxerror, minscore)
Determinar todos os padrões maximais p satisfazendo o critério de qualificação C |p| ≥ comp-min Sup(p) ≥ minsup com relação a maxerror Score(p) ≥ minscore
Algoritmos IPM (Interaction Pattern Mining) Primeiro algoritmo desenvolvido (Mining System-User Interaction
Traces for Use Case Models – IWPC 2002) Padrões não permitem erros de inserção Técnica Apriori
IPMIPM (Recovering Software Requirements from System-user Interaction Traces – SEKE 2002) Utiliza busca em largura Permite erros de inserção
IPM2IPM2 (From Run-time behavior to Usage Scenarios: An Interaction-Pattern Mining Approach – ACM SIGKDD 2002) Utiliza busca em profundidade Evita multiplas varridas no banco de dados, guardando as listas de
localizações (técnica parecida com a do TreeMiner)
Algoritmo IPM2 – Fases principaisAlgoritmo IPM2 – Fases principais Pré-processamentoPré-processamento
Elimina repetições Descoberta de padrões (Mineração)Descoberta de padrões (Mineração)
Minera os padrões sobre o banco de dados pré-processado que verificam o critério de qualificação especificado pelo usuário
Análise dos padrões mineradosAnálise dos padrões minerados Ajuste no critério de qualificação para identificar padrões de
interação que realmente correspondem a requisitos funcionais do sistema legado.
Quanto mais longos os traços de execução e quanto mais estrito o critério c mais provável que os padrões minerados correspondam a requisitos funcionais do sistema legado real.
Um usuário com conhecimento do dominio da aplicação deve decidir quais dos padrões minerados correspondem a funcionalidades do sistema legado.
Fase de Pré-processamento Um traço de interação normalmente contém repetições
4 5 6 6 6 6 6 6 6 6 7 Usuário acessou diversas vezes consecutivamente a tela 6 (por
exemplo, no software de uma biblioteca, acessou diversas vezes a mesma instância da tela de consulta do catálogo)
Repetições podem impedir que certos padrões interessantes sejam detectados 4 5 6 7 não é suportado se o MaxError ≤ 4
Padrão é transformado em 4 5 (8) 6 7
Contador do identificador 6 – armazenadoem separado
Fase de Mineração Geração do conjunto inicial de padrões candidatos
de tamanho 2 Padrão candidato = satisfaz minsup e maxerror Gerados exaustivamente a partir do banco de dados Listas de localização são produzidas
Geração de padrões candidatos mais longos Junta-se padrões de tamanho k com padrões de tamanho 2 Geração é feita em profundidade no espaço dos padrões.
Construção de lista de localização associada a um padrão candidato
Referências M. El-Ramly, E. Stroulia, P. Sorenson:
From Run-time behavior to Usage Scenarios: An Interaction-Pattern Mining Approach
ACM SIGKDD 2002. Cypher, A. :
Watch What I do: Programming by Demonstration, MIT Press, Cambridge, MA, 1993.
Kapoor, R. Stroulia, E. : Simultaneous Legacy Interface Migration to Multiple Platforms. Proc. 9th Int. Conf. On Human-Computer Interaction., Vol. 1, 51-55, 2001.