Voici la correction complète de votre examen blanc. Comme pour l’examen réel, j’ai structuré la réponse pour qu’elle soit à la fois un corrigé technique et un outil d’apprentissage.
CORRIGÉ DE L’EXAMEN BLANC : GÉNIE LOGICIEL (GL)
PARTIE 1 : MODÉLISATION STRUCTURÉE « MERISE » (25 points)
A - CONNAISSANCES DE COURS (7 pts)
1. Définitions :
- Clé Primaire : Attribut (ou groupe d’attributs) qui permet d’identifier de manière unique et certaine un enregistrement dans une table.
- Clé Étrangère : Attribut dans une table qui fait référence à la clé primaire d’une autre table, permettant de créer un lien entre elles.
- Relation (Association) : Lien sémantique entre deux ou plusieurs entités (ex: un Adhérent emprunte un Livre).
- Modèle Conceptuel (MCD) : Représentation graphique de la structure des données sans contraintes techniques, centrée sur les règles de gestion métier.
2. Différence MCD vs MLD : Le MCD est une vue métier (entités, relations, cardinalités) abstraite. Le MLD est la traduction de ce modèle en une structure de tables (clés, tables de jointure) prête à être implémentée dans un système informatique.
B - ÉTUDE DE CAS : Gestion d’une Bibliothèque (18 pts)
1. Dictionnaire des données (Extrait)
| Nom Symbolique | Signification | Type | Longueur |
|---|---|---|---|
ISBN |
Code unique du livre | Chaîne | 13 |
TITRE_LIVRE |
Titre de l’ouvrage | Chaîne | 50 |
ANNEE_PUB |
Année de parution | Entier | 4 |
GENRE_LIVRE |
Catégorie (Roman, etc.) | Chaîne | 20 |
CODE_AUT |
Identifiant de l’auteur | Entier | 5 |
NOM_AUT |
Nom de l’auteur | Chaîne | 30 |
NAT_AUT |
Nationalité | Chaîne | 20 |
NUM_CARTE |
Numéro de l’adhérent | Entier | 8 |
NOM_ADHE |
Nom de l’adhérent | Chaîne | 30 |
DATE_DEBUT |
Date de début d’emprunt | Date | - |
DATE_RETOUR |
Date de retour prévue | Date | - |
2. Schéma du MCD (Description des relations)
- Entités :
LIVRE,AUTEUR,ADHERENT. - Relations :
ECRIRE: EntreLIVRE(1,N) etAUTEUR(1,N) $\rightarrow$ Relation Plusieurs-à-Plusieurs.EMPRUNTER: EntreADHERENT(0,N) etLIVRE(0,1) $\rightarrow$ Relation Un-à-Plusieurs.- Attributs de relation :
DATE_DEBUTetDATE_RETOURse placent sur la relationEMPRUNTER.
3. Modèle Logique des Données (MLD)
AUTEUR(code_auteur, nom, nationalité)ADHERENT(num_carte, nom, prenom, adresse)LIVRE(isbn, titre, annee, genre, #num_carte) (La clé de l’adhérent migre ici car le livre est lié à un seul adhérent)ECRIRE(#isbn, #code_auteur) (Table de jointure créée par la relation N:N)
💡 Méthodologie (Merise) :
- Règle d’or : Si une relation est N:N (plusieurs-à-plusieurs), elle devient une table de jointure dans le MLD.
- Règle d’or 2 : Si une relation est 1:N, la clé primaire du côté “1” devient une clé étrangère du côté “N”.
PARTIE 2 : MODÉLISATION OBJET UML (25 points)
A - CONNAISSANCES DE COURS (8 pts)
- Encapsulation : Technique consistant à masquer les détails internes d’un objet et à n’exposer que ce qui est nécessaire via des méthodes publiques (protection des données).
- Classe vs Objet : La Classe est le plan de construction (le moule) ; l’Objet est l’instance concrète créée à partir de ce plan (le gâteau).
- Héritage : Capacité d’une classe à récupérer les attributs et méthodes d’une autre classe (ex: une classe
Voiturehérite de la classeVehicule). - Polymorphisme : Capacité d’une méthode à se comporter différemment selon l’objet qui l’appelle (ex: la méthode
manger()est différente pour unChienet unOiseau).
B - CAS PRATIQUE : Commande de Pizza (17 pts)
1. Diagramme de Cas d’Utilisation (Description)
- Acteurs : Client, Système de Cuisine, Livreur, Système de Paiement.
- Cas d’utilisation :
Parcourir le menuCommander Pizza(inclutChoisir Mode de Paiement)Vérifier Disponibilité(effectué par le Système)Livrer Commande(effectué par le Livreur)
2. Diagramme de Séquence (Scénario Nominal)
Client -> Application: Sélectionne pizzas.Client -> Application: Valide commande.Application -> Système Cuisine: Demande vérification ingrédients.Système Cuisine -> Application: Confirmation disponibilité.Application -> Client: Demande mode de paiement.Client -> Application: Sélectionne “Carte”.Application -> Système Paiement: Traite transaction.Système Paiement -> Application: Confirmation paiement.Application -> Livreur: Notifie nouvelle commande.Livreur -> Client: Confirme livraison.
PARTIE 3 : ALGORITHMIQUE (20 points)
A - SYNTAXE ET CONCEPTS (8 pts)
- Définitions :
- Récursion : Fonction qui s’appelle elle-même pour résoudre un problème plus petit.
- Pile : Structure LIFO (Dernier entré, premier sorti).
- File : Structure FIFO (Premier entré, premier sorti).
- Arbre binaire : Structure hiérarchique où chaque nœud a au maximum deux enfants.
- Avantage Liste Chaînée : L’insertion est immédiate (il suffit de changer un pointeur) sans avoir à décaler tous les autres éléments comme dans un tableau.
- Fichier de données : Un support de stockage permanent sur disque. On l’utilise pour conserver les informations après l’arrêt du programme.
B - ÉCRITURE D’ALGORITHMES (12 pts)
1. Puissance récursive ($a^n$) :
Fonction Puissance(a : Réel, n : Entier) : Réel;
Début
Si (n = 0) Alors Retourner 1;
Sinon Retourner a * Puissance(a, n - 1);
Fin;
2. Somme et Moyenne (Arrêt sur 0) :
Algorithme Somme_Moyenne;
Variables n, i : Entier; s, val, moy : Réel;
Début
s <- 0; n <- 0;
Ecrire("Saisissez un nombre (0 pour arrêter) :"); Lire(val);
TantQue (val != 0) Faire
s <- s + val;
n <- n + 1;
Lire(val);
FinTantQue;
Si (n > 0) Alors
moy <- s / n;
Ecrire("Somme : ", s, " Moyenne : ", moy);
Sinon
Ecrire("Aucune donnée saisie.");
FinSi;
Fin;
3. Filtrage Étudiants :
Procédure Afficher_Admis(T : Tableau d'Etudiants, taille : Entier);
Variables i : Entier;
Début
Pour i de 1 à taille Faire
Si (T[i].note > 10) Alors
Ecrire(T[i].nom);
FinSi
FinPour;
Fin;
PARTIE 4 : MANIPULATION DES DONNÉES - SQL (10 points)
-
Sigles :
- DBMS : Database Management System (SGBD).
- SQL : Structured Query Language.
- DML : Data Manipulation Language (
INSERT,UPDATE). - DDL : Data Definition Language (
CREATE,ALTER). - ACID : Atomicity, Consistency, Isolation, Durability (Propriétés d’une transaction).
-
Requête Prix (10-50) :
SELECT * FROM PRODUIT WHERE prix BETWEEN 10 AND 50; -
Requête Augmentation :
UPDATE PRODUIT SET prix = prix * 1.10 WHERE id_categorie = 5; -
Requête Suppression :
DELETE FROM PRODUIT WHERE stock = 0;
PARTIE 5 : INGÉNIERIE DU LOGICIEL (20 points)
-
Cycle de vie :
- Analyse : Comprendre les besoins du client.
- Conception : Créer l’architecture technique (UML/Merise).
- Implémentation : Codage du logiciel.
-
Cascade vs Agile :
- Cascade : Linéaire, rigide, on ne voit le produit qu’à la fin.
- Agile : Itératif, flexible, on livre des morceaux de logiciel régulièrement pour s’adapter au client.
-
Tableau des Tests :
| Type de Test | Objectif | Approche |
|---|---|---|
| Test Unitaire | Vérifier une fonction isolée | Boîte Blanche |
| Test d’Intégration | Vérifier l’interaction entre modules | Boîte Blanche / Noire |
| Test d’Acceptation | Vérifier si le produit répond aux besoins client | Boîte Noire |
- Cahier des Charges : Document qui liste toutes les exigences d’un projet. Il est indispensable pour éviter les malentendus entre le client et le développeur et servir de base juridique.
Prêt à passer à la suite ?
Vous avez terminé cette leçon sur CORRIGÉ DE L'EXAMEN BLANC : GÉNIE LOGICIEL (GL). Continuez votre apprentissage avec la prochaine leçon ou explorez d'autres formations.