École Privée d’Ingénierie du Niger — L’école du nouveau monde

✉ elearning@epiniger.edu.ne    🌐 epiniger.edu.ne

Unité d’enseignement : GELO · S4 · UE3 — Développement Avancé & POO

  • UML & Conception Orientée Objet

    Ce cours apprend à modéliser un système logiciel avec UML 2 (Unified Modeling Language, standard de l’OMG) avant de le programmer. Il présente les diagrammes structurels (classes, objets, composants, déploiement) et comportementaux (cas d’utilisation, séquence, activités, états-transitions), puis une démarche de conception orientée objet inspirée du Processus Unifié et des patterns GRASP, et enfin les outils professionnels (StarUML, PlantUML, Enterprise Architect) avec génération de code et rétro-ingénierie Java. Il prolonge le cours de Merise (MRS3132) et s’appuie sur la POO Java (POO4131). Les études de cas sont tirées du contexte nigérien : scolarité d’EPI-NIGER, pharmacie à Niamey, microfinance, commerce en ligne de produits locaux payés par Mobile Money.

    Objectifs d’apprentissage

    • Maîtriser les diagrammes UML structurels et comportementaux pour modéliser un système logiciel.
    • Appliquer UML à la conception orientée objet : de l’analyse des besoins au code Java.
    • Utiliser les outils de modélisation UML professionnels : StarUML, PlantUML, Enterprise Architect.
    • Réaliser la conception complète d’un système informatique avec UML avant l’implémentation.

    Prérequis

    Programmation Orientée Objet Java/C++ (POO4131, GELO S4) ; Merise Avancée & Conception SI (MRS3132). Il faut connaître les notions de classe, d’héritage, d’interface et savoir lire un MCD.

    Plan du cours

    1. Leçon 1 — Diagrammes de Structure UML
    2. Leçon 2 — Diagrammes de Comportement UML
    3. Leçon 3 — Méthodologie de Conception OO
    4. Leçon 4 — Outils et Génération de Code

    Travaux pratiques

    • Exercices de modélisation à chaque leçon (corrigés sous forme de tableaux et de scripts PlantUML).
    • TP : modélisation UML complète (cas d’utilisation, classes, séquence, déploiement) d’une application web (leçon 4).

    Modalités d’évaluation

    Volume horaire : CM 20 h, TD 0 h, TP 10 h, TPE 30 h, soit 60 h de charge totale ; 3 crédits. Évaluation CC + ET : contrôle continu 40 % (dossier de modélisation du TP, quiz), examen terminal 60 % ; nature mixte (étude de cas écrite et modélisation sur outil).

    Bibliographie

    • Craig Larman, Applying UML and Patterns, Prentice Hall.
    • J. Rumbaugh, I. Jacobson, G. Booch, The Unified Modeling Language Reference Manual, Addison-Wesley.
    • Martin Fowler, UML Distilled, Addison-Wesley.
    • Pascal Roques, UML 2 par la pratique, Eyrolles.
  • Programmation Orientée Objet (Java/C++)

    Ce cours de quatrième semestre fait passer l’étudiant de la programmation procédurale en C à la programmation orientée objet (POO) avec le langage Java (version 17 LTS ou ultérieure). Il couvre les fondements (classes, encapsulation, héritage, polymorphisme), les abstractions de haut niveau (interfaces, classes abstraites, généricité, collections), la robustesse et la performance (exceptions, entrées/sorties, sérialisation, multithreading) et enfin la qualité de conception (principes SOLID, design patterns). Les exemples s’appuient sur des situations nigériennes : comptes Mobile Money, pharmacie à Niamey, microfinance, scolarité d’EPI-NIGER. Les notions de C++ (classes, héritage, fonctions virtuelles) sont évoquées en parallèle lorsque la comparaison éclaire le concept.

    Objectifs d’apprentissage

    • Maîtriser les concepts fondamentaux de la POO : encapsulation, héritage, polymorphisme, abstraction.
    • Développer des applications Java orientées objet avec gestion des exceptions et des collections.
    • Appliquer les principes SOLID et les patterns de conception (Design Patterns) classiques.
    • Concevoir et implémenter une application Java complète avec architecture en couches.

    Prérequis

    Langage C — Structures & Fichiers (LGC2132, GELO S2) ; Algorithmique Avancée & Complexité (ALC2131). Il faut savoir écrire des fonctions, manipuler tableaux, structures et fichiers, et raisonner sur la complexité (notation O).

    Plan du cours

    1. Leçon 1 — Fondements de la POO en Java
    2. Leçon 2 — Interfaces, Classes Abstraites et Généricité
    3. Leçon 3 — Exceptions, I/O et Multithreading
    4. Leçon 4 — Design Patterns et SOLID

    Travaux pratiques

    • Exercices de programmation Java à chaque leçon (JDK 17+, IDE IntelliJ IDEA, Eclipse ou VS Code).
    • TP projet : application Java de gestion de bibliothèque avec architecture MVC et tests JUnit (leçon 4).

    Modalités d’évaluation

    Volume horaire : CM 20 h, TD 10 h, TP 30 h, TPE 20 h, soit 80 h de charge totale ; 4 crédits. Évaluation CC + ET : contrôle continu 40 % (TP notés, projet bibliothèque, quiz), examen terminal 60 % ; nature mixte (écrit et pratique sur machine).

    Bibliographie

    • Bruce Eckel, Thinking in Java, MindView (disponible gratuitement).
    • E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley.
    • Joshua Bloch, Effective Java, 3e édition, Addison-Wesley.
    • Robert C. Martin, Clean Architecture, Prentice Hall.