Introduction à la programmation objet, à la documentation et aux tests
- Type de matière
- INFORMATIQUE
- Correspondant
- Johann FAOUZI
- Module
-
UE1-08-M-E-S : Programmation avec Python
- Nombre d'ECTS
- 2.5
- Code matière
- 1AINF06
- Répartition des enseignements
-
Heures de cours : 7.3
Heures de TP : 21
- Langue d'enseignement
- Français
- Modalités d'évaluation
- 1 devoir maison (40%) et 1 devoir sur table de 2h (60%)
Objectifs
L’objectif du cours est de présenter la démarche, les savoir-faire, les outils pour développer des applications simples traitant des données. Parmi les rnconcepts abordés, on retrouve : La programmation orientée objet (POO). Elle est au cœur des langages de programmation modernes, elle permet de rncompartimenter les données et leur traitement, et elle facilite le développement modulaire d’applications. L’objectif principal est rnde comprendre les concepts de la programmation objet en concevant des classes simples, éventuellement organisées de façon rnhiérarchiques. La structuration du code. Les fonctionnalités sont réparties dans des modules et des paquets suivant une structure logique. La documentation du code. Elle permet d’indiquer aux développeurs et aux utilisateurs ce que fait chaque implémentation, par exemple rnles descriptions et les types de variables attendues en entrée et renvoyées en sortie. Elle peut également être utilisée pour générer rnautomatiquement une documentation d’un paquet. Les exceptions. Elles permettent d’identifier d’éventuels problèmes dans le code et sont soulevées lorsqu’un problème est rencontré. rnLa pile d’appels permet d’identifier quelles parties du code ont été exécutées avant de soulever l’exception. Les tests. Ils sont essentiels au développement de toute code pour s’assurer que chaque module fonctionne correctement lorsqu‘il est rnisolé des autres modules (tests unitaires) et lorsqu’il interagit correctement avec d‘autres modules (tests d’intégration), et que les rnfonctionnalités du paquet marchent correctement (tests fonctionnels). Le style de code. Il est plus facile de lire et comprendre du code lorsque le même style de code est utilisé par tous les développeurs. L’implémentation de ces concepts dans un langage de programmation. Le langage de programmation utilisé dans ce cours est Python. L’encapsulation de fonctionnalités dans des « bibliothèques ». Le formalisme UML. Il fixe les conventions nécessaires à la description des fonctionnalités attendues vis-à-vis d’un code, la rndescription du lien entre les données, la description des cas d’usage, … C’est un langage puissant pour permettre la communication rnentre développeur et maître d’œuvre, mais aussi pour aider le développeur d’une application à en concevoir les composantes.
Plan
Programmation orientée objet : classe, instance, attribut (public / protégé / privé) (d’instance / de classe), méthode (publique / protégée rn/ privée) (d’instance / de classe), héritage, abstractionrn Structuration du code : module, paquetrn Documentation du code : docstrings, doctestsrn Exceptions : pile d’appels, types d’exceptions, messages d’erreursrn Tests : tests unitaires, tests d’intégrations, tests fonctionnels, pytestrn Style de code: PEP8, PEP257rn Diagrammes UML : diagrammes de classes et d‘instances, relations entre classes
Prérequis
Algorithmique et complexité