Software Engineering 7KUABN50 | ECTS | 2 | SEMESTRE | S7 | |||||||||||||||||||||||||||||||
CM | TD | TP | EI | Travail personnel | |||||||||||||||||||||||||||||||
7h | 14h | 0h | 0h | 29h | |||||||||||||||||||||||||||||||
Langues d'enseignement | Français | ||||||||||||||||||||||||||||||||||
Responsable(s) | |||||||||||||||||||||||||||||||||||
Mots clefs | Génie logiciel, conception objet, méthodes agiles, programmation, qualité du logiciel | ||||||||||||||||||||||||||||||||||
Prérequis | Savoir programmer en Java, module Bootcamp | ||||||||||||||||||||||||||||||||||
Objectif pédagogique | |||||||||||||||||||||||||||||||||||
A l’issue du module, les étudiants seront en mesure de maîtriser les méthodes et outils de développement logiciel pour la programmation orientée objet. | |||||||||||||||||||||||||||||||||||
Organisation et contenus | |||||||||||||||||||||||||||||||||||
Ce cours introduit aux différents concepts clé du développement logiciel ainsi qu'aux principaux outils associés. On abordera notamment la notion de design pattern en étudiant leurs utilisations dans la librairie standard Java. Nous étudierons également les grandes familles de méthode de développement logiciel (cycle de développement en V et méthode agiles) ainsi que les différents concepts et outils à disposition pour améliorer la qualité du code/logiciel produit (intégration continue, programmation défensive et par contrat, diagrammme de classe, ...). Les différents concepts vus seront mis en pratique avec le langage Java ainsi que l'outil Git et la bibliothèque Junit. | |||||||||||||||||||||||||||||||||||
Compétences | |||||||||||||||||||||||||||||||||||
Niveaux | Description et verbes opérationnels | ||||||||||||||||||||||||||||||||||
Connaître | La notion de Lean Software Development Les différents environnements de programmation. Les outils permettant de mettre en place des méthodes agiles | ||||||||||||||||||||||||||||||||||
Comprendre | L'intérêt des méthodes de développement et de gestion de projet Les principes de programmations orienté objet utilisé dans les librairies standard Java et C++ L'intérêt des outils d'automatisation | ||||||||||||||||||||||||||||||||||
Appliquer | Savoir utiliser un gestionnaire de versions. Savoir écrire et mettre en place des tests unitaires. Savoir développer du code générique. | ||||||||||||||||||||||||||||||||||
Analyser | Evaluer la qualité d'un environnement de développement. Le besoin de mettre en place des outils d'automatisation. | ||||||||||||||||||||||||||||||||||
Synthétiser | Les méthodes permettant de produire du code robuste | ||||||||||||||||||||||||||||||||||
Évaluer | Le besoin de mettre en place une méthode de développement particulière. La qualité d'une base de code orienté objet. | ||||||||||||||||||||||||||||||||||
Contributions aux Objectifs de Développement Durable des Nations Unis | |||||||||||||||||||||||||||||||||||
Modalités de contrôle des connaissances et compétences | |||||||||||||||||||||||||||||||||||
Contrôle Continu | Examen écrit | Oral / Soutenance | Rapport / Projet |