Méthodologie de conception des systèmes d’information

Page 1 sur 34Lecteur de document UniversityLib

Méthodologie de conception des systèmes d’information

Programmation, Orienté objet · course

Browse all programmation documents

Module:

Méthodologie de conception des systèmes d’information

Introduction à l’Orienté objet

L’Orienté Objet

Principes de base

Comment trouver les objets.

 Comment décrire les objets + les relations entre

eux.

 Comment utiliser ces objets pour structurer les

programmes.

 Paradigme objets & terminologie

Approche fonctionnelle

Dans les programmes tels qu’on les a écrits (et décrits) jusqu’à présent, les

notions de type de données et de fonctions sont séparées :

Types de données

Fonctions

datatype1

dataType2

……

dataTypeN

Aspect statique

fonction1

fonction2

……

fonctionM

Aspect dynamique

Où les «dataTypei» sont des types de données (int, char, …, et ceux définis par

typedef), et les «fonctionsj» sont des fonctions utilisant ces types, par exemple :

dataType2 fonction2( dataType1 x, dataType2 y)

Approche fonctionnelle

Dans une approche fonctionnelle, vos programmes sont composés

d'une série de fonctions, qui assurent ensemble certains services. Il s'agit

d'une approche logique, cohérente et intuitive de la programmation.

Cette approche a un avantage certain appelé la factorisation des

comportements

Mais , l'approche fonctionnelle a aussi ses défauts, comme par exemple

une maintenance complexe en cas d'évolution de votre application (une

simple mise à jour de l'application à un point donné peut impacter en

cascade sur d'autres fonctions de notre application).

Approche orientée objet

Principe de réification

 Réification = matérialiser un concept par un objet

 Un concept abstrait peut être « réifié »

o « à 10h45 une carte bleue à été introduite » l’événement

 Une relation entre deux objets peut être « réifié »

o « Ali possède la voiture immatriculée 875 TU 129 » est réifié dans le monde réel par une

carte grise

 Réifier un concept permet de le manipuler concrètement

 Question ouverte : quels concepts réifier ?

 Une «bonne» vision objet réifie les «bons» concepts…

Approche orientée objet

attributs

….

message

attributs

….

méthodes

….

méthodes

….

attributs

….

méthodes

….

6

Principe d’abstraction

Une abstraction fait ressortir les caractéristiques d’une structure qui la

distinguent de tous les autres types de structures du domaine et donc

procure des frontières conceptuelles rigoureusement définies par

rapport au point de vue de l’observateur.

Abstraction

L'abstraction est une ignorance sélective

L'objectif de l'abstraction n'est pas d'être vague,

Advertisement

mais de créer un nouveau niveau sémantique dans lequel

il est possible d'être très précis.

Edsger Dijkstra

le concept d'abstraction identifie et regroupe des

caractéristiques et traitements communs applicables à

des entités ou concepts variés ; une représentation

abstraite commune de tels objets permet d'en simplifier

la manipulation.

Principe d’encapsulation

Définition :

L’encapsulation est le procédé de séparation des

éléments d’une abstraction qui constituent sa structure

et son comportement. Elle permet de dissocier

l’interface contractuelle de la mise en œuvre d’une

abstraction.

Encapsulation (…)

Le principe d’encapsulation consiste à regrouper, dans un même élément

informatique, les aspects statique et dynamique (c.a.d. les données et

les fonctions) spécifiques à une entité.

Cet éléments informatique est appelé : « objet »

◦ Les [structures de] données définies dans

un objet sont appelées les attributs de l’objet;

◦ Les fonctions [de manipulation] définies dans

un objet sont appelées les méthodes de l’objet.

data1

data2

….

fonction1

fonction2

….

On a donc la relation fondamentale:

OBJET = attributs + méthodes

Encapsulation (…)

En plus du regroupement des éléments statique et dynamique [d’une

entité], l’encapsulation permet de définir deux niveaux de perception :

• Le niveau externe : perception de l’objet depuis l’extérieur

