CSC 4102 – Introduction au génie logiciel pour applications orientées objet

Portail informatique

Installations et configurations logicielles pour le module CSC4102

Durée estimée ≈ 2h (à partir d'une installation déjà proche de ce qui est nécessaire).
Quand : à faire AVANT LA SÉANCE 1.

être prêt pour le démarrage du module :
  • en vérifiant l'installation et la configuration de son compte Télécom SudParis / DISI, et
  • en vérifiant l'installation et la configuration de sa machine personnelle.
installez les logiciels et configurez les deux comptes car, soit vous préférez votre machine personnelle, et ne vous ne devrez pas être bloquées ou bloqués en cas de soucis sur votre machine personnelle, soit vous préférez votre compte DISI, et vous aurez à travailler aussi en hors présentiel (2h de TP puis 3h en hors présentiel).

Vérification de l'accès à GitLabEns

Durant tout le module, et dès le début du TP de la séance 1, nous utilisons Git avec la forge logicielle GitLabEns. Vérifiez que vous avez accès à l'interface Web. Pour ce faire, vous vous connectez à la plateforme GitLabEns de TSP (https://gitlabens.imtbs-tsp.eu) en utilisant l'authentification Shibboleth repérée par le bouton suivant :

 

Si vous n'arrivez pas à vous connecter à la plateforme, voici le message de la DISI pour l'accès extérieur à la forge logicielle :
« Nous avons ouvert la plateforme GitLabEns depuis l’extérieur du campus a un nombre limité de Fournisseurs d'Accès Internet (FAI), principalement Orange, SFR, Bouygues, Free, mais il est possible que nous n'ayons pas énuméré toutes les adresses sources dont ils disposent. Si vous avez un refus d'accès, merci de retourner à la DISI via le helpdesk l’adresse Internet (adresse IP) de votre point d’accès (box, mobile, lieu d’hébergement...), adresse disponible depuis votre terminal en allant sur le site https://monip.org/, afin que la DISI adapte les filtres IP d’accès à GitLabEns. Retournez l'information (adresse IPv4) obtenue sur cette page en envoyant un courriel : "Subject: contrôle d'acces IP à gitlabens CSC4102, To: helpdesk@imtbs-tsp.eu, Body: contenu de https://ip.lafibre.info/" »

Configuration du compte Télécom SudParis / DISI

Toutes les manipulations de cette section sont à effectuer une fois connecté ou connectée sur une machine DISI, (1) en étant présent en salle TP ou (2) en utilisant une connexion SSH (p.ex. ssh -Y LOGINDISI@ssh.imtbs-tsp.eu).

Ménage du compte Télécom SudParis


Faites du ménage sur votre compte Unix TSP fourni par la DISI, et créez un répertoire ~/CSC4102 pour l'ensemble du module.

$ cd $ du -sh * # pour voir où je peux gagner de la place disque ... # au besoin, ménage avec la commande rm $ mkdir CSC4102

Pour faire du ménage après le module CSC4101, les coordinateurs de ce module proposent ceci : dans chaque projet Symfony (répertoire dans lequel se trouvent bin/console, composer.json, etc.)

$ cd ...... $ symfony console cache:clear $ rm -rf vendor/

Puis, globalement, dans le compte,

$ cd $ rm -rf $HOME/.cache/composer/

Création d'un couple de clefs (privée, publique) SSH pour les connexions avec la plateforme GitLabEns de TSP


Vous utiliserez le protocole SSH pour pouvoir réaliser les soumissions de vos travaux sur le dépôt Git de votre projet. Afin de permettre une manipulation fluide et sécurisée, vous utilisez un couple de clés SSH permettant de réaliser les authentifications SSH de façon « transparente ».

Il convient d'avoir un couple de clefs SSH spécifique pour chaque machine que l'on souhaite utiliser comme client SSH.

Pour information, les concepts du protocole réseau SSH sont présentés d'un point de vue « pratique informatique » dans la page suivant suivante.

Peut-être avez-vous déjà un couple de clefs SSH. Pour le savoir, étudiez le contenu de votre répertoire ~/.ssh.

$ cd $ ls -l .ssh/ -rw------- 1 conan inf 392 4 déc. 2017 authorized_keys -rw------- 1 conan inf 1766 3 janv. 2017 id_rsa -rw------- 1 conan inf 392 3 janv. 2017 id_rsa.pub -rw-r--r-- 1 conan inf 2071 13 nov. 15:07 known_hosts ...

Si vous avez un répertoire ~/.ssh avec des fichiers id_rsa*.pub et id_rsa*, c'est que vous avez déjà un couple de clefs SSH : un fichier id_rsa*.pub contient la clef publique et le fichier id_rsa* correspondant contient la clef privée permettant d'utiliser la clef publique (ce fichier est très sensible et son contenu doit toujours rester secret).

Si vous n'avez pas de couples de clefs SSH ou lorsque vous souhaitez générer un nouveau couple, utilisez la commande ssh-keygen comme suit :

  • l'identifiant demandé dans l'option « -C » de la commande ssh-keygen est un commentaire du couple de clefs qui doit permettre à celui qui l'a générée de savoir de quel couple de clefs il s'agit. Pour ce faire, nous proposons que vous utilisiez un identifiant de la forme « nom_utilisateur@nom_hôte » pour que vous sachiez où le couple de clefs a été généré. C'est la manière la plus habituelle de procéder. Si vous ne mettez pas l'option « -C » alors, sur une machine de salle de TP, l'identifiant est de la forme « login@b0X-YY » ;
$ ssh-keygen -t rsa -C "IDENTIFIANT" -b 4096 Generating public/private rsa key pair. Enter file in which to save the key (.../VOTRE_LOGIN/.ssh/id_rsa): Created directory '.../VOTRE_LOGIN/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in .../VOTRE_LOGIN/.ssh/id_rsa. Your public key has been saved in .../VOTRE_LOGIN/.ssh/id_rsa.pub. The key fingerprint is: SHA256:... IDENTIFIANT The key's randomart image is: +---[RSA 4096]----+ ... +----[SHA256]-----+ $ ssh-add .ssh/id_rsa # peut être nécessaire dans certaines configurations

ne divulguez jamais le contenu de vos clefs privées. Si par erreur cela vous arrive, générez un nouveau couple de clefs et abandonnez le couple de clefs corrompu.

Vérification de l'installation du gestionnaire de versions Git


Vérifiez l'installation et la configuration avec les commandes suivantes :

$ git --version git version 2.34.1 $ git mergetool --tool-help | grep meld meld $ which gitk /bin/gitk $ git gui version git-gui version 0.21... $ tig --version tig version 2.5.1 ...

Pour faciliter l'utilisation de Git en mode commande, les utilisateurs GNU/Linux ont préparés des « complétions de commandes ». Nous vous proposons de télécharger les shell script bash et de l'utiliser avec la configuration de votre compte.

$ cd ~/CSC4102 $ wget https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash $ # donner le droit d'exécution $ chmod u+x git-completion.bash $ # exécuter le shell script au démarrage d'un terminal $ echo "source $PWD/git-completion.bash" >> ~/.bashrc $ # pour l'utiliser tout de suite dans le terminal ouvert $ source ./git-completion.bash

Programmation JAVA


Nous avons besoin d'une machine virtuelle JAVA ayant une version ≥ 17, avant dernière version « Long-Term Support » qui est installée sur les machines des salles de TP. Nous recommandons le Java Development Kit de OpenJDK avec la version 17.

$ which java /usr/bin/java $ ls -l /usr/bin/java lrwxrwxrwx 1 root root 22 août 9 16:29 /usr/bin/java -> /etc/alternatives/java $ ls -l /etc/alternatives/java # quelle est la version précise ? lrwxrwxrwx 1 root root 43 août 9 16:29 /etc/alternatives/java -> /usr/lib/jvm/java-17-openjdk-amd64/bin/java # quelles versions sont disponibles $ ls /usr/lib/jvm ... java-17-openjdk-amd64 ... $ java -version # quelle est la version utilisée dans mon compte ? openjdk version "17.0.8.1" 2023-08-24 OpenJDK Runtime Environment (build 17.0.8.1+1-Ubuntu-0ubuntu122.04) OpenJDK 64-Bit Server VM (build 17.0.8.1+1-Ubuntu-0ubuntu122.04, mixed mode, sharing) $ javac -version javac 17.0.8.1

Spécification et modélisation avec les langages Markdown et PlantUML


Pour écrire la spécification et la modélisation, nous utilisons le langage Markdown pour GitLab (GLFM). Pour ce faire, nous vous proposons un outil pour écrire et un autre pour lire un fichier Markdown :

  • sur GNU/Linux, écrivez avec l'éditeur emacs complété du paquet Debian elpa-markdown-mode, et lisez/visualisez avec l'outil ghostwriter installé avec le paquet Debian ghostwriter. Dans emacs, utilisez le menu Markdown pour l'édition des tableaux ;
  • sur Windows, écrivez avec un éditeur de texte, par exemple NotePad++, et lisez/visualisez avec Ghostwriter ou VisualStudioCode (cf. dans la page d'aide, dans la section Markdown, la question Je souhaite utiliser VisualStudioCode sur Windows... )
  • sur MacOSX, écrivez et visualisez avec l'outil MarkText (aide à l'installation).
Vérifiez la prise en compte des caractères « \ » en fin de ligne ainsi que la gestion des tableaux grâce au petit scénario qui suit :
$ cd ~/CSC4102 $ mkdir Installations $ # téléchargement pour les essais $ wget https://www-inf.telecom-sudparis.eu/COURS/CSC4102/Installations/readme.md $ wget https://www-inf.telecom-sudparis.eu/COURS/CSC4102/Installations/uml_diag_cas_utilisation.pu $ wget https://www-inf.telecom-sudparis.eu/COURS/CSC4102/Installations/uml_diag_cas_utilisation.svg $ wget https://www-inf.telecom-sudparis.eu/COURS/CSC4102/Installations/uml_diag_cas_utilisation.png $ emacs readme.md& $ ghostwriter readme.md&
Modifiez et lisez/visualisez le fichier readme.md. Avant modification, vous devez voir l'affichage à l'écran comme dans l'image qui suit.

 

Pour construire les diagrammes UML, nous utilisons le langage textuel PlantUML. Nous l'introduirons à la séance 2 avec le premier diagramme UML, le diagramme de cas d'utilisation.

Mais, dès maintenant, vérifiez l'utilisation de l'outil PlantUML avec le scénario qui suit. Il existe de multiples outils pour utiliser PlantUML. Nous proposons la manière la plus directe, c'est-à-dire l'édition de texte (p.ex. emacs sur GNU/Linux, NotePad++ sur Windows, etc.) et l'utilisation de l'archive JAVA.

$ # on utilise le même répertoire que précédemment $ cd ~/CSC4102/Installations $ $ # téléchargements pour les essais $ wget https://www-inf.telecom-sudparis.eu/COURS/CSC4102/Installations/uml_diag_cas_utilisation.pu $ wget https://www-inf.telecom-sudparis.eu/COURS/CSC4102/Installations/plantuml-gplv2-1.2023.13.jar $ wget https://www-inf.telecom-sudparis.eu/COURS/CSC4102/Installations/visualiser.sh $ wget https://www-inf.telecom-sudparis.eu/COURS/CSC4102/Installations/generer.sh $ # on donne le droit d'exécution aux scripts $ chmod u+x visualiser.sh generer.sh $ $ # écriture : avec emacs (ouvert en arrière plan) $ emacs uml_diag_cas_utilisation.pu & $ # visualisation : interface graphique PlantUml (aussi en arrière plan) $ ./visualiser.sh & $ $ # (1) cliquer sur le nom d'un diagramme pour ouvrir une fenêtre de visualisation $ # (2) dans emacs, à la fin du fichier, avant la ligne contenant « } », $ # ajoutez la ligne « :Utilisateur: -- (nouvelle fonctionnalité) » $ # (3) à l'enregistrement de cette nouvelle version dans emacs, PlantUML génère $ # une nouvelle image du diagramme, qui est visualisée dans la fenêtre GUI $ # $ # le script generer.sh permet de générer les images *.svg et *.png sans avoir $ # à ouvrir l'interface graphique PlantUML $ ./generer.sh $ # Pour information, notre préférence va aux images au format vectoriel SVG

Programmation avec l'environnement de développement Eclipse


Pour l'écriture du code, nous utilisons de manière standard Eclipse, version récente ≥ 2022-12 (cf. les instructions d'installation). Vous pouvez choisir un autre environnement de travail, à condition de vous engager à être complètement autonome.

