Formalismes et méthodes Objet 1 Méthodologie objet Survol du formalisme UML T. Libourel...

Preview:

Citation preview

Formalismes et méthodes Objet

1

Méthodologie objet

Survol du formalisme UML

T. Libourel

libourel@lirmm.fr

Avec la complicité de M Huchard

Formalismes et méthodes Objet

2

Plan

• De l ’analyse à la réalisationaspects LPOaspects SI / BD

• Introduction - Généralités sur les méthodes objet

• Concepts objet et formalisme UML

Formalismes et méthodes Objet

3

Plan

• Introduction - Généralités sur les méthodes objet

Formalismes et méthodes Objet

4

Introduction

• Évolution des paradigmes de programmation

• Évolution des besoins

• Évolution des technologies

Formalismes et méthodes Objet

5

Introduction

• Taille et complexité des systèmes importantes et croissantes

– les besoins et les fonctionnalités augmentent

– la technologie évolue rapidement

– les architectures se diversifient

• Problèmes des spécifications– parfois imprécises, incomplètes, ou incohérentes

– assurer l’interface avec le métier (domaine d’application)

Formalismes et méthodes Objet

6

• Évolution des applications– évolution des besoins des utilisateurs

– réorientation de l'application

– évolution de l'environnement technique (matériel et logiciel)

• Problèmes liés à la gestion des équipes– taille croissante des équipes

– spécialisation technique

– spécialisation métier

Introduction

Formalismes et méthodes Objet

7

Introduction

Pourquoi des méthodes ?

• Une nécessité

Entreprise

Outils Informatiques

Formalismes et méthodes Objet

8

Introduction

Pourquoi des méthodes ?

• Démarche reproductible pour obtenir des résultats fiables

• Construire des modèles à partir d'éléments (concepts)

• Possibilité de représenter à partir de formalismes

• Mise en œuvre

Formalismes et méthodes Objet

9

Une méthode d’analyse et de conception

– propose une démarche qui distingue les étapes du développement dans le cycle de vie du logiciel (modularité, réduction de la complexité, réutilisabilité éventuelle, abstraction)

– s’appuie sur un formalisme de représentation qui facilite la communication, l’organisation et la vérification

– produit des documents (modèles) qui facilitent les retours sur conception et l’évolution des applications

Introduction

Pourquoi des méthodes ?

Formalismes et méthodes Objet

10

Historique

• Méthodes cartésiennes

Jackson, SADT, Yourdon

• Méthodes systémiques

Merise, Axial, Information Engineering

• Méthodes objet

OOD, HOOD, OMT, OOSE, OOA/OOD, etc.

Formalismes et méthodes Objet

11

Concepts généraux

• Conceptualiser

obtenir un énoncé du problème (utilisateurs)

• Analyser

spécifier le problème

• Implémenter

réaliser la solution informatique

• Concevoir

une solution informatique

Formalismes et méthodes Objet

12

Concepts généraux

Étapes Résultats

Planification Schéma directeur

Analyse des besoins Modèle des besoins

Spécification formelle ou analyse Modèle conceptuel

Spécification technique ou conception Modèle logique

Implémentation Modèle physique

Intégration et Tests Rapport de cohérence logique

Validation du système Rapport de conformité

Maintenance et évolution Documentation et trace

Formalismes et méthodes Objet

13

Concepts généraux

• Cycles de développement

- en cascade

- en V

- en spirale

- tridimensionnel

Formalismes et méthodes Objet

14

Analyse

Conception

Implémentation

Tests

Maintenance

Modèle de cycle en cascade

Formalismes et méthodes Objet

15

• Organisation séquentielle des phases du cycle de vie

• Une phase est structurée en un ensemble d'activités pouvant s'exécuter en parallèle par plusieurs personnes

• Le passage d'une phase à la suivante ne se fait que lorsque les sorties de la première ont été fournies

Modèle de cycle en cascade

Formalismes et méthodes Objet

16

Modèle de cycle en cascade

• Pour :– Organisation simple et directe

• Contre :– Retours sur les phases précédentes difficiles (rupture entre

les phases)– Visualisation et validation tardive

Formalismes et méthodes Objet

17

Implémentation

Expressiondes besoins

Validationdes besoins

Validationfonctionnelle

Spécificationfonctionnelle

Conceptiondu système

Tests dusystème

Tests descomposants

Conceptiondes composants

Modèle de cycle en V

Formalismes et méthodes Objet

18

Modèle de cycle en V

• Approche descendante dans les phases précédents l’implémentation : on décompose le système au fur et à mesure qu’on le construit

• Approche ascendante dans les phases suivantes : on recompose le système en testant les parties

• Hiérarchie de tests : les différents tests provoquent un retour d’information directement sur la phase permettant de corriger les erreurs.

Formalismes et méthodes Objet

19

Modèle de cycle en V

• Pour :– Décomposition du système en sous-système

– Hiérarchie de tests et retours facilités

– Vérification ascendante

• Contre :– Validation en fin de cycle (erreurs d’analyse coûteuses)

Formalismes et méthodes Objet

20

Conception

Analyse

Spécifications Besoins

Validation

Tests

Implémentation

Modèle de cycle en spirale

Formalismes et méthodes Objet

21

