UNIVERSITE DE LA MANOUBA
-----¤¤¤¤-----
ECOLE NATIONALE DES
SCIENCES DE L'INFORMATIQUE
ANNEE UNIVERSITAIRE
2014-2015
Examen – Session de Rattrapage
Matière : Génie Logiciel I
Niveau : II2
Date : 26 Mai 2015
Durée : 2H
Documents : non autorisés
Enseignantes : R. DRIRA, N. BEN YAHIA, R. AMRI, S. ZBIDI
La précision, la consistance, la clarté seront appréciées
Exercice (8 points)
1. Définir et comparer les approches de test statique et test dynamique. Donner des
exemples de techniques utilisées pour chaque approche. (1pt)
2. Définir et comparer les tests boîte noire et les tests boîte blanche. Donner des
exemples de techniques utilisées pour chaque approche. (1pt)
3. Proposer un graphe de contrôle G1 et des données de test DT1 minimales
(nombre minimum de DT) montrant que le critère de couverture des instructions
est insuffisant pour détecter une erreur. (1,5pts)
4. Proposer un graphe de contrôle G2 et des données de test DT2 minimales
montrant que le critère de couverture des arcs est insuffisant pour détecter une
erreur. (1,5pts)
5. Soit le code suivant qui calcule l’inverse de la somme des éléments, d’indice entre
inf et sup, d’un tableau A contenant des entiers strictement positifs :
lire (inf, sup) ;
i :=inf ;
Advertisement
som :=0 ;
tant que (i<= sup) faire
début
som :=som+A[i] ;
i :=i+1;
fin
écrire (1/som)
a) Donner le graphe de contrôle correspondant à ce code en numérotant les
nœuds. (1pt)
b) On appelle critère de couverture des i-chemins, le critère qui garantit que l’on
passe sur tous les chemins possibles en répétant de 0 à i fois chaque boucle.
Par quelle suite de nœuds faut-il passer pour satisfaire le critère de couverture
des 2-chemins? Donner des données de test qui satisfont ce critère. (2pts)
1/4
Étude de cas : Un système de gestion de réunions virtuelles (12 points)
Il s'agit de concevoir et réaliser une application permettant de faire des réunions
virtuelles multimédia sur Internet. L'objectif de cette application est de permettre
d'imiter le plus possible le déroulement de réunions classiques de travail.
L’application devra permettre de planifier et de gérer le déroulement de plusieurs
réunions simultanées sur plusieurs plateformes (Mac, Windows, Unix) afin de
permettre à des utilisateurs distants d’organiser des réunions virtuelles ou y
participer.
Après s'être connecté au serveur (à l'aide d'un nom de login et d'un mot de passe
mémorisé par le système), un utilisateur a la possibilité de planifier des réunions
virtuelles (choix d'un nom, définition du sujet, date de début et durée prévue, ordre
du jour), de consulter les détails d'organisation d'une réunion, de les modifier
(seulement
l'organisateur), d'ouvrir et de clôturer une réunion (seulement
l'animateur), d'entrer (virtuellement) dans une réunion précédemment ouverte, et
Advertisement
d'en sortir. En cours de réunion, un participant peut demander à prendre la parole.
Quand elle lui est accordée, il peut entrer le texte d'une intervention qui sera
transmise en ``temps-réel'' par le serveur à tous les participants de la réunion.
Plusieurs sortes de réunions doivent pouvoir être organisables :
– Réunions standards, avec un organisateur qui se charge de la planification de
la réunion et désigne un animateur chargé de choisir les intervenants
successifs parmi ceux qui demandent la parole.
– Réunions privés, qui sont des réunions standards dont l'accès est réservé à un
groupe de personnes défini par l'organisateur.
– Réunions démocratiques, qui sont planifiées comme des réunions standards,
mais où les intervenants successifs sont choisis automatiquement par le
serveur sur la base d'une politique premier demandeur-premier servi.
Partie1
1. Proposer deux cycles de vie qui conviennent pour mener le développement de
cette application. Justifiez votre réponse. (1,5pt)
2. Identifier les acteurs de cette application. (1pt)
3. Déterminer pour chaque acteur les besoins fonctionnels. (1,5pt)
4. Donner deux besoins non fonctionnels vérifiables. (1pt)
5. Proposer un diagramme de contexte pour cette application. (2pts)
6. Proposer une architecture logique pour cette application. Justifiez votre
réponse. (1pt)
7. Proposer une architecture physique pour cette application. Justifiez votre
réponse. (1pt)
2/4
Partie2
Soit la classe suivante :
/ classe qui permet la gestion des différentes réunions virtuelles /
import ….
public class MeetingManager {
Advertisement
//Liste des utilisateurs connectés
List<object> listActiveUser
//Liste des réunions
List<object> listMeeting
//Liste des réunions en cours
List<object> listActiveMeeting
public void connectUser(String login, String password)
{
//(1) Ouverture de la connexion SQL et accès à la base pour vérifier les
paramètres de connexion de l’utilisateur
//(2.a)Créer et envoyer un message d’erreur
//(2.b) ou bien créer et afficher l’écran d’accès aux réunions
//(2.c) ou bien créer et afficher l’écran de création d’un profil
}
public void disConnectUser(String login)
{
// Fermer la session et déconnecter l’utilisateur
}
public void addUser(object informationUser)
{
// Vérifier les données
// Ouverture de la connexion SQL, accéder à la base et ajouter un utilisateur
}
//Renvoyer la liste des réunions auxquelles l’utilisateur est membre
public void checkUserMeeting(object user) { … }
//Connecter l’utilisateur à une réunion
public void accessMeeting(object user) { … }
//Envoyer l’intervention d’un participant
public void sendIntervention(object user, object intervention, object meeting)
Advertisement
{
//(1) Ouverture de la connexion SQL, vérifier les paramètres de connexion de
l’utilisateur
//(2.a)Créer et envoyer un message d’erreur
//(2.b) ou bien diffuser l’intervention et l’enregistrer dans la BB
}
3/4
//Ajout d’une réunion
public void addMeeting(String login, String password, object infoMeeting)
{
//(1) Connexion à la BDD et vérifier les paramètres de connexion de
l’utilisateur
//(2.a)Créer et envoyer un message d’erreur
//(2.b) ou bien créer et afficher l’écran de création d’un profil
//(3) Vérifier les données de la réunion à créer
//(3.a)Créer et envoyer un message d’erreur
//(3.c) ou bien créer et afficher l’écran de validation de la création de la réunion
}
}
8. Quelles sont les problèmes de couplage et de cohésion liés à cette classe ?
(1,5pts)
9. Proposez une solution pour palier à ces problèmes. (1,5pts)
Bon travail !
4/4