0% ont trouvé ce document utile (0 vote)
3 vues4 pages

Modélisation UML et Bases de Données

Transféré par

foumiyanis
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues4 pages

Modélisation UML et Bases de Données

Transféré par

foumiyanis
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Dossier 1: Modélisation UML

1. Identifier les acteurs du système.


●​ Client : Un particulier ou un employé qui s'inscrit à des sessions de formation. Il peut
consulter la liste des formations sans se connecter, discuter avec un téléconseiller,
s'inscrire pour être informé des nouvelles offres, consulter les détails des sessions de
formation, annuler une inscription tant que la session n'a pas commencé, et payer des
factures avec son moyen de paiement préféré.
●​ Téléconseiller : Un agent du centre de formation avec qui le client peut discuter. Il peut
éditer une ou plusieurs factures à la suite d'une inscription.
●​ Responsable de formation : Il réalise toutes les actions d'un téléconseiller. Il est
également chargé d'envoyer la confirmation de paiement et d'éditer des statistiques pour
relancer les clients qui n'ont pas soldé leurs paiements.
●​ Formateur : Il est affecté à une session de formation.
2. Élaborer le diagramme des cas d'utilisation
Ce diagramme représente les interactions entre les acteurs et le système.
●​ Acteur : Client
○​ Consulter les formations : Le client peut consulter la liste des formations du
catalogue. C'est un cas d'utilisation qui peut être exécuté sans connexion.
○​ S'inscrire à une formation : Le client s'inscrit à une session de formation.
○​ Annuler une inscription : Le client peut annuler son inscription à une session tant
que celle-ci n'a pas encore commencée.
○​ Payer une facture : Le client peut payer une ou plusieurs factures avec son moyen
de paiement préféré.
○​ Discuter avec un conseiller : Le client peut discuter avec un téléconseiller.
●​ Acteur : Téléconseiller
○​ Éditer une facture : Une inscription donne lieu à une ou plusieurs factures qui sont
éditées par un téléconseiller.
●​ Acteur : Responsable de formation
○​ Gérer les paiements : Le responsable de formation envoie une confirmation de
paiement.
○​ Générer des statistiques : Il peut éditer des statistiques pour relancer les clients qui
ne sont pas à jour de leur paiement.
○​ Éditer une facture : Le responsable de formation réalise toutes les actions d'un
téléconseiller, il peut donc aussi éditer des factures.
3. Dégager du texte cinq règles de domaine
1.​ Une inscription peut être annulée tant que la session n'a pas encore commencée.
2.​ Un client peut consulter la liste des formations sans avoir besoin de se connecter.
3.​ Une inscription donne lieu à une ou plusieurs factures.
4.​ Une inscription peut être payée plusieurs fois, et chaque paiement génère une facture.
5.​ Une session de formation est toujours affectée à un formateur.
4. A partir de la description proposée dans le texte, proposer le diagramme de classes du
système
●​ Client : Représente les clients du centre.
○​ Attributs : identifiant, titre (monsieur ou madame), nom, prenoms, email,
numero_telephone, date_naissance, sexe.
○​ Relations : 1..n vers Inscription. 1..1 vers Adresse.
●​ Adresse : Stocke l'adresse des clients et des employés.
○​ Attributs : ville, boite_postale.
○​ Relations : 1..n vers Client et 1..n vers Employe (à déduire).
●​ Cours : Représente les cours proposés dans le catalogue.
○​ Attributs : intitule, domaine, date_creation, date_arret (optionnel), description.
○​ Relations : 1..n vers SessionFormation.
●​ SessionFormation : Représente une instance d'un cours.
○​ Attributs : langue, salle, date_demarrage, prix, date_creation, observation.
○​ Relations : 1..1 vers Cours. 1..n vers Inscription. 1..1 vers Formateur.
●​ Formateur : Représente une personne qui dispense une session de formation.
○​ Attributs : nom, prenom, telephone, email, niveau_etude, date_naissance.
●​ Inscription : Enregistre l'inscription d'un client à une session.
○​ Attributs : date_creation, date_annulation (optionnel), remise, presence.
○​ Relations : 1..1 vers Client. 1..1 vers SessionFormation. 1..n vers Facture.
●​ Facture : Détaille le paiement d'une inscription.
○​ Attributs : montant_paye, date_paiement.
○​ Relations : 1..1 vers Inscription.

Dossier 2: Base de données