Sur les machines des salles de TP, la DISI a installé la version 2022-12, qui est accessible par la commande en ligne de commande eclipse-java.

S'ils ne le sont pas déjà, installez aussi par l'intermédiaire du Eclipse Marketplace les greffons suivants (si vous avez choisi un autre environnement de développement que Eclipse, installez les greffons correspondants) :

  • Greffon SpotBugs pour Eclipse : dans le menu Aide, entrez dans Eclipse Marketplace, cherchez le greffon SpotBugs en version ≥ 3.1.5 et installez-le ;
  • Greffon Checkstyle pour Eclipse : dans le menu Aide, entrez dans Eclipse Marketplace, cherchez le greffon Checkstyle Plug-in en version ≥ 10.4.0 et installez-le.

Si vous avez une installation de Eclipse avec JAVA version 11, nous vous conseillons de passer à JAVA version 17 et de ré-installer Eclipse avec cette nouvelle version.

(Les utilisateurs de VSCode peuvent regarder la page des aides JAVA et IDE à la question « Configuration de Checkstyle pour VSCode » pour des indications fournies par un étudiant des années précédentes.)

Construction de logiciel avec Maven


Pour la construction du logiciel de l'application que vous réalisez, nous utilisons Apache Maven (cf.  les instructions d'installation) dans une version ≥ 3.8.7. Au passage, vérifiez que vous utilisez bien l'installation JAVA que vous avez testée juste avant.

