CORRIGÉ GÉNÉRAL : EXAMEN NATIONAL BTS 2023 (GÉNIE LOGICIEL)
PARTIE 1 : MODÉLISATION STRUCTURÉE « MERISE » (25 points)
A. Connaissances de cours
1. Définitions :
- Entité : Objet ou concept du monde réel (ex: Client, Matériel) ayant une existence propre et sur lequel on souhaite stocker des données.
- Cardinalité : Nombre de fois minimum et maximum qu’une occurrence d’une entité peut participer à une relation (ex: 1,N ou 0,1).
- SGBDR : Système de Gestion de Base de Données Relationnelle. Logiciel permettant de créer, manipuler et gérer des bases de données structurées en tables (ex: MySQL, PostgreSQL).
- Propriété : Information élémentaire qui caractérise une entité (ex: le Nom pour l’entité Client).
2. Caractéristiques de la méthode MERISE :
- Approche par niveaux (Conceptuel, Logique, Physique).
- Séparation des Données (ce que le système stocke) et des Traitements (ce que le système fait).
- Méthode cyclique et structurée pour la conception de systèmes d’information.
B. Étude de Cas : Établissement R.E.I.
1) Dictionnaire des données (Extrait représentatif)
| Nom Symbolique | Signification | Type | Longueur |
|---|---|---|---|
ID_CLIENT |
Code unique du client | Entier | 5 |
NOM_CLIENT |
Nom du client | Chaîne | 30 |
TEL_CLIENT |
Numéro de téléphone | Chaîne | 15 |
CODE_MAT |
Code du matériel | Entier | 5 |
TYPE_MAT |
Type de matériel | Chaîne | 20 |
NUM_SERIE |
Numéro de série | Chaîne | 25 |
DATE_DEPOT |
Date de réception | Date | - |
DATE_FIN_REP |
Date de fin de réparation | Date | - |
💡 Méthodologie (Dictionnaire) : Pour chaque information citée dans le texte, créez une ligne. Ne confondez pas le nom (ce qu’on voit) et le nom symbolique (ce qu’on écrit dans le code).
2) Schématisation du MCD (Modèle Conceptuel des Données)
- Entités :
CLIENT(Code_Client, Nom, Adresse, Tel),MATÉRIEL(Num_Serie, Type, Marque, Modèle),ATELIER(Id_Atelier, Nom_Atelier),CHEF_ATELIER(Id_Chef, Nom),FICHE_TRAVAIL(Num_Fiche, Date_Depot, Date_Fin, Détails_Pièces, Temps_Main_Oeuvre, Commentaire). - Relations :
CLIENT--(1,N)-- [Posséder] --(1,1)--MATÉRIELMATÉRIEL--(1,1)-- [Concerner] --(1,N)--FICHE_TRAVAILATELIER--(1,N)-- [Traiter] --(1,1)--FICHE_TRAVAILCHEF_ATELIER--(1,1)-- [Gérer] --(1,N)--ATELIER
3) Modèle Logique des Données (MLDR)
CLIENT(Code_Client, Nom, Adresse, Tel)ATELIER(Id_Atelier, Nom_Atelier, #Id_Chef)CHEF_ATELIER(Id_Chef, Nom)MATÉRIEL(Num_Serie, Type, Marque, Modèle, #Code_Client)FICHE_TRAVAIL(Num_Fiche, Date_Depot, Date_Fin, Détails, Temps, Commentaire, #Num_Serie, #Id_Atelier)
🔍 Analyse pas à pas (MLDR) :
- La relation
(1,1)devient une clé étrangère (#) dans la table de l’entité côté “plusieurs”. - La relation
(1,N)entre Client et Matériel signifie que leCode_Clientmigre dans la tableMATÉRIEL.
PARTIE 2 : MODÉLISATION OBJET UML (25 points)
A. Connaissances de cours
1. Différence fondamentale (Procédurale vs OOP) : La programmation procédurale repose sur une suite d’instructions (fonctions) qui manipulent des données, tandis que l’Orientée Objet (OOP) regroupe les données et les comportements au sein d’unités appelées Objets.
2. Composition vs Agrégation :
- Composition : Relation de force. Si l’objet “contenant” est détruit, l’objet “contenu” meurt aussi (ex: un Bâtiment et ses Pièces).
- Agrégation : Relation de faiblesse. L’objet “contenu” peut exister sans le contenant (ex: un Professeur et une Université).
3. Interface en Java : C’est un contrat de comportement. Elle définit une liste de méthodes que les classes doivent obligatoirement implémenter, sans dire comment elles doivent le faire. Elle sert à assurer le polymorphisme.
4. Surcharge vs Redéfinition :
- Surcharge (Overloading) : Même nom de méthode, mais paramètres différents (type ou nombre) au sein de la même classe.
- Redéfinition (Overriding) : Même nom et mêmes paramètres, mais on modifie le comportement d’une méthode héritée d’une classe parente dans une classe enfant.
B. Cas pratique (Description des Diagrammes)
1. Diagramme de Cas d’Utilisation (Gestion Stock) :
- Acteurs : Commerçant (Principal), Fournisseur (Secondaire).
- Cas d’utilisation (Use Cases) :
Éditer fiche fournisseurAjouter article(avec une relation<<include>>versÉditer fiche fournisseursi le fournisseur n’existe pas).Éditer inventaire(incluantImprimer,Effacer,Éditer fiche article).
2. Diagramme de Séquence (Distributeur de billets - Cas Nominal) :
- Objets :
Client,Distributeur (ATM),Banque. - Messages :
Client -> ATM: Insérer carte.ATM -> Client: Demander code.Client -> ATM: Saisir code.ATM -> Banque: Demande autorisation (Solde).Banque -> ATM: Solde autorisé.ATM -> Client: Proposer montants.Client -> ATM: Saisir montant.ATM -> Client: Demander ticket ?Client -> ATM: Oui.ATM -> Client: Éjecter carte + Délivrer billets/ticket.
PARTIE 3 : ALGORITHMIQUE ET STRUCTURES DE DONNÉES (20 points)
A. Syntaxe et Concepts
1. Pile vs File :
- Pile (Stack) : Structure LIFO (Last In, First Out). Le dernier arrivé est le premier sorti (comme une pile d’assiettes).
- File (Queue) : Structure FIFO (First In, First Out). Le premier arrivé est le premier sorti (comme une file d’attente au guichet).
2. Avantages/Inconvénients (Déjà traité précédemment).
3. Avantages des fichiers : Permettent la persistance des données (les données ne sont pas perdues à la fermeture du programme) et permettent de manipuler des volumes de données dépassant la mémoire vive (RAM).
4. Liste chaînée : Une suite de nœuds où chaque nœud contient une donnée et un lien (pointeur) vers le suivant. On l’utilise pour sa flexibilité de taille.
5. Fonction récursive ($U_n$) :
Fonction Calcul_Suite(n : Entier) : Entier;
Début
Si (n = 0) Alors
Retourner 1;
Sinon
Retourner (5 * Calcul_Suite(n - 1)) + 3;
FinSi
Fin;
6. Moyenne de $n$ notes :
Algorithme Moyenne_Notes;
Variables n, i : Entier; somme, note : Réel;
Début
Ecrire("Combien de notes ?"); Lire(n);
somme <- 0;
Pour i de 1 à n Faire
Ecrire("Note ", i, ":"); Lire(note);
somme <- somme + note;
FinPour;
Ecrire("Moyenne : ", somme / n);
Fin;
B. Écriture d’algorithmes
1. Somme de suite terminée par -1 :
Algorithme Somme_Jusqua_Moins_1;
Variables n, somme : Réel;
Début
somme <- 0;
Ecrire("Entrez un nombre (-1 pour arrêter) :"); Lire(n);
TantQue (n != -1) Faire
somme <- somme + n;
Lire(n);
FinTantQue;
Ecrire("Somme totale : ", somme);
Fin;
2. Factorielle récursive :
Fonction Factorielle(n : Entier) : Entier;
Début
Si (n = 0 OU n = 1) Alors Retourner 1;
Sinon Retourner n * Factorielle(n - 1);
Fin;
3. Ordre Alphabétique :
Fonction ordreAlpha(ch1 : Chaine, ch2 : Chaine) : Booleen;
Début
Si (ch1 < ch2) Alors Retourner Vrai;
Sinon Retourner Faux;
Fin;
4. Compte de Marie (Mathématique/Boucle) : Note : Chaque année $i$, on ajoute $100 + 2i$.
Algorithme Compte_Marie;
Variables n, i : Entier; somme : Réel;
Début
Ecrire("n-ième anniversaire ?"); Lire(n);
somme <- 0;
Pour i de 1 à n Faire
somme <- somme + (100 + 2 * i);
FinPour;
Ecrire("Somme totale : ", somme);
Fin;
PARTIE 4 : MANIPULATION DES DONNÉES (SQL) (10 points)
1. Sigles et Instructions :
- DDL (Data Definition Language) :
CREATE,DROP,ALTER. - DML (Data Manipulation Language) :
INSERT,UPDATE,DELETE. - DQL (Data Query Language - souvent appelé DDL par erreur dans l’épreuve) :
SELECT. - DCL (Data Control Language) :
GRANT,REVOKE. - TCL (Transaction Control Language) :
COMMIT,ROLLBACK.
2. Recherche OUMA :
SELECT * FROM etudiant WHERE nom LIKE 'OUMA%';
3. Contrainte d’âge :
ALTER TABLE etudiant ADD CONSTRAINT check_age CHECK (age <= 30);
PARTIE 5 : INGÉNIERIE DU LOGICIEL (20 points)
1. Définitions :
- Génie logiciel : Application de méthodes d’ingénierie pour produire des logiciels de qualité.
- Cahier des charges : Document contractuel définissant les besoins et contraintes du client.
- Mock : Objet factice utilisé en test pour simuler le comportement d’un composant réel.
- Cycle de vie : Étapes de la création d’un logiciel (Analyse $\rightarrow$ Conception $\rightarrow$ Code $\rightarrow$ Test $\rightarrow$ Maintenance).
2. Qualités d’un cahier des charges : Clair, Complet, Réaliste, Non ambigu, Testable.
3. Modèle en cascade :
- Avantages : Structure claire, facile à gérer, étapes bien définies.
- Inconvénients : Très rigide, effet tunnel (on ne voit le produit qu’à la fin), difficile de revenir en arrière.
4. Tableau des Tests (Complété) :
| Test | Portée | Catégorie | Exécutant |
|---|---|---|---|
| Unitaires | Petites portions isolées | Boîte blanche | Développeur |
| Fonctionnels | Produit | Boîte noire | Testeur |
| Système | Produit complet | Boîte noire | Testeur |
| Bêta | Produit / Env. réel | Boîte noire | Utilisateur final |
5. Tests en boîte blanche :
- Avantages : Permet de vérifier la structure interne, de trouver des chemins de code inutilisés, d’optimiser les performances.
- Inconvénients : Très coûteux en temps, nécessite une expertise technique élevée, ne garantit pas que les besoins du client sont satisfaits.
Prêt à passer à la suite ?
Vous avez terminé cette leçon sur CORRIGÉ GÉNÉRAL : EXAMEN NATIONAL BTS 2023 (GÉNIE LOGICIEL). Continuez votre apprentissage avec la prochaine leçon ou explorez d'autres formations.