IFT 232 Méthodes de Conception Orientées Objets Introduction.

Slides:



Advertisements
Présentations similaires
Cours Algorithmique et Analyse : Introduction
Advertisements

Formation universitaire à .NET: Introduction à C#
Sémantique des déclarations pour le langage Z minimal
Spécification et qualité du logiciel
Programmation par Objets 1 Module IN504 Animé par : Marianne Huchard Marie-Laure Mugnier Khalil Ben Mohamed
SI3 MAM3 Hydro Nathan Cohen Igor Litovsky Christophe Papazian
UML - Présentation.
POO.
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Entité Module Java Expert.
Introduction : Compilation et Traduction
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Introduction à la POO: Les classes vs les objets
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
FSAB1402: Informatique 2 Techniques de Programmation Orientée Objet
La programmation Orienté Objet
Programmation orientée objet
Démarche de résolution de problèmes
Concepts de base : la Classe Pour faire une comparaison simple, une classe serait a priori, une structure C avec des variables et des fonctions.
Expressions et assignations
Introduction à la conception de Bases de Données Relationnelles
Chapitre VII Généricité. POO-L3 H. Fauconnier2 Chapitre VII 1. Principes généraux 2. Types génériques imbriqués 3. Méthodes génériques 4. Types paramètres.
Paradigmes de Programmation
© 2007 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java et les Exceptions Peter Van Roy Département dIngénierie Informatique,
Modèle, Méthode et Conception
Introduction à la programmation (Java)
Modélisation orientée objet UML
Rappels sur la Programmation java
OIL & UPML DREVET - HUMBERT Introduction OIL : un langage de description dontologies UPML : un langage de description de systèmes à base.
Présentation Structures de Données et TDA
P. Van Roy, LINF1251 LINF1251: Le Langage Java Peter Van Roy Département dIngénierie Informatique, UCL
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
Détection et correction des défauts de conception
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Chapitre 9 Les sous-programmes.
Chapitre 3 Syntaxe et sémantique.
Langages orientés objets
Partie II Sémantique.
CSI3525: Concepts des Langages de Programmation Notes # 6: Langages de Programmation Fonctionelle II: Introduction au ML.
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é.
Portée, arrimages et intervenants Évolution des méthodes
Document élaboré à Centrale Paris par Pascal Morenton LES TECHNOLOGIES DU WEB 1. LES PHASES D UN DEPLOIEMENT DE RESEAUX 2. LE LANGAGE HTML 3. LE LANGAGE.
Programmation non procédurale Le projet ECOLE 2000
Travaux Pratiques Représentation des connaissances
PROGRAMMATION WEB FRONT-END.
SIF-1053 Architecture des ordinateurs
Supports de formation au SQ Unifié
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.
Créer des packages.
Un survol du language C.
CSI3525: Concepts des Langages de Programmation Notes # 13: Introduction au SmallTalk.
IFT 232 Méthodes de Conception Orientées Objets Introduction.
© 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.
Tutorat en bio-informatique Le 14 novembre Au programme… Les objets –Propriétés (attributs) –Constructeurs –Méthodes.
C++ L’HERITAGE Fayçal BRAÏKI DUT INFORMATIQUE.
Le langage Racket (Lisp)
IFT 785 Approches Orientée Objets Plan de cours. Information générale Professeur : – Sylvain Giroux –
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
Présentation du développement du projet.  Introduction  Conception et méthodes  Developpement  Conclusion 2.
CSI2520 Un langage de programmation impérative et concurrente.
La programmation par objets Principes et concepts Etude de Smalltalk.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
African Centre for Statistics United Nations Economic Commission for Africa Session : Etapes de mise en oeuvre du SCN 2008 Milestones for implementation.
La programmation par objets
Langage et Concepts de Programmation Orientée-Objet Pôle Informatique 2007/2008 École Nationale Supérieure des Mines de Saint-Étienne Laurent Vercouter.
pour les programmeurs en C++ Java 2 Part 1 3 Histoire de Java Projet de connexion des machines: 1991 Le nom Java a été introduit dans un café Développé.
Initiation aux bases de données et à la programmation événementielle
IFT359 – Programmation fonctionnelle Thème 07 Fermeture, affectation ou monades 1.
Transcription de la présentation:

