1
Conception et
Programmation
Orientée Objet
Guy Dalberto
guy.dalberto@alcos.fr
Septembre 2004
Conception et Programmation Orientée Objet, Septembre 2004©2004 Guy Dalberto
2
Déroulement de l ’année
Des objectifs très différents :
• Découvrir la puissance des langages de script
• Vous encourager à travailler seuls
• Approche de la Programmation Orientée Objet
Travail personnel indispensable pour :
• dépasser très rapidement les problèmes de syntaxe
• profiter des enseignants pendant les cours et TPs
• utiliser les ressources disponibles sur le Web
Supports
• les cours et exemples seront mis sur « Casir/Public/POO »
avant la séance
• vous aurez droit à toute documentation écrite pendant les
examens
Conception et Programmation Orientée Objet, Septembre 2004©2004 Guy Dalberto
3
Plan du Module
Cours
Conférence Introduction :
syntaxe et outils Python
Objets et classes
Tests Unitaires et Collections
Applications graphiques :
TkInter
Transformations code impératif => code OO
Examen :
vérification acquisition des bases
Administration de systèmes :
modules sys et os
Persistence, HTML
Win32 extensions
Design Patterns
Examen final
TPs : réalisations envisagées
Calculette
Génération et vérification de pages HTML
Une centrale de réservation de spectacles (scripts CGI)
Conception et Programmation Orientée Objet, Septembre 2004©2004 Guy Dalberto
4
Plan du cours
Généralités
Orientations Fonctionnelle et Objet
Modèles, Prototypes, Tests , Exceptions
Langages Compilés et Scripts
Pourquoi Python ? Qui utilise Python ?
Présentations du langage Python
Bruce Eckel : Why I love Python
Guido van Rossum : Introduction to Python
Références
Conception et Programmation Orientée Objet, Septembre 2004©2004 Guy Dalberto
5
Langages Compilés et Scripts
Langage Compilé (typage statique) : C/C++/Java/C#
• rapidité d’exécution
• sécurité accrue due aux contrôles supplémentaires effectués
lors de la compilation
Scripts (typage dynamique) : JavaScript/TCL/Perl
• et leurs successeurs Python/Ruby/Groovy
• rapidité de développement, entre 5 et 10 fois moins de temps
• le temps économisé permet :
d’écrire les Tests Unitaires
de comprendre les besoins du client
Objectifs différents
• les langages comme sont utiles pour construire des composants
• les langages de scripts sont utiles pour construire des
applications en utilisant des composants, ainsi que des
prototypes de composants
Conception et Programmation Orientée Objet, Septembre 2004©2004 Guy Dalberto
6
John K. Ousterhout
Scripting: Higher Level
Programming
for the 21st Century
2
Conception et Programmation Orientée Objet, Septembre 2004©2004 Guy Dalberto
7
Comment choisir
Ousterhout propose la grille de questions suivantes :
Est-ce que le rôle principal de l ’application est de relier des composants
préexistants ?
Est-ce que l’application manipule une variété de choses différentes ?
Est-ce que l’application inclut une interface graphique ?
Est-ce que l’application manipule beaucoup de chaînes de caractères ?
Est-ce que les fonctions de l’application vont évoluer rapidement ?
Est-ce que l’application doit être extensible?
Répondre oui aux questions ci-dessus suggère qu’un langage de script
sera adapté. Par contre répondre oui aux questions ci-dessous pousse à
utiliser un langage système :
Est-ce que l’application implémente des algorithmes et des structures de
données complexes ?
Est-ce que l ’application manipule de gros volumes de données (tous les
pixels d’une image par exemple) ?
Est-ce que les fonctions de l’application sont bien définies et changent peu ?
Conception et Programmation Orientée Objet, Septembre 2004©2004 Guy Dalberto
8
Python
Productivité et Code Lisible
• Langage simple, syntaxe cohérente
• Concepts puissants
Conçu pour :
• Ecrire des composants
• Etre un composant
Multi-Plateforme Linux, Windows 32, Mac, ..
• Interprété avec ByteCode portable
Se développe rapidement grâce à ses qualités et non à la
suite d ’une campagne de marketing
• Gratuit, Open Source
• Bibliothèques très bien écrites
Conception et Programmation Orientée Objet, Septembre 2004©2004 Guy Dalberto
9
Pourquoi Python
Critères objectifs
langage de Script Orienté Objet
Multi-Plateformes (Windows / Linux)
Bibliothèques puissantes
Traitement d’Exception
Permet un prototypage aisé
Critères subjectifs
j’utilise Python à titre professionnel
j’aime ce langage
Conception et Programmation Orientée Objet, Septembre 2004©2004 Guy Dalberto
10
IDLE, environnement graphique,
écrit en Python, utilise Tkinter
Hello World en Python
l’interpréteur ligne de commande :
C:\Python23\python.exe
Conception et Programmation Orientée Objet, Septembre 2004©2004 Guy Dalberto
11
Qui utilise Python
Red Hat
• pour sa procédure d ’installation
Google
• de nombreux composants du spider
California Institute of Technology
• virtual reality in a behavioral biology lab.
Zope
• Serveur d ’applications, Web Serveur, système de gestion de
contenu.
• Solution complète comprenant une base de données objet, une
architecture de services Web
• Adaptable par programmation (en Python bien sûr)
Conception et Programmation Orientée Objet, Septembre 2004©2004 Guy Dalberto
12
Qui utilise Python
European Synchrotron Radiation Facility (Grenoble)
• le « Beamline Instrumentation Software Support group »
développe et supporte les applications d ’acquisition de données
The BLISS group has chosen it as a fundamental brick for our future
developments. This choice will allow to profit from the huge library of
existing modules in domains as scientific computing, graphical
interfaces, databases, inter-process communication, ....
Institut Pasteur
It is more and more often used in bioinformatics as a general purpose
programming language, to both build components and
applications.......a rich library of modules for scripting and network
programming are essential for bioinformatics which very often relies on
the integration of existing tools
Crystal Space
• le moteur 3D Engine utilise Python à travers un mécanisme de
plug-in dynamique. Les scripts Python sont invoqués lors
d ’actions de jeu spécifiques.
• Les scripts disposent d ’un accès complet à l ’API C++
3
Conception et Programmation Orientée Objet, Septembre 2004©2004 Guy Dalberto
13
Qui utilise Python
NASA
• Le Johnson Space Center utilise Python comme langage de script
standard pour son «Integrated Planning System ». Parmi les
projets en cours :
• un ensemble modulaire d ’outils pour préparer les missions des
navetttes, et remplacer d ’autres outils écrits en PERL et d ’autres
dialectes Shell
• un système permettant de créer automatiquement l ’interface
Python avec des bibliothèques C++ existantes
OTAN , US Navy
• utilisent Python et Zope pour gérer des données
ALCOS
• bancs de tests pour ST Microelectronics Grenoble
Conception et Programmation Orientée Objet, Septembre 2004©2004 Guy Dalberto
14
Liens Utiles
• Le site officiel : documentation et downloads
– http://www.python.org
• Documents Indispensables
Manuels Python, « menu Help/Python docs » de Idle
» ou C:\python23\doc\python23.chm
» ou http://docs.python.org/
Notes de cours de Gérard Swinnen, Université de Liège
» http://www.ulg.ac.be/cifen/inforef/swi/python.htm
• en Français
Une Journée avec IDLE
» http://hkn.eecs.berkeley.edu/~dyoo/python/idle_intro/indexfr.html
Python Blanc Bleu Belge
» http://www.p3b.org/
IUT de Villetaneuse, département GTR
» http://www-gtr.iutv.univ-paris13.fr/Cours/Mat/Python
Olivier Berger : ressources diverses
» http://perso.club-internet.fr/olberger/python/
Conception et Programmation Orientée Objet, Septembre 2004©2004 Guy Dalberto
15
Tutoriels, en Anglais
Guido Van Rossum
» http://docs.python.org/tut/tut.html
Dive Into Python (Mark Pilgrim)
» http://diveintopython.org/
Learning to Program (Alan Gauld)
» http://www.freenetpages.co.uk/hp/alan.gauld/
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !