tp1-mgl843-pharo-visualizations

Description

Repos de visualisation TP1-MGL843

Details

Source
GitHub
Dialect
pharo (25% confidence)
Created
Jan. 27, 2026
Updated
Feb. 1, 2026

Categories

System / OS

README excerpt

# TP1 – Visualisations Moose / Pharo (MGL843)

Ce dépôt contient les **outils Pharo/Moose** développés dans le cadre du  
**TP1 du cours MGL843 – Sujets avancés en conception logicielle**, permettant :

* 📊 de **visualiser** un modèle **FAMIX TypeScript** (classes, méthodes, fonctions, fichiers)
* 📁 de **générer un fichier CSV** de métriques (attributs, méthodes, LOC)
* 🧪 de **valider la structure du dépôt** via des tests automatisés (GitHub Actions)

## 🧰 Technologies utilisées

* **Pharo 12**
* **Moose Suite 12 (TypeScript)**
* **Famix TypeScript**
* **Roassal3** (visualisations)
* **NeoCSV** (export CSV)
* **Node.js + Jest** (tests CI)
* **GitHub Actions**

## 📁 Structure du dépôt

```text
tp1-mgl843-pharo-visualizations/
│
├─ pharo/
│  ├─ scripts/               # Scripts exécutables
│  │  ├─ 00-bootstrap.st
│  │  ├─ 01-open-classes-map.st
│  │  ├─ 02-open-functions-map.st
│  │  ├─ 03-open-methods-map.st
│  │  ├─ 04-open-files-map.st
│  │  └─ 05-export-classes-metrics-to-documents.st
│  │
│  └─ src/                   # Code Smalltalk versionné
│     ├─ TP1MGL843-PharoTools/
│     └─ TP1MGL843-PharoTools-Tests/
│
├─ js-tests/                 # Tests automatisés (CI)
│  ├─ __tests__/
│  ├─ src/
│  ├─ package.json
│  └─ jest.config.js
│
└─ .github/workflows/
   └─ ci.yml                 # Pipeline GitHub Actions
````

## ✅ Prérequis (OBLIGATOIRES)

Avant d’utiliser les visualisations ou l’export CSV,
**le modèle TypeScript doit être importé dans Moose**.

### 1️⃣ Installer Pharo & Moose

* Installer **Pharo Launcher**
* Créer / ouvrir une image : **Moose Suite 12 – TypeScript**

## 2️⃣ Importer le projet TypeScript dans Moose (OBLIGATOIRE)

⚠️ **Sans cette étape, les métriques (LOC, méthodes, etc.) peuvent être à 0**

Tutoriel officiel :
👉 [https://fuhrmanator.github.io/tuto-famix-ts/](https://fuhrmanator.github.io/tuto-famix-ts/)
👉 Charger le modele TP1-MGL843-model.json fourni

## ▶️ Utilisation des visualisations

Ouvrir un **Moose Playground** ou utiliser **FileIn** dans Pharo.

### 📦 Chargement des dépendances

```smalltalk
"00-bootstrap.st"
```

### 🟦 Visualisation des classes

```smalltalk
TP1Viz openClassesMap.
```

* Taille = attributs
* Hauteur = méthodes
* Couleur = LOC
* 🔍 Cliquable

### 🟩 Visualisation des méthodes

```smalltalk
TP1Viz openMethodsMap.
```

### 🟨 Visualisation des fonctions

```smalltalk
TP1Viz openFunctionsMap.
```

### 🟥 Visualisation des fichiers

```smalltalk
TP1Viz openFilesMap.
```

## 📤 Génération du CSV

```smalltalk
TP1CSVExporter exportToDocuments.
```

📄 Généré dans :

```text
Documents/tp1_classes_metrics.csv
```

## 🧪 Tests automatisés (CI)

```bash
cd js-tests
npm install
npm test
```

## 👥 Travail d’équipe

👉 **Le modèle Moose n’est pas versionné**
Chaque membre importe le projet TypeScript localement.

## 📚 Références

* [https://fuhrmanator.github.io/tuto-famix-ts/](https://fuhrmanator.github.io/tuto-famix-ts/)
* [https://moosetechnology.org/](https://moosetechnology.org/)
* [https://github.com/ObjectProfile/Roassal3](https://github.com/ObjectProfile/Roassal3)

## ✍️ Auteur

TP réalisé dans le cadre du cours **MGL843 – Sujets avancés en conception logicielle**
ÉTS – Hiver 2026



← Back to results