Détail du sujet

30/11/2018 Sujet 26 :  VisUML pour Kotlin
Auteur : Jean-Claude Tarby  Ecrire 
(Responsable Informatique : Jean-Claude Tarby  Ecrire )

Nous avons réalisé un plugin pour IntelliJ (https://www.jetbrains.com/idea) et Android Studio (http://developer.android.com/tools/studio/index.html) permettant d’afficher en live dans une page web le diagramme de classes correspondant au code Java affiché dans l’IDE, ainsi que le diagramme de séquence de la méthode courante. Ces diagrammes sont interactifs ; par exemple la sélection d’une classe, d’une méthode ou d’une propriété dans le diagramme UML affiche le code correspondant dans l’IDE. Vous pouvez télécharger ce plugin à partir du lien web 1 et voir une vidéo démo avec le lien 2.

Les diagrammes sont ainsi toujours à jour vis-à-vis du code, et le code peut être modifié à partir des diagrammes.

Pour information, VisUML utilise d’une part un bus de communication que nous avons développé en interne (nommé WSE), très simple d’emploi et envoyant des messages au format JSON, et d’autre part une librairie graphique, nommée GoJS (http://gojs.net/latest/index.html).

Même si le plugin fonctionne très bien actuellement, nous voulons montrer que notre système est ouvert et peut facilement être étendu à d’autres langages. La version 1 du plugin utilisait la librairie Spoon de l’INRIA. La version 2 utilise les « PsiElements » d’IntelliJ, mais celles-ci sont dédiées à Java. Toutefois, il existe leur équivalent dans tous les langages dont Kotlin, PHP et Javascript.

Le travail demandé consiste à remplacer le code utilisant les « PsiElements » d’IntelliJ dédiés à l’analyse de code Java par l'équivalent pour Kotlin (c'est-à-dire les « PsiElements » d’IntelliJ dédiés à Kotlin). Ce langage étant devenu le second langage supporté par Android et étant développé par JetBrains, il est intéressant pour l'outil de gérer celui-ci.

La connaissance d’IntelliJ n’est pas obligatoire, mais une bonne connaissance de celui-ci sera un plus. De même, la connaissance de Kotlin est un plus mais n'est pas nécessaire.

Liens associés :
Sujet non-attribué