Intro du sujet :
"Un centre d'appel reçoit des centaines d'appels par jour. Sans système informatique adapté, les agents sont mal répartis, les clients attendent trop longtemps et il n'y a aucune traçabilité. Notre projet propose une conception complète de ce système."
Ce qu'on a fait :
"On a modélisé le système avec UML : un diagramme de cas d'utilisation, un diagramme de classes, et trois diagrammes de séquence. On a choisi une architecture MVC et une méthode de travail Agile Scrum en 4 sprints."
Questions du prof et réponses
Q : C'est quoi UML ?
"UML c'est un langage de modélisation standardisé qui permet de représenter graphiquement un système logiciel. Il permet de décrire la structure et le comportement du système avant de le développer."
Q : Quelle est la différence entre include et extend ?
"Include signifie que le cas d'utilisation est toujours exécuté, c'est obligatoire. Par exemple passer un appel inclut toujours l'affectation automatique. Extend signifie que c'est optionnel, ça arrive seulement dans certains cas. Par exemple la gestion de la file d'attente n'intervient que si aucun agent n'est disponible."
Q : C'est quoi un diagramme de classes ?
"C'est un diagramme qui représente la structure statique du système. Il montre les classes, leurs attributs, leurs méthodes et les relations entre elles comme l'héritage, l'association et la composition."
Q : C'est quoi un diagramme de séquence ?
"C'est un diagramme qui représente les interactions entre les acteurs et le système dans un ordre chronologique. Il montre qui envoie quoi à qui et dans quel ordre."
Q : Quelle est la différence entre diagramme de classes et diagramme de séquence ?
"Le diagramme de classes montre la structure statique, ce que le système contient. Le diagramme de séquence montre le comportement dynamique, comment les acteurs interagissent dans le temps pour un scénario précis."
Q : Pourquoi Superviseur hérite d'Agent ?
"Parce qu'un superviseur est avant tout un agent avec les mêmes attributs de base comme le nom, le matricule et le statut. Mais il a en plus des droits supplémentaires comme gérer les agents, consulter les statistiques et configurer le système. L'héritage évite de dupliquer les attributs communs."
Q : C'est quoi une association dans le diagramme de classes ?
"C'est une relation entre deux classes. Par exemple Client et Appel sont liés par une association car un client passe des appels. La multiplicité 1 vers étoile signifie qu'un client peut passer plusieurs appels."
Q : Pourquoi vous avez choisi MVC ?
"MVC sépare clairement les responsabilités en trois couches. La Vue gère l'interface utilisateur, le Contrôleur traite la logique applicative, et le Modèle gère les données. Cette séparation facilite la maintenance et l'évolution du système."
Q : C'est quoi le Modèle dans votre projet ?
"Le Modèle regroupe toutes les classes métier : Client, Agent, Appel, FileAttente et HistoriqueAppel. Ce sont les données du système et leur accès en base de données."
Q : C'est quoi la Vue dans votre projet ?
"La Vue c'est l'interface utilisateur. Chaque acteur a sa propre interface : le client voit ses appels et son historique, l'agent voit sa file d'attente, et le superviseur voit le tableau de bord des statistiques."
Q : C'est quoi le Contrôleur ?
"Le Contrôleur reçoit les actions de l'utilisateur depuis la Vue, les traite, et demande au Modèle les données nécessaires. Par exemple quand le superviseur demande les statistiques, c'est le StatistiquesControleur qui gère cette requête."
Q : C'est quoi Agile Scrum ?
"Agile Scrum est une méthode de gestion de projet qui organise le travail en itérations courtes appelées sprints. À la fin de chaque sprint on livre quelque chose de concret. C'est flexible car on peut s'adapter entre chaque sprint."
Q : Pourquoi Scrum et pas Waterfall ?
"Waterfall est rigide, on fait les étapes une par une dans l'ordre et on ne peut pas revenir en arrière. Si on découvre une erreur à la fin c'est trop tard. Scrum est flexible, si on fait une erreur au sprint 1 on la corrige au sprint 2. C'est plus adapté à notre projet de 4 semaines."
Q : C'est quoi un sprint ?
"Un sprint c'est une itération courte d'une durée fixe. Dans notre projet chaque sprint dure une semaine. À la fin de chaque sprint on livre un résultat concret et validable."
Q : Quels sont vos 4 sprints ?
"Sprint 1 c'est l'analyse et le cahier des charges. Sprint 2 c'est la modélisation UML avec les diagrammes. Sprint 3 c'est l'architecture MVC et le modèle de données. Sprint 4 c'est la finalisation du rapport et la préparation de la soutenance."
Q : Comment fonctionne l'affectation automatique ?
"Quand un appel arrive, le moteur d'affectation vérifie la liste des agents disponibles. Il applique un algorithme de sélection basé sur la disponibilité et les compétences de l'agent. Il affecte l'appel à l'agent le plus adapté et lui envoie une notification."
Q : Que se passe-t-il si aucun agent n'est disponible ?
"L'appel est placé en file d'attente. Le client reçoit une notification avec son numéro de position et une estimation du temps d'attente. Dès qu'un agent se libère, le premier appel de la file lui est automatiquement affecté."
Q : Que se passe-t-il si la file d'attente est pleine ?
"Le système informe le client que la file est pleine et lui suggère de rappeler ultérieurement. C'est le scénario alternatif numéro 3 de notre UC-01."
Q : C'est quoi un KPI ?
"KPI signifie Key Performance Indicator, c'est un indicateur clé de performance. Dans notre système les KPI incluent le temps moyen d'attente, le temps moyen de traitement, le taux de résolution au premier appel et le taux d'abandon."
Q : Pourquoi vous n'avez pas fait de code ?
"Le guide du projet précise que l'implémentation est optionnelle. Ce projet évalue la conception orientée objet, c'est-à-dire la modélisation et l'architecture, pas le développement. C'est une décision justifiée par les consignes du module."
Q : C'est quoi la différence entre une classe abstraite et une classe normale ?
"Une classe abstraite ne peut pas être instanciée directement, elle sert de base pour d'autres classes. Dans notre projet Personne est abstraite, on ne crée jamais un objet Personne directement, on crée des objets Client, Agent ou Superviseur qui héritent de Personne."
Q : C'est quoi une énumération dans votre diagramme ?
"Une énumération est un type qui définit un ensemble fixe de valeurs possibles. Par exemple StatutAgent peut valoir uniquement : disponible, occupé, en pause ou hors ligne. Et StatutAppel peut valoir : en attente, en cours, terminé ou abandonné."
Q : Quelle est la multiplicité entre Agent et Appel ?
"Un agent peut traiter zéro ou plusieurs appels, donc 0 étoile du côté Appel. Et un appel est traité par exactement un agent, donc 1 du côté Agent."
