Examen – Session de Rattrapage en Génie Logiciel I

École Nationale des Sciences de l'Informatique (ENSI)
1/4
100%
Rendu du PDF...
Page 1 sur 4Lecteur de document UniversityLib

Examen – Session de Rattrapage en Génie Logiciel I

École Nationale des Sciences de l'Informatique (ENSI) · Génie Logiciel, Programmation, Systèmes d'information · exam

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