Modèle de cycle en spirale

• Modèle itératif– On passe par toutes les phases du cycle de vie plusieurs fois

• Modèle incrémental– On améliore à chaque passage

• Un passage peut aussi bien permettre d’évaluer un nombre réduit de fonctionnalités ou l’organisation générale du système de façon non détaillée

Formalismes et méthodes Objet

22

Modèle de cycle en spirale

• Pour :– Réalisation de plusieurs prototypes (versions) avant la

réalisation du système réel (définitif)

– Validation progressive et précoce

– Souplesse dans le choix des prototypes

• Contre :– Mise en œuvre parfois coûteuse

– Possibilité de divergence, nombre de prototypes difficile à déterminer

Formalismes et méthodes Objet

23

• Simplicité

• Facilité pour coder et réutiliser

• Modèle plus proche de la réalité

– description plus précise des combinaisons

(données, opérations)

– décomposition basée sur “classification naturelle”

– facile à comprendre et à maintenir

• Stabilité

– de petites évolutions peuvent être prises en compte sans changements massifs

Pourquoi l’approche objet ?Pourquoi l’approche objet ?

Formalismes et méthodes Objet

24

• Omniprésence technique de l’Objetdans les langages de programmation, les bases de données, les interfaces graphiques, ... et les méthodes d’analyse et de conception.

• Universalité de l’Objetla notion d’objet, plus proche du monde réel,

est compréhensible par tous et facilite la communication entre tous les intervenants d’un projet.

Pourquoi l’approche objet ?Pourquoi l’approche objet ?

Formalismes et méthodes Objet

25

Au début des années 90, une cinquantaine de méthodes objet, liées uniquement par un consensus autour d’idées communes (objets, classes, sous-systèmes, ...)

Recherche d’un langage commun unique utilisable par toute méthode objet

– dans toutes les phases du cycle de vie,

– compatible avec les techniques de réalisation actuelles.

Formalismes et méthodes Objet

26

UML (Unified Modeling Language)

OOD (Booch) OMT (Rumbaugh)OOSE (Jacobson)

OOPSLA

OMG

UML

Autres

Formalismes et méthodes Objet

27

Autres méthodes Booch’91 OMT-1 OOSE Partenaires

Booch’93 OMT-2

OOPSLA’95 Unified Method 0.8Com

men

tair

es d

u pu

blic

UML 0.9 & 0.91Juin 96 puis OOPSLA’96

UML 1.0Soumission à l’OMG - Janvier 97

UML 1.1

UML 1.2

UML 1.3

Standardisation à l’OMG - Novembre 97

Version intermédiaire non publiée

Version béta - fin 99

Formalismes et méthodes Objet

28

Plan

• Concepts objet et formalisme UML

Formalismes et méthodes Objet

29

VueCas d’utilisation

Vue   structurelle

Vue Architecture

(déploiement)

Vue dynamique

Points de vue sur le système

Concepts généraux

Vue Implémentation

<------- Logique Physique ------>

Formalismes et méthodes Objet

30

Modèle déploiement

Modèle Dynamique

Modèle structurel

Quatre points de vueTypes d'objets et leurs relations

Stimuli des objets et leurs réponses

Modèle implémentation

Concepts généraux

Formalismes et méthodes Objet

31

Un modèle est une représentation abstraite d ’une réalité, il fournit une image simplifiée du monde réel.

Il permet :

- de comprendre et visualiser (en réduisant la complexité)

- de communiquer (à partir d ’un « langage » commun à travers un nombre restreint de concepts)

- de valider (contrôle de la cohérence, simuler, tester …)

Concepts généraux

Formalismes et méthodes Objet

32

Diagrammes (représentations graphiques de modèle)

de classesd ’instances

d'états

Diagrammes de déploiement

de composants

Diagrammes Diagrammes de collaboration

de séquences

Diagrammes Cas d ’utilisation

Concepts généraux

Formalismes et méthodes Objet

33

Analyse Conception Implémentation

Démarche uniforme sur le cycle de vie

Même notation

Concepts généraux

Formalismes et méthodes Objet

34

Formalisme UML - Concepts objet

• Modèle d’utilisation

• Modèle structurel

• Modèle dynamique

• Modèle d’implémentation

Formalismes et méthodes Objet

35

Modèle d’utilisation

Les «  USE CASE »

• Modèles descriptifs du point de vue des utilisateurs

• Scénarios fonctionnels

• Focus la manière d’utiliser le système

Formalismes et méthodes Objet

36

Modèle d’utilisation

On part de l ’analyse des besoins ….

Deux concepts

Acteur

toute entité extérieure au système et interagissant avec celui-ci.

acteurs humains, acteurs « machine » (système extérieur communiquant avec le système étudié)

Use case

toute manière d’utiliser le système

suite d ’événements vue du point de vue de l ’utilisateur

Formalismes et méthodes Objet

37

Modèle d’utilisation

Deux concepts

Acteur

Use case

Acteur (rôle 1)

Acteur (rôle 2)

« communicate »

« communicate »

Formalismes et méthodes Objet

38

Modèle d’utilisation

Acteur (rôle 1)

Acteur (rôle 2)

Les cas d ’utilisation peuvent être liés par des relations