1. Traduire ce modèle entité-association en modèle relationnel.
La traduction d'un modèle Entité-Association en modèle relationnel se fait en créant une table
pour chaque entité et en traduisant les associations par des clés étrangères ou des tables de
jointure.
●​ COMPAGNIE : (NomC, ...)
●​ VILLE : (NomV, ...)
●​ AEROPORT : (NomA, NomV) (La clé primaire de l'entité forte VILLE (NomV) est migrée
en tant que clé étrangère dans l'entité AEROPORT).
●​ AVION : (NumeroA, Constructeur, Modele, NomC) (La clé primaire de COMPAGNIE
(NomC) est migrée dans AVION en tant que clé étrangère).
●​ PERSONNEL : (NomPE, Fonction, NomC) (La clé primaire de COMPAGNIE (NomC) est
migrée dans PERSONNEL).
●​ PASSAGER : (NomPA, ...)
●​ VOL : (NumeroV, Jour, HeureDepart, HeureArrivee, PlacesLibres, NomA_Depart,
NomA_Arrivee, NumeroA) (Les clés primaires des entités AEROPORT et AVION sont
migrées dans VOL comme clés étrangères pour les associations "Part de", "Arrive à" et
"Effectue").
●​ S'occupe du : (NomPE, NumeroV) (C'est une table d'association pour une relation de
type 1,n à 1,n).
●​ A réservé : (NomPA, NumeroV, DateReservation) (C'est une table d'association pour une
relation de type 0,n à 1,n, avec un attribut propre DateReservation).
2. Ecrire le code SQL pour répondre aux requêtes ci-après :
a. Créer la table Vol : Le code SQL CREATE TABLE est utilisé pour définir la structure de la
table, ses colonnes, leurs types de données, les contraintes de clé primaire (PRIMARY KEY) et
de clés étrangères (FOREIGN KEY) qui font référence aux autres tables du schéma.
b. Afficher la liste des passagers du vol numéro AF3487 : La requête utilise une jointure (JOIN)
entre les tables PASSAGER et la table d'association A réservé pour lier les passagers aux vols.
La clause WHERE est utilisée pour filtrer les résultats et ne garder que ceux pour le vol spécifié.
c. Calculer la moyenne du nombre de passagers par avion : Pour chaque avion, il faut d'abord
compter le nombre de passagers. On utilise GROUP BY sur le numéro d'avion et COUNT pour
compter les passagers. Ensuite, on calcule la moyenne (AVG) de ces totaux.
d. Afficher la liste des compagnies ayant effectué au moins un vol en direction de Libreville : La
requête nécessite de joindre plusieurs tables (COMPAGNIE, AVION, VOL, AEROPORT, VILLE)
pour suivre le chemin de la compagnie au lieu d'arrivée. La clause WHERE filtre le résultat pour
ne retenir que les vols dont la ville d'arrivée est "Libreville". DISTINCT est utilisé pour éviter les
doublons de compagnies.

Dossier 3: Programmation Orientée Objet - JAVA


A. Questionnaire
1.​ La bonne réponse est a. En Java 8 et plus, une interface peut contenir des méthodes par
défaut (default) et statiques, mais les méthodes d'instance déclarées sans le mot-clé
default sont abstraites par nature.
2.​ La bonne réponse est une explication. L'affichage de l'objet tableau tab n'affichera pas
son contenu, mais son identité (sa référence en mémoire). Les valeurs par défaut des
éléments d'un tableau d'entiers sont 0, mais [Link](tab) ne les affiche pas
directement.
3.​ La bonne réponse est c. La classe Arrays du paquetage [Link] offre des méthodes
statiques pour manipuler des tableaux, y compris la méthode sort() pour les trier.
4.​ La bonne réponse est a. Une méthode déclarée public est accessible depuis n'importe
quelle autre classe.
5.​ La bonne réponse est c. La syntaxe correcte pour déclarer et instancier un tableau
d'entiers de 5 cases est int[] t = new int [5];.
B. Exercice
Le programme Java doit définir une classe Article avec des attributs pour le code, la marque et
le prix hors taxe.
●​ Le constructeur est nécessaire pour initialiser ces attributs lors de la création d'un objet
Article.
●​ Les méthodes calculerPrixTransport() et calculerTaxeDouaniere() sont implémentées en
utilisant les pourcentages donnés (5% et 18% du prix hors taxe).
●​ La méthode calculerPrixMinVente() calcule le prix d'achat (prix hors taxe + transport +
taxe douanière) et ajoute la marge du propriétaire (75% du prix d'achat).

Dossier 4: Réseaux informatiques


L'adresse IP est [Link].
1.​ Quelle est la classe de cette adresse IP ? L'adresse [Link] commence par 192,
ce qui la place dans la plage des adresses de classe C ([Link] à [Link]).
2.​ Combien de bits doit-on emprunter pour créer ces trois sous-réseaux ? On doit
trouver le plus petit entier n tel que 2^n \ge 3. 2^1 = 2 est trop petit. 2^2 = 4 est suffisant. Il
faut donc emprunter 2 bits.
3.​ Quel est le nombre de sous-réseaux total exploitables ? Avec 2 bits empruntés, le
nombre de sous-réseaux est 2^2 = 4.
4.​ Combien d'hôtes par sous-réseau obtient-on ? Une adresse de classe C a 8 bits pour
la partie hôte. En empruntant 2 bits pour le sous-réseau, il reste 8 - 2 = 6 bits pour les
hôtes. Le nombre d'hôtes par sous-réseau est donc 2^6 - 2 = 64 - 2 = 62 (on soustrait
l'adresse réseau et l'adresse de diffusion).
5.​ Quel est le masque de sous-réseau ? Le masque par défaut d'une classe C est
[Link] (soit /24). En empruntant 2 bits, on ajoute 2 bits à la partie réseau :
Masque par défaut : 11111111.11111111.11111111.00000000 Bits empruntés :
11111111.11111111.11111111.11000000 En décimal, cela donne [Link]. Le CIDR
est /26.
6.​ Donnez l'étendue des adresses hôtes disponibles sur le quatrième sous-réseau
utilisable. Les adresses des sous-réseaux sont déterminées par l'incrément de 2^{8-n},
soit 2^{8-6} = 2^2 = 4 (non, l'incrément est de 2^{nombre\ de\ bits\ hôtes}, soit 2^6 = 64).
○​ 1er sous-réseau : [Link] (adresse réseau)
○​ 2ème sous-réseau : [Link]
○​ 3ème sous-réseau : [Link]
○​ 4ème sous-réseau : [Link] (adresse réseau)
Pour le 4ème sous-réseau :
○​ Adresse réseau : [Link].
○​ Première adresse hôte : [Link].
○​ Dernière adresse hôte : [Link] (l'adresse de broadcast est
[Link]).
○​ Adresse de broadcast : [Link]. L'étendue des adresses hôtes est donc de
[Link] à [Link].

Vous aimerez peut-être aussi