.. _intro: ********************* Organisation du cours ********************* .. important:: Si vous suivez ce cours actuellement, vous devez signer la charte sur la politique d'utilisation de l'IA `via ce formulaire `_. L'objectif de ce cours est de **concevoir et gérer un projet informatique** en appliquant les méthodologies de développement appropriées, en suivant une démarche complète : analyse des besoins, rédaction des documents (cahier des charges, fiche technique), choix d'une méthodologie et mise en œuvre pratique avec des outils collaboratifs. À la fin de ce cours, l'étudiant.e doit être capable de : * Expliquer les principales méthodologies de développement logiciel (Cascade, V, Itératif, Spirale, Agile/Scrum, Agile/Kanban) et identifier leurs contextes d'application appropriés * Analyser un projet informatique pour choisir la méthodologie la plus adaptée selon les contraintes techniques, temporelles et organisationnelles * Rédiger un cahier des charges fonctionnel et technique complet pour un logiciel * Concevoir et documenter l'architecture technique d'un système (outils de modélisation : UML, Merise) * Collaborer efficacement au sein d'une équipe de développement en appliquant une méthodologie donnée * Présenter les livrables d'un projet (cahier des charges, fiche technique, démonstration) à l'écrit et à l'oral * Évaluer de manière critique les choix méthodologiques et techniques réalisés dans un projet Pédagogie ======================================= La pédagogie utilisée est mixte et basée sur l'**apprentissage par projet**. Nous alternerons : * Des cours magistraux pour la clarification des concepts et la présentation des méthodologies * Des travaux pratiques de rédaction de cahiers des charges et de fiches techniques * Des exposés de groupe sur les méthodologies de développement, avec études de cas * Un projet pratique en équipe avec développement d'un logiciel Par conséquent, les étudiants doivent impérativement travailler en équipe, au jour le jour, pour comprendre les concepts et faire progresser leur projet. Répartition du cours ======================================= Le cours est organisé en parties, chacune composée de plusieurs chapitres : * :doc:`Partie 1 <../part1/index>` — **Préliminaire** : qu'est-ce qu'un logiciel, son cycle de vie, et la documentation nécessaire. * :doc:`Partie 2 <../part2/index>` — **Les méthodes de développement** : Cascade, V, Itératif, Spirale, Agile (Scrum, Kanban) et récapitulatif comparatif. * :doc:`Partie 3 <../part3/index>` — **Projet** : mise en pratique en équipe à travers une méthodologie assignée. Une partie :doc:`QCM <../part6/index>` interactive complète le cours pour l'auto-évaluation. Déroulé des séances ======================================= Le cours se déroule sur une dizaine de séances (cours + laboratoires), selon un rythme indicatif. Les dates exactes sont communiquées par l'enseignant en début de semestre. .. list-table:: :header-rows: 1 :widths: 10 55 35 :class: longtable * - Séance - Contenu (cours · présentations · restructuration) - TP / Projet * - Séance 1 - Mise en situation + **Chapitre 0** — Introduction à la méthodologie - — * - Séance 2 - **Chapitre 1** (Intro à la méthodologie de dév. logiciel) + **Chapitre 2** (Cycle de vie) - TP0 (préliminaire) lancé * - Séance 3 - **Chapitre 3** (Documentation : CDC & fiche technique) + description du projet + laboratoire - TP0 rendu · TP1 (CDC) lancé * - Séance 4 - **Chapitre 4** (Cascade) + **Chapitre 5** (Modèle en V) - TP2 (fiche technique) lancé * - Séance 5 - Présentation **Itératif** + restructuration (**Chapitre 6**) + laboratoire / projet - TP1 rendu * - Séance 6 - Présentation **Spirale** + restructuration (**Chapitre 7**) + laboratoire / projet - TP2 rendu * - Séance 7 - Présentation **Agile / Scrum** + restructuration (**Chapitre 8**) + laboratoire / projet - — * - Séance 8 - **Simulation Scrum** (**Chapitre 8**) + laboratoire / projet - — * - Séance 9 - Autres présentations : **Kanban, Lean, Extreme Programming, …** - — * - Séance 10 - Restructuration + **récapitulatif** (**Chapitre 9**) + laboratoire / projet - — .. note:: **Deux principes rythment le semestre :** (1) à **chaque présentation** de groupe correspond une **restructuration** (mise au propre du chapitre concerné) ; (2) le **laboratoire / projet** se poursuit en continu **dès son lancement** (Séance 3). .. note:: Le **TP préliminaire** est une mise en situation simple : *« un client veut un logiciel de vente de produits (cosmétique, fruits, art, musique, …) avec un système de recommandation pour les utilisateurs. »* Il sert de fil rouge : il est réutilisé comme base pour les **exposés** et pour le **projet**. Évaluation ======================================= L'évaluation se compose de quatre éléments. Tous les travaux notés se font **en groupe**. .. list-table:: :header-rows: 1 :widths: 55 15 * - Élément - Poids * - **Exposés** — présentation approfondie d'une méthodologie assignée (étude de cas + analyse forces/faiblesses/contextes), en s'appuyant sur l'exemple préliminaire - **20 %** * - **TP1 — Cahier des charges** (à partir du préliminaire) - **20 %** * - **TP2 — Fiche technique** (à partir du préliminaire) - **20 %** * - **Projet / Examen** — développement d'un logiciel à travers une méthodologie assignée + livrables - **40 %** **Note finale = 20 % Exposés + 20 % TP1 + 20 % TP2 + 40 % Projet/Examen.** .. note:: Le **TP préliminaire** n'est pas noté en tant que tel, *sauf* s'il n'est pas rendu. Le détail des livrables et des grilles d'évaluation se trouve dans la :doc:`Partie 3 — Projet <../part3/index>`. Contact et communication ======================================= Les communications se feront par mail. :Email: `John Aoga `_ Cours Open-Source ======================================= Les sources de ce site web sont open-source et disponibles sur `GitHub `_. N'hésitez pas à faire des pull requests si vous voyez des erreurs ou des éléments à corriger. La licence utilisée est Creative Commons Attribution-ShareAlike 4.0 International License : .. image:: https://i.creativecommons.org/l/by-sa/4.0/88x31.png :alt: CC-BY-SA