- d’utilisation « include » (on utilise une partie commune)

- de raffinement « extends » (on traite des exceptions)

« include »« extends »

- de généralisation/spécialisation« generalizes »

Formalismes et méthodes Objet

39

Modèle d’utilisation

Délimiter le système

- ce qui est extérieur et qui communique avec le système

- ce qui est interne au système

Définir les fonctionnalités du système du point de vue des utilisateurs

Donner une description cohérente de toutes les vues que l ’on peut avoir du système

Formalismes et méthodes Objet

40

Modèle structurel

En UML, le modèle structurel ou statique est décrit à l'aide de deux sortes de diagrammes

– Diagrammes de classes

(description de tout ou d'une partie du système d'une manière abstraite, en termes de classes, de structure et d'associations).

– Diagrammes d'objets

(description d'exemples de configuration de tout ou partie du système, en termes d'objets, de valeurs et de liens).

Formalismes et méthodes Objet

41

Modèle structurel

Objets du monde réel

Objets informatiques

État Internecaché

Comportementvisible

Les objets

Formalismes et méthodes Objet

42

Modèle structurel

Comportement influe sur l'étatEtat réflète les comportements passés

Objet

Etat ---> évolue au cours du temps

Comportement ---> actions et réactions

Identité ----> essence

Formalismes et méthodes Objet

43

Sophie

Alain

Système

BD

Luc

: Professeur

: Discipline

Deux objetsou instances

Modèle structurel

Formalismes et méthodes Objet

44

Modèle structurel

Première abstraction

Une classe peut être vue

- la description en intention d'un groupe d'objets

ayant même structure (même ensemble d'attributs),

ayant même comportement (mêmes opérations),

ayant une sémantique commune.

- la « génitrice » des objets ou instances

- le « conteneur » (extension) de toutes ses instances

Formalismes et méthodes Objet

45

Classe

Attributs (propriétés)

Voiture

type : stringmarque : stringcouleur : string

Titine :Voiture

type =205Peugeotrouge

Modèle structurel

Instance

Valeurs d'attributs (État)

« Est-instance-de »

Formalismes et méthodes Objet

46

Opérations et méthodes

Voiture

type : stringmarque : stringcouleur : string

repeindre(c: Couleur)déplacer (d : longueur)

Méthodes

Implémentations

Modèle structurel

nom de la classe

attributs

opérations

Formalismes et méthodes Objet

47

Modèle structurel

• Un objet est instance d'une (seule) classe :– il se conforme à la description que celle-ci fournit,– il admet une valeur pour chaque attribut déclaré à son attention dans

la classe,– il est possible de lui appliquer toute opération définie à son attention

dans la classe.

• Tout objet admet une identité qui le distingue

pleinement des autres objets :– il peut être nommé et être référencé par un nom (mais son identité ne

se limite pas à ça).

Formalismes et méthodes Objet

48

Association / Lien (analogie Classe / Instance)

Pays Ville

nom nom

a-pour-capitale

Association

: Paysnom=France

:Villenom = Paris

a-pour-capitale

Lien

Modèle structurel

Formalismes et méthodes Objet

49

Modèle structurel

Association en général binaire (degré = 2) mais ..

Adhérent Exemplaireemprunte

DispositifDeLecture

lire

nom d'association

association binaire association ternaire

Formalismes et méthodes Objet

50

Multiplicité et rôles d'une association

Société Personne

nomadresse

nomdate de nais.n°SSadresse

emploie

travaille-pour

employeur employé

chef

travailleur

encadreModèle structurel

* 1..*

1..*

0..1

Formalismes et méthodes Objet

51

Modèle structurel

exactement 1Classe

1

0..1

Classe0..*

Classe1..*

Classe2..4

Classe2,4

au plus 1

aucun, 1 ou plusieurs (défaut)

au moins 1

de 2 à 4

2 ou 4

Multiplicité

Classe

Formalismes et méthodes Objet

52

Conseils pour la modélisation d'association

- verbes candidats possibles

- ne pas "dériver vers la conception" (pointeurs ou attributs référentiels)

Modèle structurel

Formalismes et méthodes Objet

53

Entreprise Personne

nomadresse

nomdate de nais.adresse

quantité

Possède-des-actions

capital actionnaire

Modèle structurel

Classe association

Ligne de portefeuille

* 1..*

Formalismes et méthodes Objet

54

Classe association

Utilisateur Station de travail

nom nom

Autorisation

Autorisé sur

prioritédroits

Répertoire

répertoire de rattachement

Modèle structurel

1..*1..*

1..*

Formalismes et méthodes Objet

55

Classe association

Modèle structurel

• Une classe d'association permet de modéliser une association par une classe.

• Les liens d'une telle association sont alors des objets instances de cette classe.

• À ce titre, ils admettent une valeur pour tout attribut déclaré dans la classe d'association ; et on peut leur appliquer toute opération définie dans celle-ci.

• En tant que classe, une classe d'association peut à son tour être associée à d'autres classes (voire à elle-même par une association réflexive).

Formalismes et méthodes Objet

56

Association qualifiée

Banque Personne

num_client

est_client

Modèle structurel

Dossier_C

1..*1..*

Banque Personnenum_client

est_client

1..* 0..1

Formalismes et méthodes Objet

57

Modèle structurel

D ’autres « abstractions »

- associations particulières (composition / agrégation)

- spécialisation / généralisation

Formalismes et méthodes Objet

58

Association particulière Tout /partie

Barre titre Fond Barre AscenseurFrontière

IndicateurTitre Bouton Ferm Flèche

Fenêtre

0..2

2

Modèle structurel

Composition

Formalismes et méthodes Objet

59

Agrégation

Sémantique Collection/Élément

Arbre

Département

Forêt

1

1..n

Région

Pays

1

1..n

1

1..n

Modèle structurel

Formalismes et méthodes Objet

60

Composition / Agrégation

Modèle structurel

Contraintes

- Exclusivité/Partage

- Dépendance/Indépendance

Propagation/Diffusion

Formalismes et méthodes Objet

61

Modèle structurel

Généralisation / Spécialisation

Mécanismes d’inférences intellectuelles de caractéristiques

Soit on affine (spécialisation)

Soit on abstrait (généralisation)

Sémantique

Point de vue ensembliste

Point de vue logique

Formalismes et méthodes Objet

62

Personne

nom adresse

Étudiant

num_carte adresse

Enseignant

grade adresse enseigner

{disjoint}

Modèle structurel

Généralisation / Spécialisation

Formalismes et méthodes Objet

63

Généralisation / Spécialisation

Pompe Échangeur Réservoir

Pompe Cent. Pompe Imm. Réservoir Press.

Équipement

...

Type d'équipement

...

Type de pompe

...

Type de réservoir

Modèle structurel

Formalismes et méthodes Objet

64

Généralisation / Spécialisation multiple

Modèle structurel

Véhicule terrestre Véhicule aquatique

Auto Véhicule amphibie Bateau

Véhicule

Formalismes et méthodes Objet

65

Composition/Agrégation ou généralisation ?

Agrégation

- lien entre instances

- un arbre d'agrégation est composé d'objets qui sont parties d'un objet composite

Généralisation

- lien entre classes

Modèle structurel

Formalismes et méthodes Objet

66

Généralisation / Spécialisation

Modèle structurel

• Une sous-classe “hérite” de sa super-classe la description des instances :

– les déclarations d'attributs,

– les définitions d'opérations,

– les associations définies sur la super-classe,

– les contraintes (on en parle plus tard).

• Une sous-classe peut redéfinir de façon plus spécialisée une partie ou la totalité de la description « héritée », mais il n'y a pas d'exception à l'héritage.

Formalismes et méthodes Objet

67

Classes abstraites

Modèle structurel

• Une classe abstraite est une classe non instanciable, c'est à dire qu'elle n'admet pas d'instances directes.

• Une classe abstraite est une description d'objets destinée à être « héritée » par des classes plus spécialisées.

• Pour être utile, une classe abstraite doit admettre des classes descendantes concrètes.

• La factorisation optimale des propriétés communes à plusieurs classes par généralisation nécessite le plus souvent l'utilisation de classes abstraites.

Formalismes et méthodes Objet

68

Opérations abstraites

Modèle structurel

• Une opération abstraite est une opération n'admettant pas d'implémentation : au niveau de la classe dans laquelle est déclarée, on ne peut pas dire comment la réaliser.

• Les opérations abstraites sont particulièrement utiles pour mettre en œuvre le polymorphisme.

• Toute classe concrète sous-classe d'une classe abstraite doit “concrétiser” toutes les opérations abstraites de cette dernière.

Formalismes et méthodes Objet

69

Classes abstraites

Modèle structurel

FormeGéométrique

dessiner()déplacer(delta : Vecteur)

centre : Point

régulier : Boolean

PolygonegrandDiam : VecteurpetitDiam : Vecteur

dessiner()

opération abstraite

classe abstraite

classe abstraite (dessiner() est héritée et non concrétisée)

opération concrétisée

classe concrète

Polygone utile que si spécialisée

Ellipse

Formalismes et méthodes Objet

70

Interfaces

Modèle structurel

• Une interface est une collection d'opérations utilisée pour spécifier un service offert par une classe.

• Une interface être vue comme une classe sans attributs et dont toutes les opérations sont abstraites.

• Une interface est destinée à être “réalisée” par une classe (celle-ci en hérite toutes les descriptions et concrétise les opérations abstraites).

• Une interface peut en spécialiser une autre, et intervenir dans des associations avec d'autres interfaces et d'autres classes.

Formalismes et méthodes Objet

71

Interfaces

Modèle structurel

MenuPopUp

BlocDeChoixsetDefault(o : Option)getChoice() : Option Option

choix

1..*

setDefault(o : String)getChoice() : String

setDefault(o : Bouton)getChoice() : Bouton Bouton

choix

1..*

String

choix1..*opérations

concrétisées

«interface» interface

opérations abstraites

réalisation

MenuBouton

Formalismes et méthodes Objet

72

Interfaces

Modèle structurel

Deux notations pour l'utilisation d'une interface

MenuPopUpsetDefault(o : Option)getChoice() : Option

«interface»

BlocDeChoix

MenuPopUp

ApplicationFenêtrée

«uses»

ApplicationFenêtrée«uses»

BlocDeChoix

interfaceinterfaceclasse utilisatriceclasse utilisatrice

utilisationutilisation

réalise

Formalismes et méthodes Objet

73

Les contraintes

Modèle structurel

• Les contraintes sont des prédicats, pouvant porter sur plusieurs éléments du modèle statique, qui doivent être vérifiés à tout instant.

• Les contraintes permettent de rendre compte de détails à un niveau de granularité très fin dans un diagramme de classe. Elles peuvent exprimer des conditions ou des restrictions.

• En UML, les contraintes sont exprimées sous forme textuelle, entre accolades et de préférence en OCL (Object Constraint Language).

• Les contraintes sont héritées.

Formalismes et méthodes Objet

74

Les contraintes

Modèle structurel

Exemples de contraintes sur associations

Chemin

Arête

*

1..*

Personne Comité

préside *1

membreDe

**{subset}

{ordered} contrainte sur extrémité

d'association

contrainte entre 2 associations

Formalismes et méthodes Objet

75

Les contraintes

Modèle structurel

Exemple de contraintes à différents niveaux

contrainte sur classe

Personnechef

subordonné

diriger

actif : Real {value 0}passif : Real

Société

{ actif = passif }

{ Personne.employeur = Personne.chef.employeur }

employeur

* 1..* 0..10..1

contrainte sur attributcontrainte sur

2 associations

Formalismes et méthodes Objet

76

Quelques compléments de notation

Modèle structurel

• Une relation de dépendance peut être exprimée entre deux éléments de notation. Elle est le plus souvent stéréotypée. Il y a plusieurs stéréotypes de dépendance : «uses», «instance of», …

«instance of»

relation de dépendance

stéréotype

• Un stéréotype est un label qui permet d'apporter une précision supplémentaire à un élément de notation (classe, relation, …)

Formalismes et méthodes Objet

77

Heuristiques d’élaboration du modèle structurel

• Bien comprendre le problème • Faire simple • Bien choisir les noms • Bien expliciter les associations • Ne pas trop “généraliser” • Relire • Documenter

De nombreuses révisions sont nécessaires !

Modèle structurel

Formalismes et méthodes Objet

78

Modèle dynamique

Décrit les interactions entre objets et les changements au cours du temps

- Aspects temporels, comportementaux : Contrôle

- Stimuli des objets et leurs réponses

Formalismes et méthodes Objet

79

Événement et État

État d'un objet

valeurs de ses attributs et de ses liens au cours du temps un objet peut changer d'état

Événement

stimuli d'un objet vers un autre objet

Modèle dynamique

Formalismes et méthodes Objet

80

Modèle dynamique

• diagrammes de séquences

• diagrammes états-transitions

• diagrammes de collaboration

• diagrammes d'activités (non traités)

Formalismes et méthodes Objet

81

l’appelant soulève le combinéla tonalité est déclenchéel’appelant compose le numéro 6la tonalité s’arrêtel’appelant tape le chiffre 7l’appelant tape le chiffre 1l’appelant tape le chiffre 4l’appelant tape le chiffre 8l’appelant tape le chiffre 6l’appelant tape le chiffre 6l’appelant tape le chiffre 2le téléphone appelé commence à sonnerla tonalité de sonnerie commence dans le téléphone appelantl’appelé décrochele téléphone de l’appelé cesse de sonnerla tonalité de sonnerie cesse dans le téléphone appelantles téléphones sont connectésl’appelé raccrocheles téléphones sont déconnectésl’appelant raccroche

Scénarios

Exemple

Modèle dynamique

Formalismes et méthodes Objet

82

Diagrammes de séquences

Appelant : Personne :Ligne Téléphonique Appelé : Personne

l’appelant soulève le combiné

la tonalité est déclenchée

la tonalité s’arrête

l’appelant compose le numéro 6

l’appelant compose les numérosle téléphone appelé commence à sonnerl’appelant entend la sonnerie

l’appelé décroche

le téléphone de l’appelé cesse de sonnerla sonnerie cesse

connexion établieconnexion établie

connexion interrompue connexion interrompuel’appelé raccroche

l’appelant raccroche

Modèle dynamique

Formalismes et méthodes Objet

83

constructeursdestructeurs

sélecteursmodificateursitérateurs

Types Synchronisation

simple

synchrone

dérobant

minuté

asynchrone

Les messages

Modèle dynamique

Formalismes et méthodes Objet

84

Modèle dynamique

La ligne de vie :C1

« create »

Création par le message « create »

Activation de l ’objet qui exécute une opération op

Destruction par un autre objet

« destroy »

op

Formalismes et méthodes Objet

85

Diagrammes de collaboration

Vue globale des événements entre classes

Appelant: Personne

:Lignetéléphonique

Appelé:Personne

Modèle dynamique

1, 3, ..

2, 4

5, ...

6,..

Formalismes et méthodes Objet

86

Diagrammes d'États

Représentation graphique état et événement

• Graphe

Nœud ÉtatArc Transition nommées par événement

• Une séquence d'événements = chemin dans le graphe

Modèle dynamique

Formalismes et méthodes Objet

87

Événement

• pas de durée

• concurrence d'événements

• classes d'événements - sans attributs

- avec attributs départ vol (compagnie, num_vol, ville) a pour instances AirFrance vol 124 de Paris Alitalia vol 352 de Rome

Modèle dynamique

Formalismes et méthodes Objet

88

État

• abstraction des valeurs d'attributs et de liens d'un objet

• un état a une durée (intervalle de temps entre deux événements)

• spécifie la réponse à un événement

• état et événement sont duaux

un événement sépare deux états un état sépare deux événements

Modèle dynamique

Formalismes et méthodes Objet

89

Diagrammes d'États

Libre

Tonalité

En numérotation

En connexion

décroche

numérote

recherche réussie

Sonnerie

Connectée

Déconnectée

numéro existant

réponse appelé

raccrocheraccroché

Exempleincomplet

Modèle dynamiqueEtat initial

Formalismes et méthodes Objet

90

Diagrammes d'États

Transitions gardées

en création Ouvert Fermé

demande créationfermeture accomplie

En retrait En dépôt

Débiteur

fermeture

retrait (s) dépôt(s)

Créditeur[Solde >0] [Solde >0]

[Solde ≤0] [Solde ≤0]

Modèle dynamique

Formalismes et méthodes Objet

91

État 1faire : Activité 1

Événement 1 [Cond1] / Action1 (attrib) État 2

...

Opération Activité / Action

Modèle dynamique

Formalismes et méthodes Objet

92

Action opération instantanée, non interruptible,souvent utilisée pour faire des mises à jour de valeurs,attachée à une transition.

Envoyer un événement est une action

Activitéopération qui prend du temps, interruptible par un événement,perpétuelle ou finie,nécessairement attachée à un état.

Opération elle peut être attachée à une transition ou à un état. elle est exécutée en réponse à l'événement ou à l'état.

Modèle dynamique

Formalismes et méthodes Objet

93

Généralisation permet une meilleure structuration des diagrammes

d'étatsUn objet dans un état du diagramme général doitêtre dans un des états du diagramme imbriqué (relation ou entre les états)

E1

E2

E5

E4E3

E6

Modèle dynamique

Formalismes et méthodes Objet

94

Agrégation une classe "agrégat" aura un état défini par l'agrégation des états de ses composants.

Agrégation concurrente (relation et)

Modèle dynamique

Ecomp1 Ecomp2

Formalismes et méthodes Objet

95

Heuristiques d’élaboration du modèle dynamique • Utiliser les scénarios pour commencer à construire les diagrammes d'état

• Ne construire un diagramme d'état que pour les classes au comportement temporel significatif

• Contrôler la cohérence

• Utiliser des diagrammes structurés

Modèle dynamique

Formalismes et méthodes Objet

96

Modèle d ’implémentation

Les packages

Un package ou sous-système est un regroupement logique de classes, associations, contraintes ..

Un sous-système est généralement défini par les services qu ’il rend

Les liens entre sous-systèmes sont des liens de dépendance

Les « packages » servent à structurer une application Ils sont utilisés dans certains LPO (Java) ce qui assure une bonne « traçabilité » de l ’analyse à l ’implémentation

Formalismes et méthodes Objet

97

Modèle d ’implémentation

Les packages

Classes avec fort couplage « sémantique »

Liens de dépendance

Formalismes et méthodes Objet

98

Plan

• De l ’analyse à la réalisationdu modèle objet ….. à la programmation objet du modèle objet …… aux BD

Formalismes et méthodes Objet

99

Du modèle objet ... à la programmationDu modèle objet ... à la programmation

Classes

Attributs, Opérations ------> Champs, Méthodes

Accesseurs L/E

Constructeurs, Destructeurs

Formalismes et méthodes Objet

100

Du modèle objet ... à la programmationDu modèle objet ... à la programmationClasses

- adresse : String = 'adresse inconnue'- numeroINSEE[6] : Integer

# changeAdresse(nouvelleAdresse : String)+ cotisationAJour() : Boolean

Adhérent

note (peut contenir un complément de description,

un commentaire, …)

type d'attribut

valeur initiale

type de paramètretype du résultat

de l'opération

privé

protégé

public

adhérent de labibliothèquevaleurs multiples

Formalismes et méthodes Objet

101

Du modèle objet ... à la programmationDu modèle objet ... à la programmationClasses

Classes ------> classes abstraites vs classes concrètes

C++ méthodes virtuelles pures

Java Interfaces

Héritage par réalisation

Formalismes et méthodes Objet

102

Du modèle objet ... à la programmationDu modèle objet ... à la programmation

Proposer un service et réagir aux messages

Opérations

Données

MessagesEncapsulation

Objet

Formalismes et méthodes Objet

103

Du modèle objet ... à la programmationDu modèle objet ... à la programmation

Encapsulation

Consensuel

privé ... implémentationpublic ... spécification

En pratique

à chaque langage ses particularismes

Smalltalk. attributs privés, méthodes publiques, ...Java. package, protected ...C++. friends, protected, protection sur le lien d’héritage, ...

Quelle philosophie adopter ?

Formalismes et méthodes Objet

104

Du modèle objet ... à la programmationDu modèle objet ... à la programmation

Associations

PERSONNE ADRESSE

nom....

N°RueCPVille

1 1a

Class PERSONNE{Private : string nom;ADRESSE adr;....}

rien de spécial dans ADRESSE

Attrribut complexe

Formalismes et méthodes Objet

105

Du modèle objet ... à la programmationDu modèle objet ... à la programmation

Associations

PERSONNE COMPTE

nom....

N°Type

1 0..npossède

Class PERSONNE{Private :

string nom;list <COMPTE> comptes;....}

Class COMPTE{Private :

PERSONNE possesseur;....}

Conteneur

Référence

Formalismes et méthodes Objet

106

Du modèle objet ... à la programmationDu modèle objet ... à la programmation

Associations

PERSONNE BIBLIOTHEQUE

nom....

nom0..nadhère->

Class PERSONNE {Private : string nom;....}Class BIBLIOTHEQUE {Private : ....}

Class ADHESION{Private :

PERSONNE adhérent;BIBLIOTHEQUE biblio;DATE dateadhésion;....}

Réification

0..n

date adhésiontype adhésion (mensuelle, annuelle)

Formalismes et méthodes Objet

107

Du modèle objet ... à la programmationDu modèle objet ... à la programmation

Héritage

• adéquation des deux relations

• représentation et traitement des conflits

• spécialisation des attributs

• représentation de la surcharge et du masquage

• utilisation de l’héritage à des fins d’implémentation ?

Implémentation de la relation de spécialisation par l’héritage,quelques problèmes ....

Formalismes et méthodes Objet

108

Du modèle objet ... à la programmationDu modèle objet ... à la programmation

Héritage : adéquation des deux relations

Spécialisation multiple

Flot

good()eof() ...

FlotEcriture

écrire(blocOctets)...

Flot-Lecture

lire(nbOctets)...

FlotLectureEcriture

Formalismes et méthodes Objet

109

Cas de Java : héritage simple pour l’implémentation, multiple pour les interfaces ... côté classes, ...les méthodes de FlotLecture et FlotEcriture doivent être réécrites dans FlotLectureEcriture

Du modèle objet ... à la programmationDu modèle objet ... à la programmation

Héritage : adéquation des deux relationsinterface Flot

interface FlotEcritureinterface FlotLecture

interface FlotLectureEcritureclasse Flot

classe FlotLecture

classe FlotLectureEcriture

classe FlotEcriture

extendsimplements

Formalismes et méthodes Objet

110

Du modèle objet ... à la programmationDu modèle objet ... à la programmation

Spécialisation/Généralisation .... multiples

Conflit portant sur le nom des propriétés

Il y a clairement deux propriétés

Objet

couleur (rouge, vert ...)

Elément de jeu

Pion DéCarte à jouer

couleur (coeur, trèfle, ...)

Formalismes et méthodes Objet

111

Du modèle objet ... à la programmationDu modèle objet ... à la programmation

Spécialisation/Généralisation .... multiples

Conflit portant sur les valeurs d’une propriété

Le mulet n’a qu’une propriété couleur, mais quelle sera sa valeur ?

Objet

couleur (rouge, vert ...)

Jument Ane

Mulet

Formalismes et méthodes Objet

112

Du modèle objet ... à la programmationDu modèle objet ... à la programmation

Héritage : représentation et traitement d’un conflit de nom

Smalltalk JavaC++

Désignation expliciteObjet::CouleurCarteAJouer::Couleur

Donner deux nomsdifférents

pas d’accès possibleà couleur d’objetautre qu’avec “super”(dans les méthodes)

mieux vaut donnerdeux noms différents

Formalismes et méthodes Objet

113

Du modèle objet ... à la programmationDu modèle objet ... à la programmation

Héritage : spécialisation des attributs

Animal

nourriture (végétale, animale, minérale)

Herbivore

nourriture (végétale)

Relation

ensemblesImpliqués > 1

RelationBinaire

ensemblesImpliqués = 2

Aucune représentation, ni en C++, ni en Smalltalk, ni en Java

Seule issue : vérification des contraintes dans les méthodes ...

Formalismes et méthodes Objet

114

Du modèle objet ... à la programmationDu modèle objet ... à la programmation

Héritage : surcharge et masquage

Masquage, (redéfinition)coexistence de méthodes de même nom dans des classes comparables

Fenêtre

FenêtreAvecBord FenêtreAvecTitre

affiche

affiche affiche

Figure

affiche

Surchargecoexistence de méthodes de même nom dans des classes différentes

Formalismes et méthodes Objet

115

Du modèle objet ... à la programmationDu modèle objet ... à la programmation

Héritage : masquage

C++ et Java masquage seulement si les signatures sont strictement identiques,on ne peut pas représenter directement :

Magnitude

<(Magnitude)

Time

<(Time)

heureminiutesecondes

Date

<(Date)

jourmoisannée

Formalismes et méthodes Objet

116

Du modèle objet ... à la programmationDu modèle objet ... à la programmation

Héritage : à chacun sa surcharge

Personne

Princesse

habiller(Vêtement)habiller(Vêtement, Chaussure)

habiller(Vêtement, Bijou)

VêtementChaussureBijou

QuiSePorte

En Java : correctement interprété comme de la surchargeEn C++ : habiller(Vêtement, Bijou) cache les deux autres

Formalismes et méthodes Objet

117

Du modèle objet ... à la programmationDu modèle objet ... à la programmation

Héritage : ... l’utiliser pour des raisons d’implémentation ?

Liste

ajoutFin

Pile

pushpoptop

A éviter dans tous les cas ...même si les livres en sont pleins ...

Formalismes et méthodes Objet

118

Du modèle objet ... à la programmationDu modèle objet ... à la programmation

Vers la programmation : ... à partir du modèle dynamique (diagrammes de séquence, de collaboration, etc.)

:C2« create »

Op1

:C1:C3

Op 2

Op  3

Formalismes et méthodes Objet

119

Persistance• Classes vs Types

persistants vs éphémères

• Points d’entrée (racine de persistance)

• Regroupements

Du modèle objet ... aux BDDu modèle objet ... aux BD

Adéquation aux BD « objet »

Formalismes et méthodes Objet

120

LDD, LMD, L Hôte• LDD, LMD, L Hôte équivalents LPO

• Langage de requête “like” SQL

• Transactions

Du modèle objet ... aux BDDu modèle objet ... aux BD

Adéquation aux BD « objet »

Formalismes et méthodes Objet

121

Adéquation aux BD « classiques »

Traduction

comme précédemment

d. structurels --> schémas

d. dynamiques --> requêtes et traitements applicatifs divers

Mais règles de « passage »

Du modèle objet ... aux BDDu modèle objet ... aux BD

Formalismes et méthodes Objet

122

Classes

AttributsAjout de l ’identifiant

Schéma relationnel

ADRESSE

N°RueCPVille

Attribut Domaine Non Null

Id_adresse Identifiant OuiN° Entier NonRue String(30) Non…..

Schéma AdresseClé primaireId_adresse

Du modèle objet ... aux BDDu modèle objet ... aux BD

Formalismes et méthodes Objet

123

Associations

PERSONNE ADRESSE

nom....

N°RueCPVille

1 1a

Attribut Domaine Non Null

Id_personne Identifiant OuiNom String(35) OuiId_adresse Identifiant Oui

Schéma PersonneClé primaireId_personne

Clé étrangèreId_adresse

Du modèle objet ... aux BDDu modèle objet ... aux BD

Formalismes et méthodes Objet

124

Associations

PERSONNE COMPTE

nom....

N°Type

1 0..npossède

Attribut Domaine Non Null

Id_personne Identifiant OuiNom String(35) OuiNO Identifiant Oui

Schéma PersonneClé primaireId_personne

Clé étrangèreNO

Du modèle objet ... aux BDDu modèle objet ... aux BD

Formalismes et méthodes Objet

125

Associations

PERSONNE BIBLIOTHEQUE

nom....

nom0..nadhère->0..n

date adhésiontype adhésion (mensuelle, annuelle)

Attribut Domaine Non Null

Id_personne Identifiant OuiId_bibliothèque Identifiant OuiDate_adhésion Date OuiType_adhésion String(10) Oui

Schéma AdhèreClé primaireId_personneId_bibliothèqueDateType

Du modèle objet ... aux BDDu modèle objet ... aux BD

Formalismes et méthodes Objet

126

Spécialisation

PERSONNE

nom....

ETUDIANT

num....

ENSEIGNANT

grade....

Plusieurs choix

- « aplatir vers le haut »

Schéma PersonneClé primaireId_personne

- « aplatir vers le bas »Schémas Etudiant, EnseignantClé primaireId_personne

- conserver les niveaux

Du modèle objet ... aux BDDu modèle objet ... aux BD

Formalismes et méthodes Objet

127

Processus de développement

Quatre phases

• Analyse

• Conception système

• Conception objet

• Implémentation

Démarche

Centrer l'effort sur l'analyse Processus itératif plutôt que séquentiel

Formalismes et méthodes Objet

128

Processus de développement

Objectifs de l'analyse

• Obtenir une description initiale du problème et du système à réaliser (à partir des USE CASE)

• Construire les modèles objet (structurel) et dynamique

• Vérifier et itérer sur les modèles

Formalismes et méthodes Objet

129

Conception système

Décrire l'architecture générale du système

• Organiser en sous systèmes

• Grouper les objets en tâches concurrentes

• Décider des communications inter-processus, du stockage des données, de l'implémentation du modèle dynamique

Processus de développement

Formalismes et méthodes Objet

130

Construire l'architecture générale du système

Un sous-système est un ensemble de composants qui englobe des aspects similaires :- fonctionnalités semblables- même caractéristiques techniques- même emplacement physique

Un sous-système fournit des services aux autres sous-systèmes.

Processus de développement

Formalismes et méthodes Objet

131

Construire l'architecture générale du système

Chaque sous-système doit être le plus autonome possible.

Un sous-système doit pouvoir être conçu indépendamment.

Composants ?

Processus de développement

Formalismes et méthodes Objet

132

Construire l'architecture générale du système

Le système peut être décomposé en couches et/ou en partitions

Processus de développement

Gestionnaire base de données

Objets métier

BatchIHMRobustesseSécuritéRapiditéRépartitionMulti-tâches

Formalismes et méthodes Objet

133

Conception objet

Processus de développement

Transposer les modèles d ’analyseEcriture des algorithmes

Il s ’agit de combiner modèles objet et dynamique…. En tenant compte des choix de la conception système

Recommended