La Modélisation Orientée Objet Concevoir un programme : modélisation du problème à résoudre Notion de programme : machine de Turing Pouvoir d’expression.

Slides:



Advertisements
Présentations similaires
Programmation Orienté Objet en C++
Advertisements

Spécification et qualité du logiciel
1 Quelques précisions sur l'héritage. 2 Signification de super.f() appel à la méthode f() masquée super : désigne l'objet appelant comme s'il était de.
XML - Henry Boccon-Gibod 1 XML, Langage de description La question du choix de formalismes Les entités et leur représentations modalités de modèles et.
Langages objet Définitions Traduction des méthodes en C++
C.
Tarak Chaari, Stéphane Frénot, Frédérique Laforest, Frédéric Le-Mouël JAV1 JAV – TD 5 Lhéritage en Java.
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
Leçon 3 : Héritage IUP 2 Génie Informatique
Introduction à la POO: Les classes vs les objets
Chapitre III Héritage (début)
FSAB1402: Informatique 2 Techniques de Programmation Orientée Objet
Programmation orientée objet
Principes de programmation (suite)
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
© 2007 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java et les Exceptions Peter Van Roy Département dIngénierie Informatique,
C++ : classes Introduction aux Langages Orientés Objets
Les Classes les structures en C (struct) regroupent des variables : structuration de l'analyse mais problèmes de cohérence problèmes de sécurité d'accès.
Historique de SystemC Regroupe 4 courants didées: SCENIC Project : Synopsys+UC Irvine Philips System-Level Data Types, VSIA SLD DWG IMEC, Hardware-Software.
Classes abstraites et Interfaces
POO : Objets et classes (Rappels)
Interfaces : comment classifier ?
Leçon 2 : Surcharge des opérateurs IUP 2 Génie Informatique Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Structures de données IFT-2000
Structures de données IFT-10541
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 7 : Classes et fonctions paramétrables Département.
Introduction à la programmation objet Langage Java
Introduction au paradigme orienté-objet (suite)
P. Van Roy, LINF1251 LINF1251: Le Langage Java Peter Van Roy Département dIngénierie Informatique, UCL
Présentation du mémoire
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
99 Réutilisation du code grâce à l'héritage. 9-2 Objectifs À la fin de ce cours, vous serez capables de : Définir l'héritage Utiliser l'héritage pour.
INF1101 Algorithmes et structures de données
Structures de données IFT-2000 Abder Alikacem L’héritage en C++ Département d’informatique et de génie logiciel Édition Septembre 2009.
Classes et objets Types de données abstraits, programmation orientée objet, classes, objets,
Structures de données IFT-2000 Abder Alikacem Concepts orientés objet Édition Septembre 2009 Département dinformatique et de génie logiciel Département.
Patrons de conceptions de créations
Héritage Licence Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier.
Héritage et composition
(Vient du grec et signifie « Peut prendre plusieurs formes »)
Travaux Pratiques Représentation des connaissances
Présentation de CORBA et de IIOP
4 Introduction des objets. Les chaînes et tableaux
LIFI-Java 2004 Séance du Mercredi 22 sept. Cours 3.
Copyright © SUPINFO. All rights reserved La Programmation Orientée Objet en C# 2.0.
Conception Objet A. LOTFI.
Cours 1 1 Java. Cours 1 2 Plan général 1.Introduction 2.Les types primitifs, évaluation d’expressions 3.Instructions for, if…. 4.Introduction de l’objet,
La notion de type revisitée en POO
Programmation objet. Les classes Une classe représente un concept Une classe est :  un module : elle regroupe la déclaration de données et les opérations.
11/04/ L'héritage Cours 7 Cours 7.
Programmation objet La base.
Variables et accès en Java. Déclaration des variables final transient static private Printer hp; transient => ne doivent pas être sérialisées volatile.
© 2005 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java Peter Van Roy Département d’Ingénierie Informatique, UCL
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
C++ L’HERITAGE Fayçal BRAÏKI DUT INFORMATIQUE.
PHP objet Jérôme CUTRONA 10:13:27 Programmation Web
Les classes présenté par: RAHMOUNE RIME / ZEKRI SELMA.
Les surcharges d'opérateurs
Les classes Introduction aux Langages Orientés Objets
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Héritage Conception par Objet et programmation Java
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Nouvelles Technologies Internet & Mobile
Introduction à la Programmation Orientée Objet
Retour sur les interfaces Les méthodes définies dans une interface sont des méthodes qui doivent absolument être implémentées par une ou des sous-classes.
Transcription de la présentation:

