UNIVERSITE DE LA MANOUBA
----- -----
ECOLE NATIONALE DES
SCIENCES DE L'INFORMATIQUE
ANNEE UNIVERSITAIRE
2017-2018
EXAMEN Session Principale-El ments de r ponse
Module : G nie Logiciel 1
Niveau : II2
Date : 02 Janvier 2018
Dur e : 2H
Enseignants : R. DRIRA, N. BELLAMINE, C. BEN OTHMEN, N. BEN YAHIA, I. FLISS, M.A. MEZGHICH
Questions de r flexion (6pts)
1. Nous avons vu en cours quun processus de d veloppement de logiciel se
compose, entre autres, des activit s principales suivantes
: Analyse,
Conception, Test. D crire pour chacune de ces trois activit s la fiche suivante:
Entr es de lactivit (input)
Sorties de lactivit (output)
Description de lactivit :
i. lobjectif (Quoi)
ii. les t ches et les principes appliquer (Comment).
Analyse (total 1, 25pt)
Input : Cahier des charges du projet (0,25)
Output : Cahier des charges du logiciel (point de vue externe du syst me), document
danalyse et de sp cification (point de vue interne du syst me) (0,25)
Quoi : Comprendre
le probl me, Eliciter
les besoins, sp cifier
les besoins
(Fonctionnels, non fonctionnels (+les m triques), du domaine) (0,25)
Comment : analyser lexistant, faire des entretiens, utiliser des techniques danalyse
des besoins, crire le cahier des charges (BF, BNF), laborer le document danalyse et
de sp cification. Principes : absence dambig it , coh rence des besoins, compl tude,
etc. (t che :0,25, Principes : 0,25)
1/4
Coneption (total 1,25pt)
Input : Cahier des charges du logiciel, document danalyse et de sp cification (0,25)
Output : Document de conception : architectures Physique et Logique + document de
la conception d taill (0,25)
Quoi : Trouver une solution qui r pond aux besoins (0,25)
Comment : laborer larchitecture logique et celle physique, d tailler larchitecture
jusqu aboutir une solution bien d taill e. Principes : modularit , faible couplage,
forte coh sion, abstraction, r utilisation, r utilisabilit , encapsulation. (t che :0,25,
Principes : 0,25)
Test (total 1,25pt)
Input : Code tester, tests effecuer (0,25)
Output : Document de tests (0,25)
Quoi : Trouver des erreurs (0,25)
Publicité
Comment : effectuer les tests, comparer les r sultats attendus et les r sultats obtenus,
effectuer la mise au point. Principes : Tester t t, Tests planifi s, tests tra ables, tests
exhaustifs impossibles. (t che :0,25, Principes : 0,25)
2. Expliquer pourquoi teste-t-on les logiciels. Dapr s vous, quand les tests dun
logiciel sarr tent ? (0,25*2)
3. Quelle est la diff rence entre les styles darchitecture MVC et 3-tiers? Dans
quel(s) cas choisit-on le premier et/ou le deuxi me style architectural ?
Expliquer. (diff rence : 0,5, choix : 0,5)
4. Consid rons le cas de conception dun logiciel de dessin permettant son
utilisateur de placer des formes g om triques sur un canevas et denregistrer
le r sultat dans un format graphique de son choix. Supposons que lon veuille
autoriser l dition dune figure via la collaboration (concurrente) de plusieurs
utilisateurs. La figure peut alors tre stock e dans une base de donn es pour
autoriser la r solution des modifications concurrentes conflictuelles.
Dapr s vous, quel est le style architectural le plus ad quat permettant
dalerter les utilisateurs lorsquune contrainte voulue sur le dessin nest plus
v rifi e ? Justifier.
Une solution possible : MVC. Justif : modification des donn es peut tre
notifi e aux vues. (style : 0,5+Justif :0,25)
Exercice1 (5pts)
2/4
Cette tude a pour objectif dautomatiser
correspondance.
Fonctionnement actuel de la billetterie
la gestion dune billetterie par
Lorsquune personne souhaite acheter des billets pour un spectacle, elle doit
transmettre une demande pr cisant ses nom et pr nom, son adresse et son num ro
de t l phone. Elle doit galement pr ciser le spectacle choisi et le nombre de billets
d sir . Chaque demande doit tre accompagn e du paiement correspondant lachat
souhait , ce paiement s'effectue toujours par ch que. Les demandes de billets par
correspondance doivent tre re ues par le service de billetterie avant une date de
cl ture d finie. Si la demande arrive apr s cette date, le service de billetterie envoie
un courrier de refus accompagn du paiement.
A la r ception de la demande, le service de billetterie v rifie la demande et si le
nombre de places demand est disponible, il envoie les billets au demandeur. Sil ny
a plus de place, un courrier est transmis au demandeur accompagn du paiement. Si
le nombre de place ne peut pas satisfaire la demande, le service de billetterie contacte
le demandeur pour savoir sil accepte un nombre inf rieur de billets. Le service
pr cise lors de la demande de modification le nouveau paiement effectuer :
Si le demandeur accepte la modification du nombre de billets, la r ponse doit tre
accompagn e du nouveau paiement (ch que). Les billets sont envoy s au demandeur
accompagn s du ch que correspondant au paiement initial.
Si le demandeur refuse, un courrier est transmis accompagn du paiement initial.
Evolution envisag e : Automatisation de la gestion de la demande
Le service de billetterie d cide de mettre en place un site Web pour g rer les
demandes de billets. Si la date de cl ture est d pass e, il nest plus possible de
r server des places pour le spectacle. Le site permet un demandeur de saisir les
diff rentes donn es n cessaires et de choisir le spectacle et le nombre de places. La
demande ne peut tre valid e si certaines donn es sont manquantes ou si le nombre
Publicité
de places disponibles est inf rieur au nombre de places demand es.
Chaque soir, le site transmet au service de r servation, l'ensemble des demandes
faites durant la journ e.
Si la demande est valid e par le service r servation, un num ro de dossier est
transmis au demandeur. Ce dernier doit ensuite payer en ligne ses billets en se
servant du num ro de dossier. Des billets lectroniques sont ensuite envoy s la
r ception du paiement.
Travail faire
1. Identifier les acteurs. (0,5pt)
Acteurs primaires : Demandeur, service de r servation. Les tudiants
peuvent mettre comme acteur secondaire le R seau bancaire (pour le
paiement en ligne)
3/4
2. Ecrire les besoins fonctionnels par acteur. (1,5pt)
Le syst me doit permettre au Demandeur de :
BF1 : Demander des billets
BF1.1- Saisir informations personnelles
BF1.2- Choisir spectacle
BF1.3- Pr ciser le nombre de billets demand
BF2 :Payer en ligne
Le syst me doit permettre au Service de r servation de :
BF3 : Valider les demandes
3. Proposer deux besoins non fonctionnels pertinents bien formul s pour ce
syst me. (0,5*2)
Exemples de BNF :
Rapidit : le temps de r ponse du syst me ne doit pas d passer 2s pour
toutes les fonctionnalit s.
Disponibilit : le syst me doit tre disponible 99% du temps.
4. Proposer une architecture logique de ce syst me tout en pr cisant le(s)
style(s) architectural(aux) utilis (s).
Ils peuvent choisir : MVC, 3-couches, 5-couches (1pt)
5. Proposer une architecture physique de ce syst me tout en pr cisant le style
architectural utilis .
Ils peuvent proposer : 3-tiers ou 2 Tiers avec un client l ger (1pt)
Exercice 2 (5pts)
1. Pour avoir une coh sion forte, une m thode doit avoir une coh sion
fonctionnelle et une classe doit correspondre une coh sion mod le.
a. Donner un exemple de code java dune m thode qui repr sente la
coh sion fonctionnelle. (0,5pt)
Ils doivent donner le code dune m thode qui fait une t che unique
b. Donner un exemple de code java dune classe qui repr sente la
coh sion mod le. (0,5pt)
Ils doivent donner un exemple de classe avec des attributs qui
caract risent directement la classe et des m thodes qui manipulent
toutes ces attributs.
2. Donner, en java, deux exemples d'instructions impliquant un couplage fort
entres modules. (2* 0,5pt)
Exemples de r ponse :
D claration de variables globales avec Static et les m thodes utilisent
Publicité
directement ces variables globales au lieu de recevoir en param tre les valeurs
qui leur sont n cessaires
D claration dattributs public et acc s directment ces attributs partir dune
autre classe
4/4
3. Donner le type de couplage entre les classes A et B et entre les classes C et D.
(2* 0,5pt)
public class A extends B { & } couplage dh ritage
public class C { .. D d; ..} Couplage de composant
4. Dapr s vous, laquelle des deux relations suivantes : g n ralisation (h ritage)
ou la d pendance (utilisation), se traduit par un couplage plus fort ?
Argumenter votre r ponse. (0,5 : r ponse, 0,5 : Justif)
Lh ritage se traduit par un couplage plus fort. Dans le cas de la d pendance :
une classe poss de une r f rence sur une autre classe et g n ralement va
invoquer les m thodes de la classe r f renc e. Une mise jour de la classe
r f renc e ne va pas beaucoup impacter la classe qui la r f rence par rapport
lh ritage : la structure et les m thodes des sous classes d pendent fortement
des super classes.
5. D finir bri vement les m triques LCOM et CBO en expliquant le r le quelles
peuvent jouer dans la conception dun logiciel. (0,5 *2)
LCOM : calculer le manque de coh sion dans une classe+ l tudiant peut
donner la formule et lexpliquer.
CBO : calculer le nombre de liens de couplage dune classe.
Ces deux m triques permettent daider le concepteur a valuer la forte
coh sion et le faible couplage dune conception orient e objet : les valeurs de
LCOM et CBO donnent juste des indications mais linterpr tation d finitive
des valeurs trouv es est faite par le concepteur.
Exercice3 (4pts)
On cherche tester un programme dont on attend le comportement suivant : Le
programme lit un mot partir du clavier. Si le mot a un nombre pair de lettres, le
programme crit L contient un nombre pair de lettres Sinon le programme crit L
contient un nombre impair de lettres.
1. D finir les classes d' quivalence correspondantes chaque entr e et proposer
un jeu de test pertinent pour chaque classe. (0,5pt)
Classe1 : mot avec un nombre pair de lettres, JT : mot= test
Classe2 : mot avec un nombre impair de lettres, JT : mot= tests
2. Enrichir le jeu de test propos afin de prendre en consid ration les tests aux
limites. (0,25pt)
Limite1 : mot vide
Limite2 : mot avec un seul caract re
5/4
Limite2 : mot avec deux caracat res
3. Soit le code suivant o Mot est une s quence de caract res + marque de fin
rang dans un tableau de [0..N]
1. M <- LireMot
2. L = 0
3. Tant que M != MarqueDeFin faire
4. L = L + 1
5. Fin tantque
Publicité
6. Si (L mod 2) = 0
7. Alors Ecrire(L contient un nombre pair de lettres)
8. Sinon Ecrire(L contient un nombre impair)
9. Ecrire(de lettres)
10. FinSi
11. Fin
a. Construire le graphe de flot de contr le associ ce code en respectant la
num rotation des instructions. (0,5pt)
1
2
3
4
5
6
7
8
9
10
11
b. Par quelle(s) suite(s) de nSuds faut-il passer pour satisfaire le crit re de
couverture des instructions. Donner un jeu de test satisfaisant ce crit re.
(0,5pt)
Exemple de Suite de nSuds : Ch1 : 1-2-3-4-5-3-6-7-10-11 JT= a
Ch2 : 1-2-3-6-8-9-10-11 JT= mot vide
Il faut un JT par suite de nSud propos
6/4
c. On appelle crit re de couverture des i-chemins, le crit re qui garantit que lon
passe sur tous les chemins possibles en r p tant de 0 i fois chaque boucle.
Par quelle suite de nSuds faut-il passer pour satisfaire le crit re de couverture
des 2-chemins? Donner un jeu de test qui satisfait ce crit re. (0,5 pt)
0-Chemin : Ch2 JT=mot vide
1-Chemin : Ch1+1-2-3-4-5-3-6-8-9-10-11
2-Chemin : 1-2-3-4-5-3-4-5-3-6-8-9-10-11 + 1-2-3-4-5-3-4-5-3-6-7-10-11 JT= aa
d. Calculer le nombre cyclomatique de McCabe avec deux m thodes diff rentes
en justifiant la r ponse. Que repr sente ce nombre ?(0,75pt)
Nombre cyclomatique= E-N+2=11-12+1=3
Nombre cyclomatique= nombre de r gions=3
=Nombre de chemins ind pendants = le nombre maximum de tests effectuer
pour s'assurer de lex cution de toutes les instructions au moins une fois.
e. R pondre par Vrai ou Faux en justifiant (ou en donnant un contre-
exemple) (0,25*4)
a. La couverture des instructions implique la couverture des arcs. Faux
b. La couverture des arcs implique la couverture des instructions. Vrai
c. La couverture des chemins implique la couverture des arcs. Vrai
d. La couverture des chemins implique la couverture des instructions.
Vrai
Bon travail !
7/4