133
Formalismes et méthodes Objet 1 Méthodologie objet Survol du formalisme UML T. Libourel [email protected] Avec la complicité de M Huchard

Formalismes et méthodes Objet 1 Méthodologie objet Survol du formalisme UML T. Libourel [email protected] Avec la complicité de M Huchard

Embed Size (px)

Citation preview

Page 1: 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

1

Méthodologie objet

Survol du formalisme UML

T. Libourel

[email protected]

Avec la complicité de M Huchard

Page 2: 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

Page 3: 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

3

Plan

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

Page 4: 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

4

Introduction

• Évolution des paradigmes de programmation

• Évolution des besoins

• Évolution des technologies

Page 5: 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

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)

Page 6: 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

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

Page 7: 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

7

Introduction

Pourquoi des méthodes ?

• Une nécessité

Entreprise

Outils Informatiques

Page 8: 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

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

Page 9: 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

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 ?

Page 10: 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

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.

Page 11: 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

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

Page 12: 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

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

Page 13: 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

13

Concepts généraux

• Cycles de développement

- en cascade

- en V

- en spirale

- tridimensionnel

Page 14: 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

14

Analyse

Conception

Implémentation

Tests

Maintenance

Modèle de cycle en cascade

Page 15: 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

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

Page 16: 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

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

Page 17: 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

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

Page 18: 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

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.

Page 19: 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

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)

Page 20: 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

20

Conception

Analyse

Spécifications Besoins

Validation

Tests

Implémentation

Modèle de cycle en spirale

Page 21: 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

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

Page 22: 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

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

Page 23: 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

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 ?

Page 24: 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

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 ?

Page 25: 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

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.

Page 26: 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

26

UML (Unified Modeling Language)

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

OOPSLA

OMG

UML

Autres

Page 27: 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

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

Page 28: 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

28

Plan

• Concepts objet et formalisme UML

Page 29: 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

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

Page 30: 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

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

Page 31: 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

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

Page 32: 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

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

Page 33: 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

33

Analyse Conception Implémentation

Démarche uniforme sur le cycle de vie

Même notation

Concepts généraux

Page 34: 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

34

Formalisme UML - Concepts objet

• Modèle d’utilisation

• Modèle structurel

• Modèle dynamique

• Modèle d’implémentation

Page 35: 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

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

Page 36: 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

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

Page 37: 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

37

Modèle d’utilisation

Deux concepts

Acteur

Use case

Acteur (rôle 1)

Acteur (rôle 2)

« communicate »

« communicate »

Page 38: 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

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 »

Page 39: 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

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

Page 40: 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

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

Page 41: 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

41

Modèle structurel

Objets du monde réel

Objets informatiques

État Internecaché

Comportementvisible

Les objets

Page 42: 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

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

Page 43: 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

43

Sophie

Alain

Système

BD

Luc

: Professeur

: Discipline

Deux objetsou instances

Modèle structurel

Page 44: 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

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

Page 45: 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

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 »

Page 46: 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

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

Page 47: 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

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

Page 48: 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

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

Page 49: 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

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

Page 50: 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

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

Page 51: 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

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

Page 52: 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

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

Page 53: 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

53

Entreprise Personne

nomadresse

nomdate de nais.adresse

quantité

Possède-des-actions

capital actionnaire

Modèle structurel

Classe association

Ligne de portefeuille

* 1..*

Page 54: 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

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..*

Page 55: 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

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

Page 56: 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

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

Page 57: 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

57

Modèle structurel

D ’autres « abstractions »

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

- spécialisation / généralisation

Page 58: 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

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

Page 59: 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

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

Page 60: 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

60

Composition / Agrégation

Modèle structurel

Contraintes

- Exclusivité/Partage

- Dépendance/Indépendance

Propagation/Diffusion

Page 61: 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

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

Page 62: 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

62

Personne

nom adresse

Étudiant

num_carte adresse

Enseignant

grade adresse enseigner

{disjoint}

Modèle structurel

Généralisation / Spécialisation

Page 63: 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

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

Page 64: 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

64

Généralisation / Spécialisation multiple

Modèle structurel

Véhicule terrestre Véhicule aquatique

Auto Véhicule amphibie Bateau

Véhicule

Page 65: 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

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

Page 66: 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

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.

Page 67: 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

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.

Page 68: 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

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.

Page 69: 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

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

Page 70: 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

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.

Page 71: 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

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

Page 72: 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

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

Page 73: 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

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.

Page 74: 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

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

Page 75: 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

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

Page 76: 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

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

Page 77: 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

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

Page 78: 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

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

Page 79: 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

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

Page 80: 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

80

Modèle dynamique

• diagrammes de séquences

• diagrammes états-transitions

• diagrammes de collaboration

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

Page 81: 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

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

Page 82: 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

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

Page 83: 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

83

constructeursdestructeurs

sélecteursmodificateursitérateurs

Types Synchronisation

simple

synchrone

dérobant

minuté

asynchrone

Les messages

Modèle dynamique

Page 84: 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

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

Page 85: 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

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,..

Page 86: 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

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

Page 87: 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

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

Page 88: 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

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

Page 89: 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

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

Page 90: 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

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

Page 91: 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

91

État 1faire : Activité 1

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

...

Opération Activité / Action

Modèle dynamique

Page 92: 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

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

Page 93: 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

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

Page 94: 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

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

Page 95: 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

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

Page 96: 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

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

Page 97: 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

97

Modèle d ’implémentation

Les packages

Classes avec fort couplage « sémantique »

Liens de dépendance

Page 98: 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

98

Plan

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

Page 99: 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

99

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

Classes

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

Accesseurs L/E

Constructeurs, Destructeurs

Page 100: 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

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

Page 101: 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

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

Page 102: 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

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

Page 103: 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

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 ?

Page 104: 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

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

Page 105: 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

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

Page 106: 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

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)

Page 107: 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

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

Page 108: 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

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

Page 109: 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

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

Page 110: 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

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

Page 111: 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

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

Page 112: 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

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

Page 113: 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

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

Page 114: 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

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

Page 115: 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

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

Page 116: 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

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

Page 117: 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

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

Page 118: 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

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

Page 119: 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

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 »

Page 120: 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

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 »

Page 121: 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

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

Page 122: 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

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

Page 123: 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

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

Page 124: 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

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

Page 125: 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

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

Page 126: 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

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

Page 127: 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

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

Page 128: 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

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

Page 129: 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

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

Page 130: 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

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

Page 131: 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

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

Page 132: 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

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

Page 133: 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

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