$ mvn -version Apache Maven 3.8.7 Maven home: /usr/share/maven Java version: 17.0.2, vendor: Oracle Corporation, runtime: /home/denis/.sdkman/candidates/java/17.0.2-open Default locale: fr_FR, platform encoding: UTF-8 OS name: "linux", version: "6.5.0-5-amd64", arch: "amd64", family: "unix"

La première compilation et installation de logiciel avec Maven prend beaucoup de temps car le dépôt local (dans le répertoire ~/.m2/repository) est mis en place lors de cette première exécution avec le téléchargement de beaucoup d'archives *.jar. Veuillez exécuter le scénario qui suit :

$ cd /tmp $ mkdir $USER $ cd $USER $ wget https://www-inf.telecom-sudparis.eu/COURS/CSC4102/Maven/BibliothequeUtil.zip ... Taille : 13415 (13K) [application/zip] Sauvegarde en : « BibliothequeUtil.zip » BibliothequeUtil.zip 100%[==========================================================>] 13,10K --.-KB/s ds 0s ... $ unzip BibliothequeUtil.zip Archive: BibliothequeUtil.zip creating: BibliothequeUtil/ inflating: BibliothequeUtil/LICENSE.txt ... $ cd BibliothequeUtil $ mvn clean install # cette commande est longue avec plus de 1600 lignes d'affichage [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building Bibliothèque utilitaire pour le module CSC4102 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ Downloading from tsp-csc-checkstyle-config-stable: http://www-inf.telecom-sudparis.eu/COURS/CSC4102/maven-repository/stable/org/apache/maven/plugins/maven-source-plugin/3.0.1/maven-source-plugin-3.0.1.pom ... [INFO] Installing /tmp/$USER/BibliothequeUtil/target/util-1.0-SNAPSHOT.jar to ~/.m2/repository/eu/telecomsudparis/csc4102/util/1.0-SNAPSHOT/util-1.0-SNAPSHOT.jar [INFO] Installing /tmp/$USER/BibliothequeUtil/pom.xml to ~/.m2/repository/eu/telecomsudparis/csc4102/util/1.0-SNAPSHOT/util-1.0-SNAPSHOT.pom [INFO] Installing /tmp/$USER/BibliothequeUtil/target/util-1.0-SNAPSHOT-sources.jar to ~/.m2/repository/eu/telecomsudparis/csc4102/util/1.0-SNAPSHOT/util-1.0-SNAPSHOT-sources.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 26.417 s [INFO] Finished at: ... [INFO] ------------------------------------------------------------------------