La Modélisation Orientée Objet Concevoir un programme : modélisation du problème à résoudre Notion de programme : machine de Turing Pouvoir d’expression des langages de codage C’est une question de vocabulaire !

La Modélisation Orientée Objet Modélisation fonctionnelle et chronologique Algorithmique, SDD Outils : Organigramme (temporel) Parfois des structures (orienté données) Des modules thématiques (fonctionnel)

Méthodes de modélisation Années 80 : foisonnement de méthodes Booch, Rumbaugh, JacobsonUML

Modélisation Objet Responsabilité des "composants" informatiques du programme Se placer au bon niveau d’abstraction Notions basiques de l’informatique :  Bas-niveau  Outils associés

Modélisation Objet En C : modélisation algorithmique En C++ : expression explicite de la modélisation objet. Attacher les données et les opérations associées : extension de la notion de module

Modélisation Objet Un objet a un état Se modifie par le biais de comportements Génériques (afficher, saisir,…) Spécifiques (selon le type d’objet)

Modélisation Objet L’encapsulation : protection des données En lecture seule Accès par comportement : contrôle d’intégrité et de cohérence

Modélisation Objet État : Date / heure Comportement : Afficher l’heure Avancer l’heure Reculer l’heure

Modélisation Objet Point de vue utilisateur : interface « ce que l’objet fait » Point de vue programmeur : implémentation « comment il le fait »

Modélisation Objet L’interface : entête des fonctions, prototype L’implémentation : organisation des données + définition des fonctions Interface = comportement Implémentation = gestion des états

Modélisation Objet Interface montre : void afficher_heure(void); void avancer_heure(entier, entier, entier); void reculer_heure(entier, entier, entier); Implémentation montre : DateTime heure_courante;

Structure et Classe Rappel : module en C Dans un fichier.h d’entête but : exportation pour link : considération technique fichier destiné à être publié : définition des types (struct) prototype des fonctions exportées (mode d’emploi) Dans un fichier.c de code fichier non publié : définition des fonctions (implémentation)

Structure et Classe Défauts des modules : Données exposées (publiées dans le fichier.h) Fonctions « ouvertes » et non associées aux variables (association faible par paramètre) Classes en C++ : type d’objet Un objet est une instance de classe Une structure est un type de variable

Classe Les instances d’une même classe partagent :  La structure de leurs données (définition de type), mais pas les valeurs  Les fonctions sont associées aux classes : méthodes  les objets partagent leur comportement (méthodes)

Instances Plusieurs objets d’une classe Horloge peuvent avoir des états différents (ne donnent pas la même heure) Mais : ont les mêmes comportements (même fonctions ou méthodes)

Polymorphisme Différentes classes partagent une interface Mais pas l’implémentation !  Deux classes peuvent avoir des méthodes de même nom  Surcharge de fonctions Impossible en C !

Polymorphisme Interface démarrer() avancer() avancer(nbkil : entier) Implémentation nbChevaux : entier avancer() { // code propre à voiture } voiture bateau Interface démarrer() avancer() avancer(nbmil: entier) Implémentation nbChevaux : entier avancer() { // code propre à bateau }

Héritage Nouvelles classes à partir de classes connues Classe de base, classe dérivée La classe dérivée hérite de la structure (des données ou attributs) et des comportements de la classe de base. Permet d’enrichir, de spécialiser la classe de base  en ajoutant de nouvelles informations;  en redéfinissant des méthodes;  en étendant des méthodes.

Animal Mammifère Structure entier taille, poids; Interface init(entier tai,poi); manger() seDéplacer() Structure entier taille, poids; entier gestation; Interface init(entier tai,poi,gest); manger() seDéplacer() Structure entier taille, poids; entier gestation; string nom; Interface init(entier tai,poi,gest, string name); manger() seDéplacer() seFrotterAuxArbres(); manger() : hérité init() : redéfini seFrotterAuxArbres() : ajouté

Diagramme de classes

Héritage : à quoi ca sert ?  Factoriser le code commun  Contrat d’interface  Module de fonctionnalités génériques  Ajout en cas de besoin uniquement  Tester