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 l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!