Najah.
Mon plan de révision⚡ Défi flash

Informatique · Écoles d'ingénieurs — ENSIAS

Génie logiciel et modélisation UML

Le cours expliqué simplement, les questions que tous les élèves se posent et des exercices type examen national. Programme marocain, gratuit.

📘 Fiche de cours

L'essentiel du cours

Le Génie Logiciel vise à structurer le développement d'applications complexes. UML (Unified Modeling Language) est le langage standard.

  • Diagramme de Cas d'Utilisation (UC) : Définit les besoins fonctionnels (Acteurs, Cas d'utilisation, Frontières).
  • Diagramme de Classes : Représente la structure statique (Classes, Attributs, Méthodes, Relations).
  • Relations : Association, Héritage (généralisation), Agrégation (losange vide), Composition (losange plein).

Méthodes à maîtriser

  1. Identifier les acteurs : Qui utilise le système ? (Humains ou systèmes externes).
  2. Identifier les classes : Extraire les noms des entités du cahier des charges.
  3. Définir les multiplicités : Analyser les règles de gestion (ex: 1..* signifie un ou plusieurs).
  4. Appliquer l'encapsulation : Utiliser - pour privé et + pour public.

Exemples corrigés

  • Exemple 1 : Une classe Compte avec attribut solde (privé) et méthode deposer() (public). Notation : - solde : float ; + deposer(montant : float) : void.
  • Exemple 2 : Une Voiture est composée de Moteur. Si la voiture est détruite, le moteur l'est aussi. C'est une Composition.

Erreurs fréquentes

  • Confondre Agrégation et Composition (la composition implique une dépendance forte sur le cycle de vie).
  • Oublier les multiplicités dans les associations.
  • Mettre des verbes dans les noms de classes (une classe doit être un nom).

🌉 Jisr : les mots du chapitre FR ⇄ AR

Tu as appris les sciences en arabe ? Touche un mot pour voir sa traduction et une explication en darija.

La question que tu n'oses pas poser en classe ? Pose-la à UstadZéro jugement, même en darija, même à minuit. Il t'explique pas à pas et corrige ta démarche. Gratuit.

Défi flash : 4 questions

Sans compte

🎯 Génie logiciel et modélisation UML

1/4

Quelle relation UML représente le lien "est un" ?

❓ Questions fréquentes

Chno l'farq bin acteur et utilisateur ?

L'utilisateur est une personne réelle, l'acteur est le rôle que cette personne joue vis-à-vis du système. Un utilisateur peut avoir plusieurs rôles (acteurs).

💡 À retenir : L'acteur est une abstraction du rôle.

C'est quoi la différence entre agrégation et composition ?
  1. L'agrégation est une relation faible : l'objet "partie" peut exister sans le "tout".
  2. La composition est une relation forte : l'objet "partie" dépend totalement du cycle de vie du "tout".

💡 À retenir : Composition = "fait partie de et ne peut vivre sans".

Chno hiya l'utilité dial diagramme de classes f'le projet ?
  1. Il permet de visualiser la structure statique du système.
  2. Il facilite la communication entre développeurs avant de coder.
  3. Il sert de base pour générer le code source (Java/C++).

💡 À retenir : Le diagramme de classes est le plan de construction de votre code.

Kifach n7seb l'multiplicité f'wahed l'association ?
  1. Posez-vous la question : "Un objet A peut être lié à combien d'objets B ?"
  2. Posez l'inverse : "Un objet B peut être lié à combien d'objets A ?"
  3. Notez les bornes (ex: 0..1, 1..*, *).

💡 À retenir : La multiplicité décrit la cardinalité de la relation.

Est-ce que l'héritage est obligatoire dans chaque diagramme ?

Non, l'héritage n'est utilisé que s'il existe une relation "est un" (ex: un Etudiant est une Personne). Si cette relation n'existe pas, ne forcez pas l'héritage.

💡 À retenir : L'héritage exprime une spécialisation.

Comment représenter une méthode abstraite en UML ?

On écrit le nom de la méthode en italique ou on ajoute le stéréotype <<abstract>>.

💡 À retenir : Une méthode abstraite n'a pas d'implémentation dans la classe parente.

Peut-on avoir des attributs dans une relation d'association ?

Oui, si l'association elle-même possède des propriétés (ex: une classe d'association Inscription entre Etudiant et Cours avec une note).

💡 À retenir : Utilisez une classe d'association pour les données liées à la relation.

Est-ce que le diagramme de cas d'utilisation montre l'ordre des actions ?

Non, il montre seulement ce que le système fait, pas comment il le fait (l'ordre est géré par les diagrammes de séquence ou d'activité).

💡 À retenir : Le diagramme UC est fonctionnel, pas temporel.

Kifach n'différencier bin interface et classe abstraite ?
  1. Une classe abstraite peut avoir des méthodes implémentées.
  2. Une interface ne contient que des signatures de méthodes (contrat pur).

💡 À retenir : Interface = "Ce que je sais faire", Classe abstraite = "Ce que je suis".

Pourquoi on utilise le signe - devant les attributs ?

Pour respecter le principe d'encapsulation : les données doivent être protégées et accessibles uniquement via des méthodes (getters/setters).

💡 À retenir : - signifie private en Java/C++.

Est-ce que le diagramme de classes change selon le langage de programmation ?

La structure UML est indépendante du langage, mais le passage au code (implémentation) dépendra de la syntaxe de Java ou C++.

💡 À retenir : UML est un langage de modélisation universel.

C'est quoi un stéréotype en UML ?

C'est un mécanisme d'extension (entre << >>) pour préciser la nature d'un élément (ex: <<interface>>, <<entity>>).

💡 À retenir : Le stéréotype ajoute une sémantique spécifique.

✍️ Exercices type examen national

Exercice 1

Soit un système de gestion de bibliothèque. Une bibliothèque contient plusieurs livres. Un livre est écrit par un ou plusieurs auteurs. Un livre peut être emprunté par un seul adhérent à la fois.

  1. Identifiez les classes.
  2. Dessinez le diagramme de classes avec les relations et multiplicités.
Voir la correction détaillée : inscription gratuite

Exercice 2

Modélisez une relation d'héritage entre Compte (classe mère) et CompteEpargne / CompteCourant (classes filles). Ajoutez un attribut solde et une méthode calculerInteret().

Voir la correction détaillée : inscription gratuite

Exercice 3

Dans un système de commande, une Commande est composée de plusieurs LigneCommande. Chaque LigneCommande référence un Produit.

  1. Quel type de relation lie Commande et LigneCommande ?
  2. Représentez cette partie du diagramme.
Voir la correction détaillée : inscription gratuite

Un prof de Informatique pour aller plus loin

Les cours du soir avec des profs vérifiés arrivent : inscris-toi pour être prévenu(e) en premier.

Être prévenu(e) gratuitement

Autres chapitres de Informatique