Projet intégration M1

Le but de ce Projet est de prendre en main l’outil de gestion de version GitLab de l’université (la forge), et de se familiariser avec l’utilisation des tests unitaires pour la réalisation de projets de développement mais aussi pour les différents TP durant le Master iWOCS.

Le travail est réalisé en binôme. le but est de travailler en parallèle sur des postes différents, le partage du code se faisant grâce à la forge.

Avant de commencer : configuration de la forge

Il faut avoir un compte à l’université (personnel de l’université ou étudiants inscrits) pour pouvoir créer un compte sur la forge.

Etape 1 : première connexion

La première connection se fait obligatoirement via le Service Central d’Authentification de l’université (le CAS), en cliquant sur le bouton “CAS Université Le Havre Normandie” depuis la page d’accueil.

Page d'accueil de la Forge

Etape 2 : Email valide et vérifié

Une fois connecté il faut donner une adresse mail valide (pas forcement celle de l’université). Un mail de confirmation sera envoyé à l’adresse donnée. Aller sur le lien envoyé par mail pour valider la création du compte.

Etape 3 : Définir un mot de passe

Une fois l’adresse email validée, aller dans l’onglet password afin de définir un mot de passe (différent de celui de l’université).

Etape 4 : Configuration de la machine de travail

Dans un terminal on configure le client GIT local avec les commandes de configuration suivantes (remplacer les mots LOGIN, PRENOM, NOM et EMAIL par ce qui convient) :

git config --global credential.https://www-apps.univ-lehavre.fr.username LOGIN
git config --global user.name "PRENOM NOM"
git config --global user.email "EMAIL"

Pour ne pas retaper à chaque fois le mot de passe. Sous Linux taper :

git config --global credential.helper 'cache --timeout 3600'

Etape 5 : connexion normale

GitLab est maintenant configuré. Plus besoin d’utiliser le “CAS de L’université” pour se connecter à l’avenir. On peut directement entrer le login (ou l’adresse email) et le mot de passe définit précédemment, sur la page de connexion.

But et fonctionnement du TP

Le but est la manipulation de la forge et le travail en équipe. Le travail s’effectue par équipe de deux personnes. Chacun doit travailler sur une machine distincte, on ne travaille pas a deux sur la même machine.

Les binômes sont désignés par les encadrants.

La section “travail demandé” va décrire les tâches à remplir dans ce projet. Chaque tâche ou groupe de tâche est attribué soit à Alice, soit à Bob. Alice doit faire les tâches qui la concerne uniquement, de même pour Bob.

On essaye de travailler en parallèle quand cela est possible.

Le projet (User Story)

On veut réaliser un simple modèle objet en Java qui permet de gérer un carnet d’adresses.

Un carnet d’adresses est constitué d’entrées qui peuvent représenter des personnes ou des sociétés. Les informations et la présentation sont différentes s’il s’agis d’une personne ou d’une société.

Une méthode utilitaire permet de lire les contacts à partir d’un fichier texte.

On peut faire des recherches sur le carnet et sélectionner des contacts pour les afficher.

L’affichage se fait en choisissant :

En plus des méthodes indiquées, toutes les classes possèdent des accesseurs pour leurs champs privés. Le modèle objet est le suivant.

UML Carnet d'adresses

Travail Demandé

0. Alice et Bob

Alice et Bob configurent leur environnement GIT (git config ...) chacun sur leur machine. Cette étape est indispensable pour signer correctement les validations et pouvoir s’authentifier sur la forge.

D’une manière générale quand quelqu’un reçoit un Merge Request, il essaye de le traiter rapidement. On ne valide un merge request que s’il est de bonne qualité (code bien écrit, tests et couverture acceptables, etc.). On demande des modifications en commentaire si les critères ne sont pas réunis. L’auteur du merge request devra donc refaire des validations et les envoyer dans la branche de merge jusqu’à ce que le merge soit validé.

1. Alice

Alice va créer le projet en utilisant le projet de base présenté en cours.

Dans un terminal :

Sur la forge :

Dans un terminal a nouveau :

Si Alice souhaite utiliser un IDE c’est son droit. Si elle utilise IntelliJ, il lui suffit de cliquer sur le bouton “open” et de faire pointer le répertoire du projet local créé en ligne de commande.

2. Bob

Bob clone le projet. S’il utilise IntelliJ il clique sur “check out from version control”.

Il met à jour les informations dans le fichier README avant de valider et envoyer, directement dans la branche master. Attention il y aun certain nombre de choses à modifier dans le README :

Bob doit aussi :

3. Alice

4. Bob

5. Alice

6. Bob

7. Alice

8. Bob

9. Alice

10. Alice ou Bob

11. Bob