Академический Документы
Профессиональный Документы
Культура Документы
par :
David SENNHAUSER
Ce travail de Bachelor est ralis dans le cadre de lexamen final de la Haute cole de
gestion de Genve, en vue de lobtention du titre de Bachelor of Science. Ltudiant
accepte, le cas chant, la clause de confidentialit. L'utilisation des conclusions et
recommandations formules dans le travail de Bachelor, sans prjuger de leur valeur,
n'engage ni la responsabilit de l'auteur, ni celle du conseiller au travail de Bachelor,
du jur et de la HEG.
Jatteste avoir ralis seul le prsent travail, sans avoir utilis des sources autres que
celles cites dans la bibliographie.
David Sennhauser
Je remercie toutes les personnes qui ont particip de prs ou de loin la ralisation de
ce projet, tout particulirement Monsieur Philippe Dugerdil qui ma suivi et conseill
tout au long de ce travail.
Je remercie aussi Monsieur Peter Daehne qui, grce ses prcieux conseils, a pu
maider avancer dans ce projet.
Pour terminer, un grand merci Odorico von Susani, de Pictet & Cie, qui a accept
dtre mon jur.
Dans le cycle de vie des systmes dinformation, la maintenance est ce qui cote le
plus cher. Larchitecture volue avec les besoins des utilisateurs, les besoins changent
et de nombreuses modifications sont effectues. Avec le temps larchitecture peut se
rvler de plus en plus inadapte parce quelle est de plus en plus complexe pour le
dveloppeur.
Pour raliser ceci, on enregistre lexcution dun use-case mtier. On obtient une trace
dexcution qui contient tous les lments du code source qui sont intervenus dans
lexcution du systme.
1
DUGERDIL Ph. - Architecture-Based Software Reengineering. Technical report, HEG
Geneva, February 2006
2
La portabilit, la maintenabilit, la performance, etc.
3
Des classes java ou des lments de mme granularit dans dautres langages.
Dclaration.......................................................................................................... i
Remerciements ................................................................................................. ii
Sommaire .......................................................................................................... iii
Table des matires ............................................................................................ v
Liste des Figures............................................................................................. vii
Introduction ....................................................................................................... 1
Le problme rsoudre ................................................................................... 2
1.1 Rengineering ............................................................................................ 2
1.2 Indentification des classes corrles ...................................................... 3
2. La problmatique de lanalyse dynamique ............................................... 4
2.1 Lanalyse dynamique ................................................................................. 4
2.1.1 Quest-ce quune analyse dynamique ou statique dune application 4
2.2 Les traces dexcution .............................................................................. 5
2.2.1 Quest-ce quune trace dexcution ................................................... 5
2.2.2 Comment rcuprer une trace dexcution ....................................... 6
3. Lanalyse technique en finances ............................................................... 7
3.1 Quest-ce que lanalyse technique ? ........................................................ 7
3.2 Les principes de lanalyse technique ....................................................... 8
3.3 Les outils .................................................................................................... 9
3.3.1 Les moyennes mobiles ..................................................................... 9
3.3.2 Les figures chartistes ...................................................................... 11
3.3.3 Support, rsistance et canal .......................................................... 12
3.3.3.1 Quest quune tendance ? .................................................................. 12
3.3.3.2 Lignes de tendance ............................................................................ 12
3.3.3.3 Supports et rsistances horizontales ................................................. 14
4. Application des ides de lanalyse technique lanalyse dynamique de
programme ...................................................................................................... 15
4.1 Technique de segmentation .................................................................... 15
4.1.1 Description de la trace .................................................................... 15
4.1.2 Segmentation de la trace ................................................................ 16
4.1.3 Omniprsence temporelle ............................................................... 17
4.1.4 Corrlation binaire ........................................................................... 18
4.1.5 Matrice de corrlation...................................................................... 19
4.1.6 Comptage des frquences .............................................................. 19
4.1.7 Exemples de segmentation ............................................................. 20
4.2 Ides possibles dapplication de lanalyse technique .......................... 25
4.2.1 La notion dempreinte ..................................................................... 25
4.2.2 Points de dpassements de support ou rsistance ........................ 26
4.2.3 Analyse des tendances ................................................................... 27
4.2.4 Empreinte sur les patterns de courbe ............................................. 29
Hormis le fait que ce travail est bas sur lanalyse dynamique des traces dexcution,
le but est comprendre quels sont les lments du code source qui travaillent ensemble
et implmentent un ou plusieurs use cases du systme analyser. Il suffira de
laisser lapplication se dfinir elle-mme travers une excution que nous
enregistrerons puis analyserons. Nous pouvons faire une analyse cible en excutant
le(s) use case(s) qui contiennent les fonctions dont on veut retrouver
limplmentation.
1.1 Rengineering
Actuellement, beaucoup dentreprises ont des processus mtier critiques et
compltement automatiss les rendent compltement dpendantes de leur systme
dinformation.
Figure 1
[Tir de : Bergey J., Smith D., Weiderman N., Woods S. Options Analysis for Reengineering
(OAR) : Issues and Conceptual Approach. Sofware Engineering Institute, Carnegie
Cela signifie quil faut retrouver pour une ou plusieurs fonctions logicielles du systme,
5
quels sont les composants fonctionnels qui les implmentent. Sans ces informations, il
serait impossible de faire le lien entre les fonctions logicielles dcrites dans la
documentation du systme et leur implmentation concrte.
Pour ce faire, on enregistre lexcution dune fonction mtier. On obtient une trace
dexcution. Puis on analyse les informations de cette trace pour trouver les classes
6
qui sont corrles durant toute lexcution, car ces classes sont limplmentation la
fonction excute.
Dans mon cas, les lments que je cherche associer sont des classes java. Cela na
pas dimportance, car selon la plupart des langages le principe reste le mme.
Le problme rsoudre est de proposer une technique bas sur lanalyse technique
qui permet didentifier les classes qui sont corrles dans une trace dexcution.
4
DUGERDIL Ph. - Architecture-Based Software Reengineering. Technical report, HEG
Geneva, February 2006
5
Un ensemble de classes java
6
Ce sont les classes qui travaillent ensemble.
Pour bien comprendre ce sur quoi on va travailler, il faut bien comprendre ce quest
une trace dexcution, cest pourquoi jexpliquerai galement ce que cest.
Au chapitre 1.2, jexpliquerai que lon va identifier les classes corrles laide de la
trace dexcution. Cest de lanalyse dynamique.
Toutefois, il faut savoir que lors de lanalyse dynamique, dautres informations que la
trace dexcution auraient pu tre extraites, telles que :
Dans loptique o lon tudie les interactions entre les lments du code source qui
composent lapplication, lanalyse dynamique est intressante, car on sait exactement
quels sont les lments qui ont t utiliss lors de lexcution.
Imaginons que lutilisateur lance deux fois un mme programme en utilisant des
fonctionnalits compltement diffrentes chaque excution. Les deux traces
rsultantes seront probablement similaires au niveau de linitialisation du programme,
mais seront compltement diffrentes par la suite.
Cest est une structure assez complexe, mais surtout trs longues. Elle peut tre
8
reprsente sous forme dun arbre darit X, o X reprsente le nud ayant le plus
grand nombre de fils. Voici un petit exemple de ce quoi peut ressembler une trace :
Figure 2
f1()
|---> f2()
| |---> f5()
| |---> f6()
|
|---> f3()
| |---> f7()
| |---> f8()
| | |---> f9()
| | | |---> f10()
|
|---> fx()
7
Transformation du code source en diagramme de classe.
8
Nombre de fils que possde un arbre.
On instrumente le code source du programme cible laide dun logiciel quon appelle
simplement linstrumenteur. Linstrumenteur va ajouter des lignes de code
supplmentaires au dbut et la fin de chaque fonction, mthode ou procdure du
programme cible.
Ces lignes supplmentaires vont tre excutes en mme temps que le programme
instrument de faon crire dans un fichier des informations sur lexcution du
programme, en particulier les noms des fonctions appeles et les classes auxquelles
elles appartiennent.
9
Hamou-Lhadj A., Lethbridge T.C. - A Survey of Trace Exploration Tools and
Techniques. Proc of the Conference of the Centre for Advanced Studies on
Collaborative Research CASCON 2004, October 5-7, 2004,Markham, Canada.
Ce chapitre prsente les ides dont je me suis inspir pour raliser ce travail.
Lanalyse technique est ltude de lvolution dun march, principalement sur la base
de graphiques, dans le but de prvoir les futures tendances .
10
Ce chapitre a t rdig laide des ouvrages suivants :
BECHU, Thierry, BERTRAND, Eric, NEBENZAHL, Julien. Lanalyse technique :
thories et mthodes. Paris : Economica, 2008. (Finance).
BARON, Franois. Le chartisme : mthodes et stratgies pour gagner en bourse.
[Paris] : Eyrolles, 2008. 490 p. (Analyse technique).
11
Ensemble de techniques, astuces de lanalyse technique
12
Marchs dactions, taux dintrt, matires premires, etc.
1. Tout est pris en compte par le march : Pour lanalyste technique, tout ce qui
peut influencer la valeur dun bien est tout moment reflt par le prix de ce
bien sur le march. Ds lors, il suffit de sintresser lvolution du prix,
13
puisque celui-ci est la rsultante de tout le reste.
2. Les cours voluent selon des tendances : Lanalyste technique ne croit pas
beaucoup (pour ne pas dire pas du tout) une volution erratique des
cours. Au contraire, il constate que :
14
- ces tendances durent toujours un certain temps avant dtre modifies.
13
BECHU, Thierry, BERTRAND, Eric, NEBENZAHL, Julien. Lanalyse technique :
thories et mthodes. Paris : Economica, 2008. (Finance).
14
BARON, Franois. Le chartisme : mthodes et stratgies pour gagner en bourse.
[Paris] : Eyrolles, 2008. 490 p. (Analyse technique).
Les analystes techniques utilisent ces fonctions pour liminer le bruit se manifestant
sous forme de petites oscillations sur la courbe. Ainsi on filtre les valeurs de la courbe
pour quelle reflte une tendance plus nette. Ca reviendrait retirer les informations
parasites de la courbe, pour quelle puisse exprimer les tendances du march.
La moyenne mobile est le filtre le plus utilis pas les analystes pour sa simplicit. Il y a
15
trois principales sortes de moyennes mobiles : la moyenne mobile simple , la
moyenne mobile pondre et la moyenne mobile exponentielle. Dans la dure limite
de ce travail, je me suis concentr sur la technique de moyenne mobile.
La moyenne mobile simple comme son nom lindique est la plus simple. Je vais utiliser
la srie suivante pour illustrer son fonctionnement.
Figure 3
Moyennemobilesimple
16
14
12
10
Dates
8
6
4
2
0
t1 t2 T3 t4 t5 t6 t7
Valeurs 4 6 8 13 15 8 7
Moyennemobile
6 9 12 12 10
ordre(3)
15
En bourse, la moyenne mobile est un indicateur qui montre la valeur dun prix sur une
certaine priode. En dautres termes, la moyenne mobile est une analyse mathmatique
de la valeur moyenne dun prix sur une dure prdtermine [] La moyenne mobile
simple est la plus utilise et la plus populaire des moyennes mobiles. La premire
raison est la relative facilit laquelle les moyennes mobiles simples sont calcules.
Une moyenne mobile simple est calcule en additionnant les valeurs dun certain
nombre de priodes et ensuite divises par la somme du total des nombres de la
valeur. [tir de : www.realtimeforex.fr]
La moyenne mobile pondre, utilise des coficients pour donner un poids plus
important aux valeurs les plus rcentes dans le calcul.
La moyenne mobile exponentielle, utilise pour le calcul une pondration sur les valeurs
qui dcrot exponentiellement. Elle suit encore mieux la courbe dorigine.
Figure 4
[Tir de : http://fr.wikipedia.org/wiki/Moyenne_mobile]
On voit sur la figure 4 que la moyenne mobile exponentielle crot beaucoup plus vite et
quelle attnue beaucoup plus vite limpact des valeurs les plus anciennes.
Figure 5
[Tir de : http://www.trading-school.eu/glossaire-bourse/fiche-Epaule-Tete-Epaule-ETE--47]
16
Ce sont des figures chartistes qui se dessinent lors lvolution de la valeur dune action.
17
Les personnes qui spculent sur le march.
Il sagit dun mouvement sur les cours assez rgulier et soutenu dans un sens
dtermin, sur une certaine priode de temps. Il peut tre soit la hausse, on parlera
de tendance haussire, soit la baisse pour une tendance baissire.
Le cours peut voluer dans un intervalle rduit de prix pendant un certain temps. On
verra alors apparaitre une tendance laspect horizontal de la courbe, quon appelle
drive latrale.
Figure 6
Support haussier
[Tir de :
http://www.bnpparibas.net/banque/portail/particulier/Fiche?type=fiche&identifiant=NOT_Tendan
ces_supports_et_resistances_20060403115328]
Dans le cas dune tendance baissire, on peut appliquer le mme principe en traant
une ligne de tendance avec cette fois-ci les points les plus hauts, cest la ligne de
18
BARON, Franois. Le chartisme : mthodes et stratgies pour gagner en bourse.
[Paris] : Eyrolles, 2008. 490 p. (Analyse technique).
Figure 7
[Tir de :
http://www.bnpparibas.net/banque/portail/particulier/Fiche?type=fiche&identifiant=NOT_Tendan
ces_supports_et_resistances_20060403115328]
On peut encore tracer une ligne parallle la ligne de tendance, pour former un canal
haussier ou baissier. Pour que cette dernire ligne soit valide, il faut aussi quelle
puisse saligner sur des pics de la courbe. On narrive pas toujours dfinir un canal
haussier qui soit parfait.
Figure 8
Canal
[Tir de :
http://www.bnpparibas.net/banque/portail/particulier/Fiche?type=fiche&identifiant=NOT_Tendan
ces_supports_et_resistances_20060403115328]
On peut voir sur la figure 9 un exemple rel de mise en application des supports et
20
rsistances horizontales. Et quelles sont plutt bien respectes par lvolution du
prix de laction.
Figure 9
[Tir de : http://www.daily-bourse.fr/NOTIONS-DE-SUPPORT-ET-DE-RESISTANCE-vtptc-
1578.php]
19
BARON, Franois. Le chartisme : mthodes et stratgies pour gagner en bourse.
[Paris] : Eyrolles, 2008. 490 p. (Analyse technique).
20
Les lignes
Figure 10
Class1.f1() Class1
|---> Class2.f2() Class2
| |---> Class3.f5() Class3
| |---> Class3.f6() Class3
|
|---> Class4.f3() Class4
| |---> Class5.f7() Class5
| |---> Class6.f8() Class6
| | |---> Class3.f9() Class3
| | | |---> Class2.f10() Class2
Figure 11
Reprsentation de la trace
Trace
Squence 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
Classes C0 C2 C4 C2 C0 C0 C2 C2 C6 C2 C2 C2 C2 C0 C3 C2 C0 C5 C1 C7 C7 C0
Sur la figure 11, je donne lexemple dune trace qui contient 22 appels et qui contient 7
classes (C0, C1, C2, C3, C4, C5, C6 et C7).
Figure 12
Segmentation de la trace
Trace
Squence 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
Classes C0 C2 C4 C2 C0 C0 C2 C2 C6 C2 C2 C2 C2 C0 C3 C2 C0 C5 C1 C7 C7 C0
Segments 1 2 3 4 5 6 7
Ns = f x n
n est alors considr comme nombre dlments (classes) distincts dans la trace et f
une valeur qui sera multipli par n, pour obtenir le nombre de segment (Ns). n est donc
dj dfini en fonction de la trace.
21
La position du segment dans la trace.
22
Les classes
Donc Ns = 2 x n, o f = 2
Ces deux techniques ne sont pas utilises dans ce travail, cependant ce sont des
techniques de segmentation intressantes. Je propose dautres techniques bases sur
la segmentation qui sont au cur de ce travail.
Un seuil doit tre dfini, au-del duquel un lment sera considr comme
temporellement omniprsent. Une fois les lments temporellement omniprsents
reprs, on peut les exclure des lments analyser, pour rduire la quantit
dinformation de la trace.
23
Le bruit reprsente les classes qui nont pas dintrt.
24
IBM CAS SOFTWARE AND SYSTEMS ENGINEERING SYMPOSIUM (2007, Dublin).
Using trace sampling techniques to identify dynamic clusters of classes : proceedings of
the 2007 conference of the center for advanced studies on Collaborative research.
Hamilton auditorium of Dublin, 24 octobre 2007. 9 p.
25
Ou la fonction logiciel
On obtient par exemple ces vecteurs pour les lments Class1 et Class2 (voir figure
13).
Figure 13
Sur la figure 13, on voit que Class 1 est prsent dans les segments 3, 4, 9, 11, 12, 13
et 14.
Une fois tous les vecteurs doccurrence gnrs, raison dun vecteur par lment, on
27
compare tous les vecteurs doccurrence laide dune matrice de corrlation pour
dterminer lindice de corrlation entre les lments. Lindice obtenu nous permet de
savoir si deux lments sont prsents dans les mmes chantillons. Un fort couplage
entre deux lments se situe partir de 80 % de correspondance et un couplage
moyen plutt entre 60 % et 79 %.
Il est toutefois important de noter quil suffit dune seule occurrence dun lment dans
un segment pour que cet lment soit considr comme prsent, et ceci, de manire
quivalente un autre lment qui apparaitrait 500 fois dans le mme segment.
26
Les classes
27
Voir chapitre 4.1.5
Sur la figure 14, on voit un exemple de matrice de corrlation qui dfinies tous les
comparaisons pour 7 lments.
Figure 14
C1 C2 C3 C4 C5 C6 C7
C1 1 1 1 1 1 1
C2 1 1 1 1 1
C3 1 1 1 1
C4 1 1 1
C5 1 1
C6 1
C7
28
On peut dire les frquences dapparitions
Trace
Squence 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
Classes C0 C2 C4 C2 C0 C0 C2 C2 C6 C2 C2 C2 C2 C0 C3 C2 C0 C5 C1 C7 C7 C0
Segments 1 2 3 4 5 6 7
C0 1 2 0 0 1 1 1
C1 0 0 0 0 0 0 1
C2 1 1 2 3 1 1 0
C3 0 0 0 0 1 0 0
C4 1 0 0 0 0 0 0
C5 0 0 0 0 0 1 0
C6 0 0 1 0 0 0 0
C7 0 0 0 0 0 0 2
La diffrence est consquente, car prsent une classe qui apparait une seule fois
dans un segment nest plus du tout quivalent une classe qui apparait 500 fois dans
ce segment. Cette donne importante nous permettra dtre beaucoup plus prcis
dans les tentatives de corrlation. De plus, la prcision de nos futures analyses sera
bien moins affecte par le nombre de segment (Ns), grce la frquence
doccurrence. Elle permet, de rendre compte dans quelle mesure une classe est
prsente dans un segment.
On peut se reprsenter nos donnes comme des sries de valeurs o chaque srie
reprsente les frquences doccurrences dune classe (voir figure 15).
On pourrait essayer dexploiter directement toutes ces frquences et les afficher sur un
graphique o les valeurs en abscisse reprsenteraient les segments dans la trace et
lordonne reprsenterait les frquences doccurrences.
Figure 16
Avec un Ns gal 2n, soit 278 segments - ce qui fait environ 2150 appels par segment
- on distingue correctement la courbe, mais les oscillations sont plus nombreuses tant
donn que lon a un Ns plus grand et donc plus dchantillons (voir figure 17).
29
Appels aux classes dont une fonction t appel. Voir Chapitre 2.2
Avec un Ns gal 5n, soit 695 segments - ce qui fait environ 863 appels par segment -
on ne distingue plus grand-chose. A lil, il serait impossible de comparer les
frquences doccurrences de deux classes de la trace et daffirmer avec certitude
quelles sont similaires (voir figure 18).
Figure 18
Figure 19
Grce la moyenne mobile simple (voir figure 19), on peut facilement adoucir la
courbe et reprer les grandes tendances.
Figure 22
30
Pour raliser cette empreinte, on a besoin de la courbe des frquences dune classe,
puis on gnre deux moyennes mobiles simples modifies. Lune dont les valeurs en
31
ordonn sont augmentes, par exemple de 40% , et lautre dont les valeurs en
ordonn sont rduites de 40 %. En affichant les trois courbes, on obtient par exemple
le graphique ci-dessus (figure 22). La courbe jaune reprsente le support, tandis que la
courbe bleu fonc reprsente la rsistance. Lensemble des segments pour lesquels la
30
On peut aussi utiliser des frquences filtres si les oscillations de la courbe sont trop
fortes.
31
Le pourcentage daugmentation et de rduction est dfini de manire que les deux
moyennes mobiles soient au niveau des valeurs extrmes de la courbe des frquences.
Sinon on risque de prendre une empreinte sur tous les segments de la classe, ce qui ne
sert rien. Cette valeur doit donc tre adapte en fonction du cas.
videmment, la moyenne mobile simple est dun ordre qui devra rester tre le mme
pour raliser toutes les empreintes comparer. Le pourcentage appliqu en
augmentation ou en rduction de la moyenne mobile devra lui aussi tre constant. Et la
comparaison des empreintes consistera tester si les dpassements du support et de la
rsistance ont lieu sur les mmes segments.
Cependant, lempreinte utilise par cette technique est diffrente. Pour gnrer
lempreinte dune classe, on a besoin des frquences doccurrences filtr avec une
moyenne mobile.
Figure 23
32
Selon la matrice de corrlation (Chapitre 4.1.5)
La tendance haussire, qui peut tre identifie par le fait que sur un ensemble de
segments (axe des X) parcouru dans lordre croissant, la frquence est de plus en plus
leve.
La tendance baissire, qui peut tre identifie par le fait que sur un ensemble
segments (axe des X) parcouru dans lordre croissant, la frquence est de plus en plus
faible.
La drive latrale, qui peut tre identifie par le fait que sur un ensemble segments
(axe des X) parcouru dans lordre croissant, la frquence reste constante ou volue
dans un intervalle rduit.
Il est difficile de dterminer les tendances dune courbe, car on peut reprer des
macro-tendances, elles-mmes constitues de micro-tendances. Tout dpend de
lchelle laquelle on effectue lanalyse. Et en appliquant une moyenne mobile, on va
lisser la courbe et faire disparaitre les micro-tendances. La puissance de cet effet
33
dpend compltement du nombre de segments (Ns), et de lordre de la moyenne
mobile. Plus lordre sera grand plus la courbe sera lisse.
Comme on peut le voir sur la figure 23 ci-dessus, une moyenne mobile simple dordre
5 suffit lisser la courbe et faire disparaitre les micro-tendances. Ainsi, il est plus facile
de dtecter les macro-tendances.
34
Lempreinte contient la position de chaque tendance sur courbe. Une fois que toutes
les empreintes ont t construites, on peut finalement lancer le processus de
corrlation pour trouver tous les lments qui ont une empreinte similaire. La
comparaison des empreintes consiste tester si les mmes tendances ont lieu sur la
mme srie de segments contigus.
Deux courbes qui ont la mme empreinte nous assurent les tendances des deux
courbes seront similaires. Par contre, rien ne nous garantit que les deux courbes soient
superposes. En effet, une tendance haussire localise aux mmes endroits sur deux
courbes nimplique pas que ces deux tendances voluent dune mme pente. Une
tendance pouvant tre plus forte que lautre.
33
Nombre de valeurs avec lesquelles la moyenne mobile est calcule.
34
Une srie de segments contigus
35
Le principe est danalyser une courbe pour y trouver des patterns de courbe .
Lempreinte de cette courbe consistera en une succession de patterns. Pour cette
technique comme pour la prcdente, le point sensible est de dfinir lchelle
36
laquelle on va effectuer la recherche. On pourrait trouver des macro-patterns , dans
37
lesquels on pourrait aussi trouver des micro-patterns .
Figure 24
Patterns de courbe
30
Patternsdecourbe
Frquences
25
20
Frquence
15
10
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Numrod'chantillon
35
On les appels aussi les figures chartistes.
36
Ce sont des figures chartistes qui sont visibles grande chelle.
37
Ce sont des figures chartistes qui sont visibles petite chelle.
Figure 25
Pattern ETE
30
L'paulettepaule(ETE)
Frquences
25
20
Frquence
15
10
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Numrod'chantillon
Le deuxime pattern est un double top. Il est mis en vidence sur la figure 26.
Figure 26
Ledoubletop
30
Frquences
25
20
Frquence
15
10
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Numrod'chantillon
38
Pattern paule-tte-paule (ETE)
Figure 27
30
Ledoublebottom
Frquences
25
20
Frquence
15
10
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Numrod'chantillon
Cette technique est intressante, car raliser une empreinte sur la base de pattern de
courbe, nous permet de prendre un peu plus en compte la forme de la courbe.
Sur la figure 28, on voit deux courbes et la zone hachure reprsente la dviation que
lon calcule.
39
Cest le total de la dviation entre deux courbes.
Plus le score de dviation est faible plus la corrlation entre les deux courbes est forte
et inversement. Le score de dviation minimum est zro, car les deux courbes sont
strictement identiques, elles ne dvient pas lune par rapport lautre.
Pour que le score de dviation reflte le plus le comportement des deux courbes
compares, on doit absolument utiliser les frquences relatives de chaque courbe.
Un petit problme subsiste, car si les deux courbes nont pratiquement que des valeurs
nulles, le score de dviation sera injustement faible. Pour corriger ce problme, il suffit
de diviser le score de dviation par le nombre de valeurs diffrent de zro sur
lensemble des deux courbes.
Ainsi, plus il y aura de valeurs non nulles, plus le diviseur du score de dviation sera
grand et plus le rsultat sera petit par rapport aux courbes ayant beaucoup de valeurs
nulles. En rsum, plus les courbes auront de valeurs nulles, plus le score de dviation
sera sensible la plus petite dviation.
On a :
, , 0 0
| |
,
Cette technique ne semble pas trs solide dj au niveau thorique. Plus le Ns est
lev plus la frquence de la courbe oscille, je ne crois pas que cette technique
fonctionnerait.
Selon moi, cette technique serait difficile implmenter dans une application qui
lutiliserait de manire efficiente, c'est--dire chercher le facteur (pour calculer le
support et la rsistance) idal pour gnrer les empreintes de tous les lments de la
trace, ceci affectant aussi les performances.
Mais quel sera limpact sur les performances, sachant que chaque opration
supplmentaire rallonge le temps de traitement global.
Cette technique est simple et performance. On peut comparer les courbes directement
40
sans faire dempreintes. Il faudra tout mme transformer les frquences filtres ou
non en valeur relatives avant de calculer le score de dviation entre deux courbes.
Cette technique fonctionne trs bien daprs les tests que jai effectus.
Elle donne une mesure de la qualit de la corrlation entre tous les couples dlments
compars, on peut donc les classer de la corrlation la plus forte la plus faible. Cette
mesure est trs importante, car elle nous permet de dfinir un seuil au-dessus duquel
la qualit de la corrlation est considre comme insuffisante. Donc si deux lments
sont corrls le score de dviation de leur courbe doit tre infrieur au seuil dfini.
40
La moyenne mobile simple est un type de filtre et il y en a dautres.
Je ferai quelques tests pour montrer leffet de la moyenne mobile simple sur les
rsultats de la corrlation. Pour finir, je vais aussi montrer quelle est la sensibilit des
rsultats de corrlation par rapport au nombre de segments dfinis.
Commenons par le premier groupe dobjectifs, celui qui est li la consultation des
donnes. Les objectifs sont les suivants :
1. Afficher la liste de tous les lments distincts qui apparaissent dans la trace
dexcution.
5. tre capable dafficher dans un seul graphique les trois objectifs prcdent.
1. Permettre de paramtrer :
a. La valeur de Ns.
La premire partie est constitue donglet danalyse dans lequel on lance le processus
de corrlation sur lensemble de la trace slectionne avec les paramtres dsirs.
41
Utilis par les filtres de type moyen mobile.
42
Choisir le nombre de segment Ns
On peut ensuite cliquer sur Start Correlation et le rsultat de toutes les corrlations
apparatra dans la zone de texte Result , dans lordre du meilleur rsultat vers le
plus mauvais.
On peut choisir dafficher les courbes pour nimporte lesquelles des classes corrles,
en double-cliquant sur un des rsultats dans Result .
Les trois cases cocher Draw Frequencies , Draw Filtered Freq et Draw
Correlation permettent respectivement dafficher les courbes des frquences
doccurrences, les frquences doccurrences filtres par une moyenne mobile et la
courbe de dviation des moyennes mobiles.
42
IMPORTANT : Ns est exprim ici sous forme dune valeur x. Ns = xn, o n est le
nombre de classes dans la trace. On na pas dinfluence sur n. Il reste donc dfinir x
et le calcul du Ns se fait automatiquement dans lapplication.
Les cases cocher Relative X Axis et Relative Y Axis servent dfinir si les
valeurs sur laxe quelles dsignent doivent tre exprimes de manire relative. (voir
figure 30)
Les rsultats sont affichs dans lordre croissant du score de dviation entre les paires
de classe compares.
On constate pour toutes les paires de classes corrles que les courbes sont
parfaitement superposes pour les 200 meilleures corrlations. On peut en dduire
que ces classes travaillent ensemble. En analysant visuellement les rsultats de
43
corrlations, on constate une ressemblance graphique des paires de classes
compares pour les 1000 meilleures corrlations.
Voici un extrait plus tendu des rsultats de la figure 39 (voir figure 40).
43
De la courbe
Figure 31
Jai effectu une analyse de la trace avec Ns = 3n sans filtrage et jai obtenu les
rsultats de la figure 31. A prsent, je refais la mme analyse avec un filtrage
dordre 30. Jobtiens les rsultats de la figure 32.
44
Voir Chapitre 4.2.5
Figure 32
Figure 34
Jai rcupr les 50 paires de classe dont la corrlation est la plus forte pour chacune
de ces deux analyses. Ces paires de classes sont tris par ordre alphabtique (voir
figure 35). On cherche voir comment le changement de Ns va affecter les rsultats
ou le classement des rsultats. Donc si lon prend les 50 meilleurs rsultats pour les
deux analyses, on pourrait regarder si on y retrouve les mmes classes.
45
Sur la figure, la premire colonne R est le rang , C1 est une classe et C2
une autre classe laquelle elle a t compare C. C1 et C2 forment une paire de
46
classe unique pour chaque ligne. RE est le score de dviation .
On constate pour les deux analyses, les 50 meilleures corrlations sont quasiment les
mmes. Cependant, on voit aussi que le Ns a un faible impact sur le classement et le
score de dviation. On remarquera aussi quune partie des paires de classes
manquantes sont parfois celles qui se trouvaient un rang proche de 50.
45
Cest le classement de la corrlation entre deux classes. Pour cette trace le rang va
jusqu 9591, parce quil y 9591 corrlations possible entre toutes les classes de la
trace. Elles sont toutes classes selon leur rsultat de 1 9591.
46
Voir au chapitre 4.2.5
Sur la figure 36, on constate quavec Ns = 32n, on na pas non plus dimpact majeur
sur les rsultats des corrlations. On retrouve plus ou moins les mmes paires de
classes des 2 cots.
Trace_tbl est la table qui contient les noms des traces quil est possible
danalyser. Elle permet de distinguer les informations gnres pour chaque
trace.
Frequency_tbl est la table qui contiendra toutes les valeurs des frquences
doccurrences.
48
Le package jfreechart est une librairie qui permet dafficher les graphiques
de lapplication.
47
Professeur HES
48
OBJECT REFINERY LIMITED. JFreeChart [en ligne]. http://www.jfree.org/jfreechart/
Architecture de lapplication
Dans la mesure o une application doit travailler sur des traces dexcutions avec une
base de donnes, il est prfrable de bien optimiser ces requtes SQL afin de ne
rcuprer que linformation utile lapplication cliente, dautant plus si la base de
donnes est trs performante. De plus, il faut absolument les longues sries de
50
requtes , si on faire la mme opration en une seule. Je lai constat dans mon
travail : les performances chutent dramatiquement.
Il y a un autre facteur important qui permet damliorer les performances. Les rsultats
des oprations sur les traces peuvent eux aussi gnrer beaucoup dinformations et
surtout on peut viter de les refaire systmatiquement pour une mme trace. Si lon
considre quune trace est immuable, alors on ne doit pas refaire les mmes
oprations. On enregistre aussi les rsultats dans notre base de donnes. a peut
paratre vident, mais il ne faut pas lomettre pour autant.
Crer des indexes dans la base de donnes aprs avoir insr de grande quantit de
donnes permet davoir des meilleurs temps de rponse sur les requtes SQL.
49
Sauf Oracle Express Edition qui est gratuit, mais limit en stockage (4 Go de donns
maximum) et en mmoire RAM (1Go de mmoire maximum)
50
Des centaines ou des milliers de requtes
51
Ce sont des procdures qui sexcutent directement dans la base. Elles sont trs
rapides pour traiter certaines oprations ncessitant des requtes paramtres.
Pour les futures recherches, ma technique peut tre enrichie, pour tenir compte de
situations plus spcifiques, notamment lorsque des classes ne sont corrles que sur
une partie de la trace. J'ai pu constater ce phnomne en observant certaines courbes
et le rsultat de leur score de dviation. Une ide pour palier cette situation, serait de
calculer l'cart type entre deux moyennes mobiles exprimes de manire relatives sur
des intervalles de segments contigus. En incluant la valeur de l'cart type dans le
score de dviation, cela permettrait de rendre les corrlations encore plus pertinentes
quelles ne le sont.
52
Certaines courbes filtres que j'ai pu observer sur les classes fortement corrles,
prsentent des tendances similaires pour les mmes segments. Une technique base
sur l'analyse des tendances (voir Chapitre 4.2.3) pourrait tre mise en uvre pour
exploiter ces similitudes et tenter de corrler les classes de la trace.
52
Courbes des frquences d'occurrences filtres
Livres
BARON, Franois. Le chartisme : mthodes et stratgies pour gagner en bourse.
[Paris] : Eyrolles, 2008. 490 p. (Analyse technique).
Articles
HAMOU-LHADJ, A., LETHBRIDGE, T.C - A Survey of Trace Exploration Tools and
Techniques. Proc of the Conference of the Centre for Advanced Studies on
Collaborative Research CASCON 2004, October 5-7, 2004,Markham, Canada.
KUHN A., GREEVY O. - Exploiting the analogy between traces and signal processing.
INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE (2006,
Philadelphie) : processing of IEEE ICSM. Philadlphie, 24-25-26-26 septembre 2006. 9
p.
BENNETT C., MYERS D., STOREY M., GERMAN D. - Working with Monster Traces:
Building a Scalable, Usable Sequence Viewer. PROGRAM COMPREHENSION
THROUGH DYNAMIC ANALYSIS (2007, Vancouver). : proceedings of the 3rd
international workshop on program comprehension through dynamic analysis.
Vancouver, 29 octobre 2007. 5 p.
Sites web
BNP PARIBAS. Tendances, supports et rsistances [en ligne].
http://www.bnpparibas.net/banque/portail/particulier/Fiche?type=fiche&identifiant=NOT
_Tendances_supports_et_resistances_20060403115328 (consult le 30.11.2008)
TRADING SCHOOL. Epaule tte paule (T) : les figures chartistes, glossaire de la
bourse [en ligne]. http://www.trading-school.eu/glossaire-bourse/fiche-Epaule-Tete-
Epaule-ETE--47 (consult le 30.11.2008)