AutoSVG
Tom Etienne
Achraf Hassani
Yacine Hmito
Thibaut Quentin
Encadré par M.Nicart
Dessiner un automate
Des représentations exactes d’automate
fa {
states {
0[initial terminal]
}
transitions {
0 a -> 1
1 b -> 0
}
}
M=(Σ, Q, I, F, δ)
Σ = {a, b}
Q = {0, 1}
I = F = {0}
δ = {(0, a, 1); (1, b, 0)}
Le Web
- Facile d’accès
- Environnement graphique
- Expérimenter
Notre objectif
Mettre en oeuvre une application de représentation d’automate à l’aide des technologies Web.
Plan
- Un cahier des charge bien rempli
- Une application modulaire
- Organisation
- Bilan
- Démo
Cahier des charges
Elaboré avec le "client"
Fonctionnalités attendues
- Une représentation textuelle
- Donc un langage à définir : CAL
- Une représentation graphique
- Vectoriel dans le navigateur = SVG
Représentations
fa {
states {
0[initial terminal]
}
transitions {
0 a -> 1
1 b -> 0
}
}
Fonctionnalités supplémentaires
- Positionnement automatique des entités
- Mécanisme d’inférence
- Signalisation des erreurs
- Customisation de styles
Fonctionnalités non implémentées
- Quelques opérations sur les automates
- Fonction d’export du SVG
- Altérer l’automate depuis la vue graphique
- Mettre à jour la vue texte
Une application modulaire
3 composants: Parseur, Modèle, Dessin
Un modèle en deux couches
Etapes de la désérialisation
Dessin
Outils
- Permettre une gestion aisée des dépendances
- Privilégier la collaboration
Equipes
- Équipe 1 : Parser et gestion des erreurs
- API
- Équipe 2 : Modèle et dessin
Rencontres
- RDV hebdomadaire
- Avec le tuteur
- Entre nous
- Site en ligne : autosvg.github.io
Bilan technique
- Bon écosystème
- Javascript : problèmes d’expressivité et de robustesse
- Edition graphique
Bilan organisationnel
- Coder plus tôt
- Déploiemment continu ⇒ Intégration continu
- Plus de tests
- Plus de communication
Bilan humain
- Baisse de motivation
- Travail à distance