IFT 232 Méthodes de Conception Orientées Objets Introduction

Plan Qu’est-ce qu’un langage de programmation ? Langage de programmation En tant que filtre pour concevoir le monde En tant que culture La programmation par objets (POO) Un survol du territoire Vers l’apprentissage de la culture Java

Etude des langages de programmation Etape 1: Identification et classification des éléments de base des langages de programmation Etape 2: Regroupement de ces éléments en familles de langages Approche horizontale: Regrouper les langages similaires en termes de syntaxe et sémantique  la programmation par objets: Smalltalk, Java, C++, Eiffel…  La programmation procédurale: C, Pascal, Modula… Etape 3: Langage de programmation ==> une culture Approche verticale La syntaxe et la sémantique ne font pas un langage de programmation Pour réellement comprendre un langage de programmation, il faut comprendre et intégrer sa culture

Éléments de base d’un langage de programmation Variable Type: typé | non typé, types primitifs, inférence de types, Valeur: pointeurs, calculée par une fonction, ramasse-miettes, Portée: lexicale, dynamique, locale, globale Structure de contrôle Conditionnelles, boucles, primitives Exceptions Invocation / activation des calculs Appel de procédures, appel de fonctions, démons Transmission de messages, passage de paramètres Choix de la “fonction” activée Pattern matching, polymorphisme, héritage

Éléments de base d’un langage de programmation Statut de certains éléments Fonctions, classes  réflexivité Modifications en cours d’exécution de certains éléments Parallélisme Synchrone, asynchrone, fil d’exécution (thread)… Calculs Compilation, interprétation, machine virtuelle Pile d’exécution, tas (“heap”) Évaluation paresseuse, backtracking

Familles de langages de programmation Programmation par objets Programmation procédurale Programmation fonctionnelle Programmation par contraintes Programmation logique Programmation par règles etc.

Langage de programmation Langage Filtre sur le monde S’insère dans une culture

Langage de programmation NIVEAULisp Lexical Des parenthèses, des symboles, Et très peu de formes spéciales Syntaxique (define (somme l) (define res 0) (define liste l) (while (notNull? l) (Set! res (+ res (car l))) (set! liste (cdr liste))) res) Sémantique (define (somme l) (if (null l) 0 (somme (+ (car l) (somme (cdr l))))) Pragmatique (define (somme l) (accumulate (lambda (x l) (+ x (car l))) 0 l))

La programmation par objets Cinq éléments de base Instance Classe Héritage Méthode Transmission de messages

La culture “orientée objets” Modélisation Unified Modelling Language (UML) Le langage La syntaxe et la sémantique du langage, e.g. Java, Smalltalk… Les conventions Programmation Nomenclature  Les composants JavaBeans reposent sur ces conventions La pratique de programmation Refactorisation Schémas de conception Méthodologie de développement de systèmes Programmation agile

To be a ``most important'' innovation, an innovation has to be an idea that is very widely used and is critically important where it applies. To be a "software" innovation, it has to be a technological innovation that impacts how computers are programmed (e.g., an approach to programming or an innovative way to use a computer). An innovation is a new idea. And in this paper, what's meant is a new idea in software technology.

Programmation par objets Objet, acteur, prototype Classe Instance Transmission de message Méthode Héritage simple \ multiple, interface, polymorphisme, surcharge (“overloading”)

LANGAGE de programmation NIVEAUApplication au langage naturel LexicalVocabulaire Erreurs d’orthographe SyntaxiqueGrammaire Règles SémantiqueSignification Erreurs de sens PragmatiqueInterprétation en tenant compte du contexte Esthétique

Une culture est aussi un filtre … une certaine façon de concevoir le monde Programmer --> cuisine Inuits Lexical ??? SyntaxiqueMode de cuisson Cuisson (trop) longue Mode de cuisson Huile d’olive Al dente Temps de cuisson SémantiqueSpaghetti alla bolognese Choix des pâtes Combinaison Crème, parmesan PragmatiquePizzaghettiAntipasto Primo pasto Secundo pasto