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

IFT 232 Méthodes de Conception Orientées Objets

Embed Size (px)

DESCRIPTION

IFT 232 Méthodes de Conception Orientées Objets. Introduction. Plan : programmer  concevoir. Qu’est-ce qu’un langage de programmation ? L angage de programmation En tant que filtre pour conce voir le monde En tant que culture La programmation par objets ( POO ) - PowerPoint PPT Presentation

Citation preview

Page 1: IFT 232  Méthodes de Conception Orientées Objets

IFT 232 Méthodes de Conception

Orientées Objets

Introduction

Page 2: IFT 232  Méthodes de Conception Orientées Objets

Plan : programmer concevoirQu’est-ce qu’un langage de programmation ?

Langage de programmation En tant que filtre pour concevoir le mondeEn tant que culture

La programmation par objets (POO)Un survol du territoire

Vers l’apprentissage de la culture Java

Page 3: IFT 232  Méthodes de Conception Orientées Objets

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 cultureApproche 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

Page 4: IFT 232  Méthodes de Conception Orientées Objets

http://www.charlatans.info/esquineige.shtml

Page 5: IFT 232  Méthodes de Conception Orientées Objets

Éléments de base d’un langage de programmation

VariableType: 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ôleConditionnelles, boucles, primitivesExceptions

Invocation / activation des calculsAppel de procédures, appel de fonctions, démonsTransmission de messages, passage de paramètresChoix de la “fonction” activée

• Pattern matching, polymorphisme, héritage

Page 6: IFT 232  Méthodes de Conception Orientées Objets

Éléments de base d’un langage de programmation

Statut de certains élémentsFonctions, classes réflexivitéModifications en cours d’exécution de certains éléments

ParallélismeSynchrone, asynchrone, fil d’exécution (thread)…

CalculsCompilation, interprétation, machine virtuellePile d’exécution, tas (“heap”)Évaluation paresseuse, backtracking

Page 7: IFT 232  Méthodes de Conception Orientées Objets

Familles de langages de programmation

Programmation par objets

Programmation procédurale

Programmation fonctionnelle

Programmation par contraintes

Programmation logique

Programmation par règles

etc.

Page 8: IFT 232  Méthodes de Conception Orientées Objets

Langage de programmation

Langage

Filtre sur le monde

S’insère dans une culture

Page 9: IFT 232  Méthodes de Conception Orientées Objets

Langage de programmation

NIVEAU Lisp

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))

Page 10: IFT 232  Méthodes de Conception Orientées Objets

La programmation par objets

Cinq éléments de baseInstance

Classe

Héritage

Méthode

Transmission de messages

Page 11: IFT 232  Méthodes de Conception Orientées Objets

La culture “orientée objets”Modélisation

Unified Modelling Language (UML)

Le langageLa 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 programmationRefactorisationSchémas de conception

Méthodologie de développement de systèmesProgrammation agile

Page 12: IFT 232  Méthodes de Conception Orientées Objets

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.

http://www.dwheeler.com/innovation/innovation.html

Page 13: IFT 232  Méthodes de Conception Orientées Objets
Page 14: IFT 232  Méthodes de Conception Orientées Objets

Programmation par objetsObjet, acteur, prototype

Classe

Instance

Transmission de message

Méthode

Héritage simple \ multiple, interface, polymorphisme, surcharge (“overloading”)

Page 15: IFT 232  Méthodes de Conception Orientées Objets

LANGAGE de programmation

NIVEAU Application au langage naturel

Lexical Vocabulaire

Erreurs d’orthographe

Syntaxique Grammaire

Règles

Sémantique Signification

Erreurs de sens

Pragmatique Interprétation en tenant compte du contexte

Esthétique

Page 16: IFT 232  Méthodes de Conception Orientées Objets

Une culture est aussi un filtre…une certaine façon de concevoir le monde

Programmer

--> cuisine

Inuits

Lexical ???

Syntaxique Mode de cuisson

Cuisson (trop) longue

Mode de cuissonHuile d’olive

Al denteTemps de cuisson

Sémantique Spaghetti alla bolognese

Choix des pâtes

CombinaisonCrème, parmesan

Pragmatique Pizzaghetti Antipasto

Primo pasto

Secundo pasto

Page 17: IFT 232  Méthodes de Conception Orientées Objets

http://owl.english.purdue.edu/handouts/esl/esltensverb.html

Page 18: IFT 232  Méthodes de Conception Orientées Objets

http://www.aidenet.eu/conjugaison07b.htm