Installations et configurations de votre machine personnelle

Dans le cadre du module CSC4102, la configuration nominale pour le travail en séances de TP est d'utiliser les comptes Unix depuis les postes de travail des salles de TP en environnement GNU/Linux (Ubuntu). Lors de vos travaux en hors présentiel, vous utilisez votre machine personnelle avec les installations et configurations logicielles qui suivent.

Machine personnelle avec un système d'exploitation GNU/Linux à jour


Nous considérons que vous avez accès à un système d'exploitation GNU/Linux sur votre machine personnelle : « nativement » (peut-être en dual boot) ou via une machine virtuelle. Pour ce faire, reportez-vous à la page « Trucs et astuces » du premier module (CSC3102) de première année.

nous ne fournissons ni consigne ni aide si vous décidez de travailler sans système d'exploitation UNIX. Chaque année, certains binômes persistent (pendant un certain temps) à ne pas installer de système d'exploitation GNU/Linux sur leur machine personnelle. Les retours d'expérience montrent que cela leur pose des difficultés d'apprentissage et de validation à un moment ou à un autre pendant le module.

Mettez à jour votre système : par exemple, allez vers la dernière version Ubuntu.

Installation et configuration logicielle


En ce qui concerne Git, l'installation recommandée comprend les « packages » du système Git, version ≥ 2.43 (cf.  les instructions d'installation). Si nécessaire, c'est-à-dire s'il ne trouve pas l'un des outils qui suit, complétez l'installation de Git avec les outils suivants :

  • outil gitk (paquet gitk sur Debian),
  • (optionnel) outil tig (paquet tig sur Debian),
  • outil git gui (paquet git-gui sur Debian), et
  • outil meld (paquet meld sur Debian).

En ce qui concerne l'édition de fichier Markdown « gitlab/github » avec emacs sur système d'exploitation GNU/Linux, installez aussi le paquet elpa-markdown-mode.

En ce qui concerne PlantUML sur système d'exploitation GNU/Linux, installez aussi le paquet graphviz pour avoir le programme dot.

Vous êtes maintenant prêt ou prête à compléter votre installation en suivant similairement les consignes pour les machines des salles de TP. Donc, re-parcourez l'étape 2, mais cette fois-ci avec votre compte personnel sur votre machine personnelle.