POO Programmation Orientée Objet Xavier Tabuteau 1 Objectifs de la formation 2
POO Programmation Orientée Objet Xavier Tabuteau 1 Objectifs de la formation 2 ▸ Découvrir le concept de programmation orientée objet ▸ Modéliser un système informatique à l’aide d’UML ▸ Mettre en oeuvre les bonnes pratiques d’analyse et de conception Table des matières 3 ▸ I. S’initier aux concepts de base de la POO. ▸ Programmation procédurale vs programmation orientée objet. ▸ Découvrir la classe en programmation. ▸ Connaître les objets en programmation. ▸ Faire le point sur l'abstraction. ▸ Approcher la notion d'encapsulation. ▸ Savoir ce qu'est l'héritage. ▸ Comprendre le polymorphisme. ▸ II. Analyser un problème en programmation. ▸ Comprendre l'analyse orientée objet et son processus. ▸ Définir les besoins en programmation. ▸ S'initier à UML. ▸ III. Voir des cas d'utilisation de la conception orientée objet. ▸ Comprendre les cas d'utilisation. ▸ Identifier les acteurs. ▸ Identifier les scénarios. ▸ Réaliser un diagramme de cas d'utilisation. ▸ Découvrir la user story . Table des matières 4 ▸ IV. S'initier à la modélisation. ▸ Créer un modèle conceptuel. ▸ Identifier les classes. ▸ Identifier les relations. ▸ Identifier les responsabilités. ▸ Utiliser les CRC (Classe Responsabilité Collaborateur). ▸ V. Créer des classes orientées objet ▸ Créer le diagramme de classe. ▸ Convertir le diagramme de classe en code. ▸ Découvrir la durée de vie d'un objet. ▸ Utiliser les membres statiques ou partagés. ▸ VI. Découvrir l'héritage, l'interface, l'agrégation et la composition. ▸ Identifier les situations d'héritage. ▸ Utiliser l'héritage. ▸ Utiliser les classes abstraites. ▸ Utiliser les interfaces. ▸ Utiliser les agrégations et la composition. ▸ VII. Connaître les concepts avancés de la programmation orientée objet. ▸ Créer des diagrammes de séquence. ▸ Travailler avec les diagrammes UML avancés. ▸ Utiliser les outils UML. 5 I. S'initier aux concepts de base de la conception orientée objet. Dans ce chapitre, découvrons les bases indispensables de la programmation orientée objet. 1. Procédural vs POO Avantages et inconvénients 6 Programmation procédurale Consiste à écrire son code en suivant une procédure logique, en suivant de façon séquentielle une suite de fonctions qui sont appelées dans le code avec parfois des fonctions qui s’appellent entre elles. Ces fonctions sont appelées dans le code source en leur passant ou non des paramètres. Ces fonctions renvoies parfois des résultats exploitables dans la suite de la procédure. Cette façon de coder est plus abordable aux débutants et demande moins d’analyse avant le développement. Cependant le code source sera souvent plus long, difficilement réutilisable et plus difficile à maintenir. Cela dit, certains langages comme le C sont prévus pour écrire du code en procédural. 7 Programmation orientée objet Cette façon de coder s’approche un peu plus proche du raisonnement humain. Dans cette approche on crée des objets qu’on appel des classes. Chaque classe va avoir ses propres attributs et ses propres méthodes. L’héritage et le polymorphisme vont nous permettre de factoriser certaines opérations entre les différents modèles de données similaires. De plus nous allons pouvoir aller du général vers le particulier en créant des classes parents et des classes enfants. La POO donne un code plus lisible car il est constitué de petites entités qui vont interagir. Enfin les classes enfants héritent des modifications apportées au classes mères ce qui limite les erreurs et oublis plus fréquents en procédural. 8 En conculsion 9 ▸ A base de fonctions qui ne contiennent pas les données. ▸ Code difficilement réutilisable tel quel. ▸ Chaque fonction ou procédure est associée à un traitement particulier. ▸ Chaque fonction peut être utilisée à différents emplacements du programme. ▸ Plus simple à conceptualiser. Procédural. ▸ A base d’objets qui contiennent les données ▸ Code réutilisable. ▸ Code scindé en entités autonomes (classes) ▸ Les données sont protégées par encapsulation. POO. 2. La notion de Classes 10 Qu’est ce qu’une classe Une classe est un plan qui nous permet de créer plusieurs objets à partir de ce plan. Exemple : Plusieurs personnages d’un jeux vidéo. On parle alors d’instances de la classe Personnage. 11 Comment créer une classe 12 ▸ Nom : c’est quoi ? Employé, compte bancaire, joueur, document, album... ▸ Attributs : ce qui la décrit. Largeur, hauteur, couleur, type de fichier, score… On les appel aussi des propriétés. ▸ Comportements : que peut elle faire ? Jouer, ouvrir, chercher, enregistrer, imprimer… On les appel le plus souvent des méthodes. Classe / Objet 13 Les class native du langage 14 ▸ La plupart des langages aujourd’hui proposent des classes pré-conçues prêtes à l’emplois. ▸ On peut utiliser ces classes et créer les nôtres. ▸ String(), Date(), Array().... 3. Connaître les objets en programmation. 15 Qu’est ce qu’un Objet 16 ▸ Chaque objet à une vie qui lui est propre (si je casse une tasse, l’autre reste intacte). ▸ Chaque objet peut avoir des propriétés différentes (une tasse peut être vide et l’autre à moitié pleine, une pomme peut avoir un nombre de feuilles différent ou une couleur différente). ▸ Chaque objet à ses propres comportements (un avion vole alors qu’un téléphone sonne) Exemple d’objet informatique 17 ▸ Un compte en banque est un objet informatique. ▸ Chaque objet est indépendant des autres. ▸ Chaque objet dispose de ses propres caractéristiques. ▸ Les objets peuvent interagir entre eux. 4. Faire le point sur l’abstraction. 18 4 notions fondamentales en POO 19 ▸ L’Abstraction. ▸ Encapsulation. ▸ Héritage. ▸ Polymorphisme. La notion d’abstraction fait référence à un objet que l’on visualise sans pour autant que celui-ci soit parfaitement décrit. Exemple : une table est un objet que l’on visualise, pourtant il reste abstrait car l’on ne connaît pas ses propriétés. Le principe de l’abstraction en programmation est de se focaliser sur l’essentiel en ignorant tous les détails. 5. L’encapsulation. 20 4 notions fondamentales en POO 21 ▸ L’Abstraction. ▸ Encapsulation. ▸ Héritage. ▸ Polymorphisme. Consiste en premier lieu à encapsuler nos méthodes et nos attributs au sein d’une même unité : la classe. Respect de l’encapsulation 22 ▸ Un objet ne doit révéler de lui-même que le stricte nécessaire aux autres parties du programme. Exemple du compte bancaire : le solde n’est accessible que via une méthode de la classe. Sans utiliser cette méthode, on ne peut pas accéder au solde. ▸ On peut modifier les données d’une classe sans pour autant modifier les données de tous les objets. ▸ Les attributs sont privés. 6. L’héritage. 23 4 notions fondamentales en POO 24 ▸ L’Abstraction. ▸ Encapsulation. ▸ Héritage. ▸ Polymorphisme. L’héritage est une manière très pratique de réutiliser du code. Les classes enfants héritent des attributs et méthodes de la classe parent. Si on modifie la classe parent, toutes les classes enfants bénéficient de ces modifications. 7. Le polymorphisme. 25 4 notions fondamentales en POO 26 ▸ L’Abstraction. ▸ Encapsulation. ▸ Héritage. ▸ Polymorphisme. Polymorphisme : qui peut prendre plusieurs formes. Le + ne fait pas la même chose. Cas concret de Polymorphisme 27 ▸ La méthode retrait() de la classe ComptePlacement se comporte différemment. ▸ Le polymorphisme est rarement utilisé. 28 II. Analyser un problème en programmation. Dans ce chapitre, nous verrons pourquoi et comment aborder l'analyse d'un problème en programmation. 8. Comprendre l’analyse orientée objet et son processus. 29 Prendre les bonnes Décisions ? 30 ▸ Rassembler les besoins Qu’est ce que l’application doit faire ? se concentrer sur le général et éviter le cas particulier. ▸ Décrire l’application Décrire l’application simplement. Raconter l’histoire, les cas d’utilisations. ▸ Identifier les principaux objets Essayer d’identifier les classes principales à partir des cas d’utilisations. ▸ Décrire les interactions Exemple : un objet client va ouvrir un compte en banque. Les méthodes et comportements les objets ont quand ils interagissent. Diagramme de séquence. ▸ Créer un diagramme de classe Représentation visuelle des classes de l’application en restant le plus proche possible des notions d’héritage, encapsulation et polymorphisme... 9. Définir les besoins en programmation. 31 Définir les besoins 32 ▸ Les besoins fonctionnels : que font-ils ? Caractéristiques, capacités. ▸ Les besoins non fonctionnels : quoi d’autres ? Aide, législation, performance, support, sécurité Exemple de besoins fonctionnels 33 ▸ L’application doit continuer à fonctionner sans connexion réseau. ▸ L’application doit permettre à l’utilisateur de créer un message de 140 caractères. ▸ Le programme doit permettre de générer des reçus par email. ▸ L’application doit permettre à l’utilisateur d’effectuer une recherche par nom de client, numéro de téléphone ou numéro de client. Les besoins exprimés doivent pouvoir être compris par l’ensemble des parties prenantes (maîtrise d’ouvrage, client, maîtrise d’oeuvre, ...) Exemple de besoins non fonctionnels 34 ▸ Le système doit répondre aux recherches dans les 2 secondes. ▸ Le support est disponible par téléphone du lundi au vendredi de 9h à 18h. ▸ Se conformer à tous les règlements pertinents de la sécurité sociale. Sur de très grosses applications il est évident que d’autres techniques permettent de formaliser les besoins de manière plus adéquate. 10. Introduction à UML. 35 Qu’est ce que UML ? 36 ▸ UML (Unified Modeling Langage) Langage de modélisation unifié. ▸ Utilisé pour modéliser des projets informatiques Particulièrement utilisé en orienté objet. uploads/Philosophie/ poo-uml.pdf
Documents similaires
-
14
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jul 18, 2021
- Catégorie Philosophy / Philo...
- Langue French
- Taille du fichier 8.1570MB