Compilation, debogage et profiling : 15 h, Kevin GAUSSIN
Génie logiciel : 15 h, Kevin GAUSSIN
Connaissances et compétences préalables
Base en langage C : syntaxe, structures de contrôle, etc.
Familiarité avec les commandes de base de Linux : navigation, compilation simple, exécution de programmes, etc.
Notions élémentaires de programmation orientée objet : classes, objets, attributs, méthodes, etc.
Contribution aux objectifs du référentiel de compétences de l'ARES
Identifier, conceptualiser et résoudre des problèmes complexes
Intégrer les savoirs scientifiques et technologiques afin de faire face à la diversité et à la complexité des problèmes rencontrés
Concevoir, développer et améliorer des produits, processus et systèmes techniques
Sélectionner et exploiter les logiciels et outils conceptuels les plus appropriés pour résoudre une tâche spécifique
Acquis d'apprentissage spécifiques
Décrire les étapes du cycle de vie d’un logiciel et représenter un système à l’aide de diagrammes UML (cas d’utilisation, classes, séquences, activités, etc.).
Comprendre le rôle des normes et procédures et être capable de rédiger une procédure simple adaptée à un contexte donné.
Mettre en place des fichiers de build (Makefile, CMake) pour compiler un projet.
Utiliser des outils de débogage (gdb) et de profiling (gprof) pour analyser et améliorer un programme.
Contenu des AA
Normes et procédures
Définition et rôle des normes et procédures dans le domaine logiciel.
Processus de création et d’adoption d’une norme.
Présentation des principaux organismes de normalisation (ISO, IEEE, W3C, etc.).
Exemples de normes appliquées au développement logiciel.
Élaboration d’une procédure simple (mise en pratique).
Compilation, debogage et profiling
Introduction aux processus de compilation et à la chaîne de compilation.
Création de fichiers de build : Makefile et CMake.
Débogage avec gdb : commandes principales, gestion des points d’arrêt, inspection des variables, navigation dans l’exécution.
Profiling avec gprof (et autres outils possibles) : analyse de performance, interprétation des résultats.
Mise en pratique à travers des exercices de compilation, débogage et optimisation.
Génie logiciel
Introduction au génie logiciel : définitions, objectifs, place dans le cycle de vie du logiciel.
Diagrammes UML :
Diagrammes de cas d’utilisation.
Diagrammes de classes.
Diagrammes de séquence.
Diagrammes d’activités.
Exercices de modélisation associés à chaque type de diagramme.
Répartition des heures
Normes et procédures : 7 h de théorie, 2 h d'exercices/Labos
Compilation, debogage et profiling : 5 h de théorie, 10 h d'exercices/Labos
Génie logiciel : 5 h de théorie, 10 h d'exercices/Labos
Méthodes d'enseignement
Normes et procédures : cours magistral
Compilation, debogage et profiling : cours magistral, utilisation de logiciels
Génie logiciel : cours magistral
Langues d'enseignement
Normes et procédures : français, anglais
Compilation, debogage et profiling : français, anglais
Génie logiciel : français, anglais
Supports
Normes et procédures : copies de présentations, notes de cours, notes d'exercices
Compilation, debogage et profiling : copies de présentations, notes de cours, notes d'exercices
Génie logiciel : copies de présentations, notes de cours, notes d'exercices
Ressources bibliographiques
Normes et procédures
-
Compilation, debogage et profiling
-
Génie logiciel
-
Évaluation et pondération
Méthode d'évaluation : note globale à l'UE
Langues d'évaluation : français
Modalités d'évaluation :
Normes et procédures : 30 %
100 % examen (théorie + exercices)
Compilation, débogage et profiling : 40 %
30 % évaluation continue (non rejouable en 2e session)
70 % examen (théorie + exercices)
Génie logiciel : 30 %
30 % évaluation continue (non rejouable en 2e session)
70 % examen (exercices)
Report de note d'une année à l'autre pour l'AA réussie en cas d'échec à l'UE :