CM1 : Introduction aux objets Mickaël Martin Nevot

21
Mickaël Martin Nevot 16/11/2015 23:35 Cette œuvre de Mickaël Martin Nevot est mise à disposition selon les termes de la licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Partage à l'Identique 3.0 non transposé. Cette œuvre est mise à disposition selon les termes de la licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Partage à l'Identique 3.0 non transposé. V1.0.0 CM1 : Introduction aux objets

Transcript of CM1 : Introduction aux objets Mickaël Martin Nevot

Page 1: CM1 : Introduction aux objets Mickaël Martin Nevot

Mickaël Martin Nevot

16/11/2015 23:35

Cette œuvre de Mickaël Martin Nevot est mise à disposition selon les termes de la

licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Partage à l'Identique

3.0 non transposé.

Cette œuvre est mise à disposition selon les termes de la

licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Partage à l'Identique

3.0 non transposé.

V1.0.0

CM1 : Introduction aux objets

Page 2: CM1 : Introduction aux objets Mickaël Martin Nevot

Prés. > POO > Conception > UML > Cas d'utilisation > Séquence > Classes > Etats > Activité > Avancé V1.0.0

I. Prés.

II. POO

III. Conception

IV. UML

V. Cas d'utilisation

VI. Séquence

VII. Classes

VIII. Etats

IX. Activité

X. Avancé

UML Mickaël Martin Nevot 1/21

Page 3: CM1 : Introduction aux objets Mickaël Martin Nevot

Prés. > POO > Conception > UML > Cas d'utilisation > Séquence > Classes > Etats > Activité > Avancé V1.0.0

IXe siècle : Al Khuwarizmi (algorithmique)

1842 : Ada Lovelace et Babbage (programmation)

1854 : Boole (logique)

1936 : Turing (machine de)

1951 : Grace Murray Hopper (compilateur/bogue)

1954 : Fortan et système d’exploitation

1955 - 1980 : cartes perforées

1970 : programmation structurée

1980 – 1990 : programmation orientée objet (POO)

Programmation : historique

UML Mickaël Martin Nevot 2/21

Page 4: CM1 : Introduction aux objets Mickaël Martin Nevot

Prés. > POO > Conception > UML > Cas d'utilisation > Séquence > Classes > Etats > Activité > Avancé V1.0.0

Code source traditionnel Code source orienté objet

Qu’est-ce qu’un objet ?

UML Mickaël Martin Nevot 3/21

Page 5: CM1 : Introduction aux objets Mickaël Martin Nevot

Prés. > POO > Conception > UML > Cas d'utilisation > Séquence > Classes > Etats > Activité > Avancé V1.0.0

Code source traditionnel Code source orienté objet

Qu’est-ce qu’un objet ?

UML Mickaël Martin Nevot

« Un objet est une capsule logicielle oblative avec un tropisme conatif dont

l'hétéronomie est la marque de la durée, de l'éphémère et de la hoirie »

— Serge Miranda

4/21

Page 6: CM1 : Introduction aux objets Mickaël Martin Nevot

Prés. > POO > Conception > UML > Cas d'utilisation > Séquence > Classes > Etats > Activité > Avancé V1.0.0

Diminuer le coût d’un logiciel

Faciliter la conception et l’évolution du code

Augmenter la durée de vie d’un logiciel

Augmenter la réutilisabilité d’un logiciel

Augmenter la facilité de maintenance d’un logiciel

Pourquoi la POO ?

UML Mickaël Martin Nevot

Conception d’un logiciel à la manière

de la fabrication d’une voiture

5/21

Page 7: CM1 : Introduction aux objets Mickaël Martin Nevot

Prés. > POO > Conception > UML > Cas d'utilisation > Séquence > Classes > Etats > Activité > Avancé V1.0.0

Communication inter-objets par messages

À la réception d’un message :

Appel d’une méthode qui modifie son état

Appel d’une méthode qui envoie un message à son tour

Principe de la POO

UML Mickaël Martin Nevot

Ma voiture Le moteur démarre

6/21

Page 8: CM1 : Introduction aux objets Mickaël Martin Nevot

Prés. > POO > Conception > UML > Cas d'utilisation > Séquence > Classes > Etats > Activité > Avancé V1.0.0

Paradigme (≠ méthodologie)

Concept :

Objet :

État (attributs)

Comportement (méthodes)

Identité

Encapsulation

Héritage

Polymorphisme

Langage de programmation :

Java, C++, Ada, PHP, C#, Objective C, Python, etc.

Programmation objet

UML Mickaël Martin Nevot 7/21

Page 9: CM1 : Introduction aux objets Mickaël Martin Nevot

Prés. > POO > Conception > UML > Cas d'utilisation > Séquence > Classes > Etats > Activité > Avancé V1.0.0

Objet : un concept, une idée/entité du monde physique

Exemples : voiture, étudiant, chat, fenêtre, forme, etc.

Classe : regroupe les objets de mêmes comportements

Instancier : fabriquer un exemplaire d'un élément à partir

d'un modèle qui lui sert en quelque sorte de moule

Un objet est une instance de classe

Réification : permet de transformer ou à transposer un concept

en une entité informatique

Objet et classe

UML Mickaël Martin Nevot

Une classe représente une responsabilité

8/21

Page 10: CM1 : Introduction aux objets Mickaël Martin Nevot

Prés. > POO > Conception > UML > Cas d'utilisation > Séquence > Classes > Etats > Activité > Avancé V1.0.0

État :

Défini par l’ensemble des attributs

Attribut, variable d’instance, donnée membre :

Variable spécifique à l’objet

Comportement :

