ift 232 méthodes de conception orientées objets

Post on 03-Jan-2016

26 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

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

TRANSCRIPT

IFT 232 Méthodes de Conception

Orientées Objets

Introduction

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

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

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

É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

É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

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

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

La programmation par objets

Cinq éléments de baseInstance

Classe

Héritage

Méthode

Transmission de messages

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

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

Programmation par objetsObjet, acteur, prototype

Classe

Instance

Transmission de message

Méthode

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

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

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

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

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

top related