UNIVERSITE DE LA MANOUBA
-----¤¤¤¤-----
ECOLE NATIONALE DES
SCIENCES DE L'INFORMATIQUE
ANNEE UNIVERSITAIRE
2015-2016
Examen – Session de Rattrapage
Matière : Génie Logiciel I
Niveau : II2
Date : 1 Juin 2016
Durée : 2H
Documents : non autorisés
Enseignantes : N. BELLAMINE, R. DRIRA, N. BEN YAHIA, F. OUAMANI
La précision, la consistance, la clarté seront appréciées
Exercice1 (3 points)
1. Pourquoi parle t-on de "cycle de vie" d’un logiciel ? Expliquez (1 pt)
2. Donnez 3 principes fondamentaux à respecter pour réaliser une architecture
Logicielle (2 pts)
a) Expliquez l’intérêt de chacun de ces principes
b) Concrètement, au travers d’exemples imagez la prise en compte de ces
principes
Exercice2 (6 points)
Soit le programme suivant :
1/4
1. Donner le graphe de contrôle correspondant à ce programme en numérotant les
nœuds. (1 pt)
2. Par quelle(s) suite(s) de nœuds faut-il passer pour satisfaire le critère de
couverture de toutes les instructions (toute instruction doit être exécutée au
moins une fois). Trouver des données de test pour satisfaire ce critère. (2 pts)
3. Ces données de test assurent-elles la couverture de tous les arcs du graphe (tout
arc est traversé au moins une fois) ? Sinon ajouter de nouvelles données de test
pour couvrir tous les arcs. (1 pt)
4. Ajouter des données de test pour assurer : (2 pts)
- qu’on exécute la fonction sans passer dans la boucle while,
- qu’on exécute la fonction en passant une fois dans la boucle while,
- qu’on exécute la fonction en passant deux ou plusieurs fois dans la boucle
Publicité
while.
Étude de cas : le système « CollabRecommender » (11 pts)
laboratoire de
recherche souhaite
réaliser un système d’information
Un
«CollabRecommender» qui permet aux membres chercheurs (co-localisés ou
distants) de ce laboratoire de trouver des collaborateurs potentiels pour les aider à la
résolution des problèmes liés à la recherche. En effet, si un membre, possesseur d’un
problème, veut inviter d’autres membres du même laboratoire pour la résolution, le
système lui recommande un ensemble pertinent des chercheurs, qui sont experts
dans le domaine de recherche dans lequel s’inscrit le problème ou qui sont en
relation avec des experts du domaine.
Ainsi, CollabRecommender considère le laboratoire comme un réseau social (un
graphe) où les membres représentent les chercheurs et les liens représentent les
relations d’encadrement (i.e. une relation entre deux chercheurs implique que l’un
est l’encadrant de l’autre dans son PFE, Master ou Thèse).
Un extrait du cahier de charges du systèmeCollabRecommender montre que le
système à réaliser doit répondre aux besoins suivants :
1. La gestion des profils et des comptes des chercheurs : lorsqu’un chercheur
souhaite s’inscrire au système, il dépose une demande d’inscription auprès du
secrétaire du laboratoire contenant son nom, son prénom, son adresse, son
email, son sujet (de PFE, Master ou Thèse), son (ses) encadrant(s) et les mots
clés de son sujet. A la fin de chaque semaine, la secrétaire saisit les données
des demandeurs et crée de nouveaux comptes. Par la suite, elle envoie par
email à chaque demandeur les coordonnées de son compte (i.e. le login et le
mot de passe).
2. L’authentification : tout utilisateur du système (secrétaire, directeur du
laboratoire, chercheur) doit s’authentifier et est caractérisé par des droits
particuliers.
3. La visualisation dynamique du graphe : le système doit permettre la
représentation graphique du réseau social sous forme d’un graphe et
2/4
l’exécution des opérations d’affichage sur le graphe (zoom In/Out, rotation
Publicité
dans les deux sens, déplacement à l’aide du curseur).
4. La recommandation :
le système doit recommander à un chercheur
(possesseur d’un problème) des nouveaux collaborateurs. Pour ce faire, le
chercheur doit saisir les mots clés de son problème et ensuite lancer la
recherche des collaborateurs. Le système se charge de la détection des
chercheurs potentiels qui peuvent participer dans la résolution en fonction de
leurs domaines de recherche (un chercheur potentiel recommandé par le
système est un chercheur où les mots clés de son sujet sont sémantiquement
très proches des mots clés du problème à résoudre et donc probablement c’est
une personne qui est pertinente et capable de proposer une solution). Après la
recherche, le système doit afficher à gauche une liste des noms des
collaborateurs recommandés à l’utilisateur (on se limite aux dix premiers
chercheurs qui ont les similarités les plus fortes) avec leurs statuts (connecté
ou indisponible) et à droite le graphe en colorant les différents nœuds qui
correspondent aux collaborateurs recommandés.
5. La messagerie instantanée : le système doit permettre l’échange instantané de
messages textuels entre les utilisateurs connectés. Ainsi, après avoir consulté
la liste des collaborateurs recommandés, le chercheur concerné utilise la
messagerie instantanée pour envoyer un message textuel expliquant son
problème. Pour garantir la traçabilité, le système doit enregistrer les messages
échangés (chaque message est caractérisé par un identifiant, la source, la
destination et le texte envoyé). Un chercheur, qui a reçu un message
demandant l’aide dans la résolution d’un problème, peut répondre en
proposant une solution, ignorer la demande ou la supprimer.
Pour le calcul des distances sémantiques réelles entre les mots clés, le client impose
l’utilisation du WordNet Français (une base de données lexicale dont le but est de
répertorier et classifier le contenu sémantique et lexical de la langue française). Le
développeur peut accéder à cette base de données à partir des API disponibles pour
de nombreux langages de programmation. WordNet est distribuée sous une licence
libre1. Par exemple, si un chercheur lance la recherche des collaborateurs pour la
résolution d’un problème avec un mot clé « informatique répartie », et un autre
chercheur a dans les mots clés de son sujet le mot « informatique distribuée »
WordNet indique que les deux mots clés sont synonymes et donc ils ont une distance
Publicité
sémantique très élevée.
Pour la visualisation dynamique des graphes, le client impose l’utilisation de Gephi
(un outil Open Source sous la licence GPL2, développé en Java et utilisant la
1 Une licence libre est une licence qui donne la liberté d'exécuter le logiciel, d'étudier le
fonctionnement d'un programme et de l'adapter (ce qui passe par l'accès aux codes sources), de
redistribuer des copies et de publier les modifications.
2
General Public License : c’est une licence libre.
3/4
bibliothèque graphique Swing. C’est un outil portable sur les principales plateformes
à savoir Linux, Windows et Mac OS).
Travail demandé
Partie 1 : Analyse et Spécification (7pts)
1. Quel est le meilleur cycle de vie à adopter pour le développement du système
« CollabRecommender » ? justifier.
2. Identifier les acteurs du système « CollabRecommender ».
3. Exprimer les besoins fonctionnels pour chaque acteur.
4. Donner trois besoins non fonctionnels pour ce système en précisant la vérifiabilité de
chaque besoin (unité de mesure possible).
5. En adoptant une approche fonctionnelle et un axe fonctionnel, donner un diagramme
représentant la spécification du système « CollabRecommender ».
6. En adoptant une approche orientée objet et un axe fonctionnel, donner un diagramme
représentant la spécification du système « CollabRecommender ».
Partie 2 : Conception (4 pts)
1. En adoptant une vue logique, quel le meilleur style architectural représentant la
conception globale de ce système ? justifier.
2. En adoptant une vue physique, quel le meilleur style architectural représentant la
conception globale de ce système ? justifier.
Bon travail !
4/4