% INF2050 — Outils et pratiques de développement logiciel % UQAM — Département d'informatique % Plan de cours — Hiver 2021 * Horaires, locaux et enseignants: Responsable(s) du cours ======================= Coordination ------------ Mosser, Sébastien PK-4820 Enseignement ------------- Dogny, Gnagnely Serge Groupes: 020 Naceur, Rhouma Groupes: 030 Description du cours ==================== L'organisation par semaine est décrite sur le site Moodle du cours commun aux deux groupes : Objectifs --------- Initier les étudiants au développement de logiciel dans un contexte et un environnement de développement professionnel. Sommaire du contenu ------------------- Faire connaître aux étudiants les principaux outils utilisés pour le développement professionnel de logiciel. Comparaison des modèles de développement traditionnels et des processus de développements modernes. Développement de logiciel dans un contexte de logiciel libre (open source). Étude de cas. Utilisation d'outils contemporains pour de développement : cadre de test, gestion de la configuration, construction automatisée, environnement intégré de développement, outils de pistage et de revue de code. Modalité d'enseignement ----------------------- Ce cours comporte une séance obligatoire de laboratoire (2 heures). Préalables académiques ---------------------- - INF1070 - Utilisation et administration des systèmes informatiques - INF1120 - Programmation I Objectif du cours ================= - Comprendre les principales caractéristiques des différentes approches de développement. - Identifier les facteurs favorisant une approche agile. - Établir des normes de codification et paramétrer les outils pour les mettre en application. - Sensibiliser les étudiants aux techniques du réusinage (refactoring). - Rendre les étudiants aptes à définir et à implémenter des tests. - Initier les étudiants aux principales normes en génie logiciel. - Familiariser les étudiants avec les outils de construction automatisée. - Sensibiliser les étudiants à la problématique de la gestion des changements durant la réalisation des projets. - Familiariser les étudiants à un environnement de développement intégré (IDE). - Initier les étudiants à la problématique de la gestion des versions. - Sensibiliser les étudiants aux concepts d'écosystème de développement. - Initier les étudiants aux nouvelles approches dans le domaine. - Connaître certains outils de pistage et de documentation agile. - Identifier les principaux facteurs favorisant un écosystème de développement efficace. Contenu du cours ================ 1. Méthodes de développement : Agilité 1. Écrire Les récits utilisateurs 2. Méthode Scrum 2. Clean code 1. Convention du codage 2. Nommage & Demeter 3. Gestion de l'erreur 3. Gestion de versions 1. GIT 2. Branches 4. Build 1. Contruction automatique (make/maven) 2. Gestion des dépendances (maven) 5. Tests 1. Tests unitaires (Junit) : Savoir écrire un test unitaire 2. BICEP / CORRECT / savoir quoi tester (Analyse, conception des tests + tests fonctionnels) 6. Livraison et intégration continues (CD / CI) 1. Objectifs, processus, outils 2. Tests d'acceptation (Cucumber) Modalités d'évaluation ====================== Description sommaire Date Pondération ------------------------------ ------------------ ------------- Examen intra 13 mars 2021 20% Examen final 09 mai 2021 30% Projet de session - Partie 1 21 février 23h55 10% Projet de session - Partie 2 04 avril 23h55 15% Projet de session - Partie 3 09 mai 223h55 15% Quiz 1 19 février 23h55 5% Quiz 2 15 avril 23h55 5% Un travail remis en retard reçoit la note zéro à moins d'avoir fait l'objet d'une entente préalable avec l'enseignant. Le détail des conditions de réalisation de chaque évaluation est précisé avec la description de l'évaluation. La qualité du français fait partie intégrante des critères d'évaluation des travaux jusqu'à un maximum de 10%. La note de passage du cours est de 60% pour l'ensemble des évaluations. Même si le travail est réalisé en équipe, la note obtenue dans le projet de session est individuelle. Les règlements concernant le plagiat seront strictement appliqués. Pour plus de renseignements, consultez le site suivant : Médiagraphie ============ - VC MARTIN, Robert C. -- *Coder proprement 2009* -- PEARSON -- ISBN: 978-2-7440-2327-9 - VC MARTIN, Robert C. -- *Agile Software Development, Principles, Patterns, and Practices 2002* -- PEARSON -- ISBN: 0135974445 - VC McCONNELL, Steve -- Code Complete, 2e édition -- MICROSOFT PRESS - ISBN: 978-0735619678