• Le niveau interne : perception de l’objet depuis l’intérieur

Le niveau externe, correspond à la partie visible de l’objet;

il est constitué des spécifications des éléments [de l’objet] visibles de

l’extérieur (appelé: « éléments publics »), à savoir les prototypes et

les déclarations de ses méthodes et attributs publics.

Prototype des méthodes

Déclaration des attributs

Ce niveau représente donc l’interface de l’objet avec l’extérieur.

Le niveau interne correspond à l’implémentation de l’objet; il est

constitué des éléments de l’objet visibles uniquement de l’intérieur

de cet objet (appelés « éléments privés »).

Ce niveau représente donc le corps de l’objet.

Eléments privés

Définition des méthodes

Corps

Interface

Encapsulation (…)

Interface

réalisation

2 rôles :

  • utilisateur : manipule les éléments de l’abstraction qui

constituent l’interface

  • implanteur :réalise ce qui est encapsulé

Orienté Objet

 Représenter un système comme

 un ensemble d’objets autonomes mais

 interagissant via des envois de messages

 Chaque objet

• représente un objet ou un concept de la vie réelle

• a une identité unique et invariante

• a un état caractérisé par la valeur de ses attributs

• propose des services sous la forme de méthodes

• exécute un service lorsque l’objet reçoit un message

Comment trouver les objets

À partir du monde réel

L’approche objet

Les langages objets sont fondés sur la connaissance

Advertisement

d’une seule catégorie d’entité informatique :

l’objet. Dans un objet, traditionnellement ce sont

les données qui deviennent prépondérantes.

On se pose d’abord la question : "de quoi parle-t-

on ?" et non pas la question "que veut-on faire ?",

comme en programmation algorithmique.

Concept des objets

Le monde est composé d’entités qui « collaborent »

chauffeur

direction

Boîte de

vitesse

moteur

roue

roue

Freins

Feu

• L’approche objet consiste à résoudre un problème en termes

d’objets qui collaborent.

• Ces objets sont des abstractions des objets réels

Comment utiliser ces objets pour structurer des

programmes

Identifier une encapsulation pour chaque TAD c.a.d à un ensemble de

structures de données décrite par les opérations qui font partie de son

interface officielle.

corps

des méthodes

interface

structures de

données (attributs)

Objet concret : une pile

Encapsulation des Données et des Traitements dans un Objet

(…)

Un objet, encapsule les opérations et cache la structure sous-jacente

d'un objet. Ainsi, le programmeur consacrera ses efforts à la solution

d'un problème sans se préoccuper des détails inutiles. Il s'intéressera à

ce qu'un objet peut fournir comme service et ignorera comment ses

services sont réalisés de façon concrète. Si p est une pile, on écrira

p.empiler(n), au lieu de quelque chose comme s = s+1; t[s]=n;

4. Comment utiliser ces objets pour structurer des programmes

(…)

attributs

….

message

attributs

….

méthodes

….

méthodes

….

attributs

….

méthodes

….

attributs

….

méthodes

….

Intérêt

L’intérêt de la séparation entre niveau interne et

externe est de donner un cadre plus rigoureux des

objets :

Les objets ne peuvent être utilisés qu’au travers de

leur interface (niveau externe)

De ce fait les éventuelles modifications apportées à

leur structure interne restent invisibles à l’extérieur

Paradigmes objets &

Terminologie

Classes & Objets

L’instanciation

L’envoi de message

Classification et héritage

Polymorphisme

Advertisement

Qu'est-ce qu'une classe ?

VOITURE ?

Pour le philosophe…

◦ Un artéfact de la classification humaine !

◦ Une classification en fonction d'un

comportement ou d'attributs communs

◦ Un accord portant sur les descriptions et les noms

des classes utiles

◦ La création d'un vocabulaire ; nous communiquons ;

nous pensons !

Pour le programmeur orienté objet…

◦ Une construction syntaxique nommée qui décrit

un comportement et des attributs communs

◦ Une structure de données qui inclut les données

et les fonctions

Une grande partie de la

