Logiciels

Moose on Pharo

Le projet "Moose Reeingineering Environment" est un environnement d'analyse des systèmes logiciels. A la base conçu dans l'environnement Smalltalk VisualWorks, j'ai participé au portage de cette application dans la distribution Open-source Pharo. Depuis 2008, je me suis investi dans le développement de la plate-forme de réingénierie Moose. J'ai contribué à l'adaptation de Moose pour l'environnement de développement Pharo. Moose est publiquement disponible sous license MIT. Cette plate-forme est une des premières plate-formes de réingénierie extensible et permet de traiter différents langages tels que Java, C++ et Smalltak. Le site du projet est ici.

eDsm

Enriched Dependencies Structure Matrix (eDSM) est une matrice de dépendance utilisée pour la détection des cycles entre les packages d'un système. Cette matrice ajoute des informations sur le type de références, le nombre d'entités référençantes et le nombre d'entités référencées. Elle offre une aide à la compréhension des cycles.
Ce travail a été implémenté dans l'environnement de réingénierie open-source Moose et l'outil de visualisation Mondrian.

Une page d'information est disponible sur le site de moose.

Disponible sur Pharo:

eDSM est intégrée dans Moose Suite 4.0

Utilisateur de VisualWorks:

La version de Moose de VisualWorks fonctionne sur le métaModel Famix2.0. Or il n'est pas compatible avec eDSM. Cependant, il existe l'outil FAMIX2Importer dans Pharo qui permet de transformer des fichiers mse importé de VisualWorks dans Pharo. Via cette manipulation, eDSM peut analyser les modèles générés dans VisualWorks.

CycleTable

Lorsque l'on décompose une SCC en plus petit cycles (nous les nommons cycles minimaux), l'effort de réingénierie est plus simple à appréhender. Le but du réingénieur est de casser les cycles en enlevant des dépendances. Tout d'abord, nous souhaitons comprendre comment les cycles sont imbriqués entre eux. CycleTable met en évidence les dépendances partagées entre les cycles minimaux.

Une page d'information est disponible sur le site de moose.

Disponible sur Pharo:

CycleTable est intégrée dans Moose Suite 4.0

oZone

C'est un outil qui propose (i) une stratégie pour mettre en évidence les dépendances qui cassent le principle de dépendance acyclique (ADP); (ii) une organisation des paquetages (même en présence de cycles) en plusieurs couches, et (iii) une visualisation simple pour permettre à des experts d'ajouter des contraintes.

Moqam

Moqam (Moose Quality Assessment Model) est l'implémentation d'un modèle de qualité basé sur le modèle FCM (Facteurs - Critères - Métriques) dans l'environnement de réingénierie open-source Moose. Ce modèle de qualité fait parti des résultats du projet de recherche Squale réunissant des entreprises (dont PSA et AirFrance) et des universitaires.

Disponible sur Pharo:

Gofer new
    squeaksource: 'moqam';
    package: 'Moqam-All';
    load.

Orion

Orion est un outils pour la réingénierie. Il permet de simuler les changements et de comparer leurs impacts à travers différentes versions d'un modèle. Il répond à différents besoins comme: la simulation interactive des changements, la réutilisation des outils intégrés dans Moose et la possibilité d'avoir de multiple versions en mémoire. Spécifiquement, Orion implémente une infrastructure qui optimise l'utilisation de la mémoire, adaptée aux modèles des gros logiciels. L'infrastructure est une extension du méta-modèle FAMIX, mais Orion n'est pas limité aux outils d'analyse de code-source, il peut être appliqué aux modèles en général. Nous proposons un navigateur de version (Orion-Browser), un prototype de navigateur adapté à l'analyse des dépendances entre paquetages.

Une page d'information est disponible sur le site de moose.

Disponible sur Pharo:

Gofer new
	squeaksource: 'OrionDev'; 
addPackage: 'ConfigurationOfOrion';
load. (Smalltalk at: #ConfigurationOfOrion) perform: #loadDefault.

Autres projets:

Ocean

C'est une API réseau basée sur Pharo. Elle est orienté-objet et multi-plateforme. Notre objectif principal est de fournir (i) une structure orienté-objet, (ii) une librairie portable basée sur un seul plugin de la machine virtuelle, et (iii) un moyen facile de changer de plugin tout en gardant la même interface.

Disponible sur Squeaksource:

	http://www.squeaksource.com/Ocean.html

Pharo

Afin de rendre Pharo plus modulaire, je participe activement au développement de cette plateforme. J'utilise particulièrement eDSM et Orion.

Haut de page