Défini par l’ensemble de méthodes

Méthode : fonctions spécifique à l’objet

Méthodes :

Constructeur : appelé à la création de l’objet

Destructeur : appelé à la destruction d’un objet

Méthode abstraite : méthode sans code

Accesseurs et mutateurs : sert de mandataire d’accès à l’état de l’objet (depuis l’extérieur de celui-ci)

État et comportement

UML Mickaël Martin Nevot 9/21

Page 11: CM1 : Introduction aux objets Mickaël Martin Nevot

Prés. > POO > Conception > UML > Cas d'utilisation > Séquence > Classes > Etats > Activité > Avancé V1.0.0

POO et magie

UML Mickaël Martin Nevot 10/21

Page 12: CM1 : Introduction aux objets Mickaël Martin Nevot

Prés. > POO > Conception > UML > Cas d'utilisation > Séquence > Classes > Etats > Activité > Avancé V1.0.0

POO : deux aspects Programme en cours d’écriture :

Ensemble de classes

Chaque classe a des attributs et des méthodes

Programme en cours d’exécution (processus) :

Ensemble d’objets

Chaque objet a son état courant et un comportement

UML Mickaël Martin Nevot 11/21

Page 13: CM1 : Introduction aux objets Mickaël Martin Nevot

Prés. > POO > Conception > UML > Cas d'utilisation > Séquence > Classes > Etats > Activité > Avancé V1.0.0

Association de variables et fonctions dans une même entité

L'objet est vu de l'extérieur comme une boîte noire ayant

certaines propriétés et ayant un comportement spécifié

Encapsulation

UML Mickaël Martin Nevot

Variables

Fonction

Variables

Variables

Fonction

Attribut

Méthode

Attribut

Attribut

Méthode

12/21

Page 14: CM1 : Introduction aux objets Mickaël Martin Nevot

Prés. > POO > Conception > UML > Cas d'utilisation > Séquence > Classes > Etats > Activité > Avancé V1.0.0

POO et magie

UML Mickaël Martin Nevot 13/21

Page 15: CM1 : Introduction aux objets Mickaël Martin Nevot

Prés. > POO > Conception > UML > Cas d'utilisation > Séquence > Classes > Etats > Activité > Avancé V1.0.0

Concerne : classe, constructeur, attribut et méthode

Visibilité :

Publique : accessible de partout et sans aucune restriction

Protégée : accessible aux classes du module (ou paquetage) et

à ses classes filles

Privée : accessible uniquement au sein de sa classe

Accesseurs (getters) / mutateurs (setters) :

Permet de récupérer/modifier la valeur d’un attribut avec une

visibilité restreinte grâce à une méthode

Encapsulation : accessibilité

UML Mickaël Martin Nevot 14/21

Page 16: CM1 : Introduction aux objets Mickaël Martin Nevot

Prés. > POO > Conception > UML > Cas d'utilisation > Séquence > Classes > Etats > Activité > Avancé V1.0.0

Objets techniques qui rendent des services

Objets métiers qui implémentent les aspects métiers du

système (s’appuie sur un lexique) :

Aspect pragmatique

Aspect sémantique

Aspect logique

Typologie des objets

UML Mickaël Martin Nevot 15/21

Page 17: CM1 : Introduction aux objets Mickaël Martin Nevot

Prés. > POO > Conception > UML > Cas d'utilisation > Séquence > Classes > Etats > Activité > Avancé V1.0.0

Construction d’une classe à partir d’autres classes

en partageant leurs attributs et méthodes

Spécialisation (ou généralisation), enrichissement

Réutilisation

Redéfinition

Héritage

UML Mickaël Martin Nevot

Vehicle

Car

ER Vehicle

Ambulance

Bike

16/21

Page 18: CM1 : Introduction aux objets Mickaël Martin Nevot

Prés. > POO > Conception > UML > Cas d'utilisation > Séquence > Classes > Etats > Activité > Avancé V1.0.0

Classes et sous-classes B hérite de A

A est la classe mère, B la classe fille

A est la super-classe de B

B est une sous-classe de A

Un objet de type B est aussi un objet de type A

Un objet de type A n’est pas un objet de type B

UML Mickaël Martin Nevot

A

B

17/21

Page 19: CM1 : Introduction aux objets Mickaël Martin Nevot

Prés. > POO > Conception > UML > Cas d'utilisation > Séquence > Classes > Etats > Activité > Avancé V1.0.0

Opérateurs

Données :

Variables ≠ attributs

Constantes

Valeurs littérales ("hello!", 3, 2.75, true)

Expressions (et expressions « parenthésées »)

Affectation ≠ condition

Instructions

Fonction ≠ procédure ≠ méthode (signature)

Paramètres (formels) ≠ arguments (paramètres effectifs)

Exécution séquentielle

Notions générales

UML Mickaël Martin Nevot 18/21

Page 20: CM1 : Introduction aux objets Mickaël Martin Nevot

Prés. > POO > Conception > UML > Cas d'utilisation > Séquence > Classes > Etats > Activité > Avancé V1.0.0

Prototype

Mixin

Trait

Aller plus loin

UML Mickaël Martin Nevot 20/21

Page 21: CM1 : Introduction aux objets Mickaël Martin Nevot

Prés. > POO > Conception > UML > Cas d'utilisation > Séquence > Classes > Etats > Activité > Avancé V1.0.0

Auteur

Mickaël Martin Nevot

[email protected]

Carte de visite électronique

Cours en ligne sur : www.mickael-martin-nevot.com

Mickaël Martin Nevot

[email protected]

Carte de visite électronique

Relecteurs

Crédits

UML Mickaël Martin Nevot

21/21