puissance conceptuelle

de l’approche objet

vient de la fusion de

ces

deux notions.

Les classes d’objet

 La structure de base de l’approche objet :

La Classe

Module

Type

• Ensemble de services

• Masquage de l’information

• Des liens entre classes

• utilisée pour déclarer des

objets

• exemple = Objet : Classe;

( i : integer )

Classe : Définition

Classe : Une classe regroupe les caractéristiques (les primitives = attributs et

méthodes) communes à des objets et permettant de créer des objets possédant

ces propriétés

Méthodes

• Modifieurs : ont un effet sur l’instance mais ne produisent pas de résultats

• Accesseurs: ont un résultat, généralement pas d’effet

Une classe représente la structure, le moule commun à un ensemble

d’objets

 Une classe est une abstraction d’objets

Qu'est-ce qu'un objet ?

Un objet est une instance d'une classe

OBJETS

Définitions

Objet : entité autonome modélisant l’aspect statique et dynamique d’une

partie du monde réel

 Un objet peut représenter une réalité physique ( une voiture, un bateau … )

ou virtuelle ( sécurité sociale, un raisonnement …)

 Chaque objet possède des attributs, des méthodes, une identité

OBJETS

Définitions

 attributs ( données membres ) : données caractérisant l‘état de l’objet

 méthodes ( fonctions membres ) : opérations définissant le

comportement de l’objet. Elles lui permettent d’agir sur ces attributs et de

réagir aux sollicitations extérieures

 identité : identifiant permettant de le distinguer des autres

indépendamment de son état

Objet = État + Comportement + Identité

OBJETS

Exemples

Peugeot 106 de couleur grise immatriculée 5039 TU 90 :

Attributs : couleur = grise, marque = Peugeot, n° im= 5039 TU 90

Méthodes : avancer ( ), reculer ( )

identité : XRE-HGFRT-KIUT-…

Renault espace de couleur verte immatriculée 985 TU 97 :

Attributs : couleur = verte, marque = Renault, n° im = 985 TU 97

Méthodes : avancer ( ), reculer ( )

identité : HYU-XJKMP-PLTB-….

Instanciation

Instanciation = Passage de l’indéfini au défini (par

Advertisement

voiture

Immatricule :

couleur :

roues :

puissance :

vitesse :

moulage)

1717 TU 27

bleue

4

2CV

50 km/h

6742 TU 28

grise

4

2CV

10 km/h

accélérer

freiner

tourner

reculer

L’instance (Statique, Dynamique)= objet : ( selon lang. ex:

Java)

 Possède les propriétés définies par sa classe

 peut effectuer les opérations définies par sa classe

L’envoi de message

Un objet est une entité indépendante dont la structure est connue

de lui seul, il ne peut pas, en principe, agir directement sur un autre

objet.

Il doit pour se faire utiliser une des méthodes appartenant à

l’interface de l’objet.

Message = requête dont la satisfaction est à la charge de l’objet

auquel est adressée.

Envoi de message = unique moyen de communiquer avec les objets

Exemple :

Send (MaVoiture, « freiner »);

C++, Java, C# :

MaVoiture.freiner();

Classification – Généralisation

& Spécialisation

Idée ancienne

Classification des espèces vivantes selon le genre et l’espèce :

Principe : factoriser des informations communes dans une

catégorie et introduire les spécificités dans des sous

catégories.

Les sous catégories héritent des propriétés des catégories parentes

(base/dérivée)

Polymorphisme

Poly = Multiple et Morphisme = Structure

Relatif à un traitement en mesure de s’adapter aux données qu’il

manipule

◦ Surcharge

Donner plusieurs significations à un même symbole

◦ Généricité

Paramétrer des traitements et des définitions de structures par des types

◦ Liaison dynamique

Établir le lien entre le nom d’une opération et l’algorithme de l’opération lors de l’exécution

Approche objet

Objet et

classe

Héritage

Héritage

Objet:Classe

Classe

Encapsu-

lation

Classe

Attributs

Opérations

Polymor-

phisme