Mineração de Traços
de Execução
AULA 20
DATA MINING
Motivação

Evolução de um software




Como ?


Requisitos funcionais originais
Como ?


Correção de erros
Adaptações de seu funcionamento
Melhoria de suas funcionalidades
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
S1 = i1 i2 i3 i4 ...
S2 = a1 a2 a3 a4 i1 i3 ...
S3 = b1 a2 a3 a4 i1 i3 ..
1a Fase: LeNDI
Modelo
especificando
uma
funcionalidade
Interface Legada
LeNDI: Legacy Navigation Domain Interface
Sequências de identificadores
de telas
P1 = i1 i3
P2 = a1 a2
..
2a Fase: Mineração de padrões
de interação com o usuário
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”


Transformando as especificações de funcionalidades numa
especificação declarativa da interface


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.
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-ToivonenVerkamo) 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áticacada padrão é uma expressão regular
(representando um conjunto de strings).

Exemplo de padrão




A.CG.
Representa o conjunto de strings
AACGA;AACGC;AACGT;AACGG;ACCGA;ACCGC;…
Ocorre duas vezes na sequência AACGCCTACCGT
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 3 4 8 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ão: sequência de identificadores
Um episódio e suporta um padrão p com 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 32 ocorre no episódio 23 34 56 32 com no máximo 1 inserção errada.
p = 23 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.
Exemplo
S1 = 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 (α)
Exemplo
S1 = 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=456
α=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|
Exemplo
S1 = 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=456
1) α = 3
Suporte(p) = 6
|p| = 3
Tamanho médio dos episódios suportando p = 4
Densidade(p) = 3/4 = 0,75
2) α = 1
Tamanho médio dos episódios suportando p = 3,6
Densidade(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.
Exemplo
S1 = 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
IPM (Recovering Software Requirements from System-user Interaction
Traces – SEKE 2002)



Utiliza busca em largura
Permite erros de inserção
IPM2 (From Run-time behavior to Usage Scenarios: An InteractionPattern 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 principais



Pré-processamento

Elimina repetições
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 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
 45666666667


Repetições podem impedir que certos padrões
interessantes sejam detectados


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)
4 5 6 7 não é suportado se o MaxError ≤ 4
Padrão é transformado em 4 5 (8) 6 7
Contador do identificador 6 – armazenado
em separado
Fase de Mineração

Geração do conjunto inicial de padrões candidatos
de tamanho 2




Geração de padrões candidatos mais longos



Padrão candidato = satisfaz minsup e maxerror
Gerados exaustivamente a partir do banco de dados
Listas de localização são produzidas
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.
Download

Slides-Parte 1