Exam on Software Engineering

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

Exam on Software Engineering

École Nationale des Sciences de l'Informatique (ENSI) · Programming, Software Development, Architecture · exam

Browse all programmation documents

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)

Advertisement

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

Advertisement

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

Advertisement

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

Advertisement

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