UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction...

30

Transcript of UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction...

Page 1: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.
Page 2: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

2Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

➢ Construire un bon logiciel :➢ Répondre aux objectifs fixés (satisfaire le client)➢ Avoir une base architecturale solide qui permette l’évolution➢ Mettre en place un processus de développement

� maîtriser coûts et délais

➢ Définir des modèles pour➢ Spécifier la structure et les comportements attendus du système➢ Visualiser et contrôler l’architecture pour mieux la comprendre

� simplifier, réutiliser, gérer les risques

Modélisation

Page 3: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

3Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

➢ Construire une niche➢ Planches, un marteau, des clous, une personne, quelques heures.➢ Le client (le chien) sera probablement

➢ Construire une maison➢ Matériaux et outils plus « complexes »➢ Dessiner des plans,➢ Qualité ⇒ tenir compte des contraintes (utilisation, besoins en

éclairage, chauffage, eau, normes, …)➢ Une seule personne ?➢ Délais ? Coûts ?

De la niche à l'immeuble

Page 4: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

4Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

➢ Construire un immeuble :➢ Prendre l’avis des investisseurs (style, forme, taille , etc.)

(y compris les modifications) ➢ Plannings temps et budget primordiaux➢ De nombreuses personnes réparties en équipes➢ Concevoir de nombreux plans et modèles➢ Le plus souvent, faire une maquette➢ Coordonner les différentes équipes, faciliter la communication entre elles➢ etc.

Pour une voiture, démarche similaire...

Page 5: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

5Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

➢ Ecrire beaucoup de lignes de code, même très propres, ne suffit pas

➢ Nécessité de penser au préalable l’architecture logicielle du système

Construction d’un modèle indispensable

Système logiciel = Immeuble

Page 6: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

6Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

➢ Qu’est-ce que c’est ?« Une simplification de la réalité »

➢ Pourquoi ?« Mieux comprendre le système à développer »Servir d’interface entre les acteurs du projet

➢ Doit être proche de la réalité➢ 4 objectifs :

➢ Aider à visualiser un système tel qu’il est ou doit être.➢ Préciser la structure ou le comportement d’un système.➢ Fournir un canevas pour la construction du système.➢ Permettre de documenter les décisions prises.

➢ D’autant plus nécessaire que le système est complexe

Modèle

Page 7: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

7Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

➢ UML : Unified Modeling Language➢ langage conçu pour l’écriture de plans d’élaboration de logiciels (pas

une méthode)➢ né de la fusion de plusieurs méthodes objet, standard de fait➢ utilisable pour visualiser, spécifier, construire et documenter

➢ un méta-modèle : ➢ Langage sans ambiguïtés➢ Peut servir de support pour tout langage objet➢ Notation graphique simple compréhensible par des non informaticiens

et facilitant la communication

Modélisation orientée objet

Page 8: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

8Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

➢ Vues statiques ➢ diagrammes d’objets, ➢ diagrammes de classes, ➢ diagrammes des cas d’utilisation, ➢ diagrammes de déploiement.

➢ Vues dynamiques➢ diagrammes de séquences, ➢ diagrammes de collaboration, ➢ diagrammes d’états-transitions,➢ diagrammes d’activités.

Statique et Dynamique

Page 9: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

9Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

Rectangle

largeur

hauteur

draw()

moveTo()

resize()

appli::geom::Triangle

nom

attributs

méthodes

nom « complet », intégrant le paquetage

Classe documentée

Classe non documentée

Classes

Page 10: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

10Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

UneClasse

+ attPublic

- attPrivate

- attStatic

+ methPublic()

- methPrivate()

privé

publique

statique

Page 11: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

11Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

Rectangle

- largeur : float

- hauteur : float

- estVisible : boolean = true

+ draw()

+ moveTo( newP : Position)

+ resize( scale : Float)

+ toString() : String return “rectangle ”+largeur+“,”+hauteur;

note

Classe détaillée

Page 12: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

12Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

Objet1

:Rectangle

:Rectangle

largeur = 10

hauteur = 20

estVisible = true

stylo

stylo:Crayon

relation de visibilité

Objets (instances)

Page 13: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

13Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

Identifier les classes ne suffit pas, elles coopèrent/ interagissent entre elles, il faut exprimer ces relations (le plus souvent binaires).

Relations

➢ Dépendances➢ relations d’utilisation

➢ Associations➢ relations structurelles, connexion sémantique

➢ Agrégation, composition

➢ Généralisations : interfaces➢ + relations d’héritage (relation « is a », cf. UE COO du S6)

Page 14: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

14Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

C’est une relation structurelle qui exprime une relation sémantique entre (le plus souvent) deux classes.

Elle est le plus souvent réflexive.

On peut la compléter de 4 informations :� Nom� Rôles� Multiplicité� Agrégation

Association

Page 15: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

15Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

Personne Entrepriseemployé employeur

Travaille pour�1..* 0..1

cardinalitésdirection

nom

association

rôles

Exemple

Page 16: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

16Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

➢ Définissent la multiplicité des rôles

➢ Une cardinalité à une extrémité signifie qu’à l’autre extrémité ce nombre d’éléments doit exister pour tout objet de la classe.

➢ Expressions possibles :➢ n : exactement n➢ n..m : de n à m➢ * : quelconque (équivalent à « 0..n » ou « 0.. »)➢ n..* : n ou plus➢ liste de cardinalités : 1..2,3..5 = 1 à 5 sauf 4

Cardinalités

Page 17: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

17Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

Personne Entreprise

Travaille pour ►

employéemployeur

0..11..*

◄ est dirigée pardirecteur

1 0..n

Il peut exister plusieurs relations entre les mêmes classes

Page 18: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

18Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

Exprimer le fait qu’une classe en utilise une autre.Toute modification de la classe utilisée risque d'avoir un impact sur la classe

utilisatrice. Relation d'obsolescence.

Rectangle

largeur

hauteur

draw()

moveTo()

resize()

java::awt::Color

dépendance

Dépendance

Page 19: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

19Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

Rendre unidirectionnelle la relation Pour indiquer que les instances d'une classe ne "connaissent" pas les instances d'une autre.

CandidatElecteur vote pour

* 0..1

Navigabilité restreinte

Page 20: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

20Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

quand on veut exprimer les propriétés d’une relation

Personne Entrepriseemployé employeur

Travaille pour�1..* 0..1

Emploi

salaire

dateEmbauche

fonction

classe-association

Classe-association

...

Page 21: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

21Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

Interfaces

Page 22: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

22Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

Association « tout/partie », relation de possession « has-a »

Zoo

Animal

*

1agrégationtout

partie

Agrégation : le tout est responsable de la gestion de ses parties.Relation de subordination.

Agrégation/Composition

Un animal peut appartenir à un zoo (qui peut posséder plusieurs animaux).Un objet animal peut être lié à un autre objet.

Page 23: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

23Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

Port

Bateau

0..1

*

Compagnie

1

*

appartient

la partie est éventuellement partagée

Page 24: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

24Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

Composition : agrégation forte, la partie n’est pas partagée

Zoo

Animal

1..*

0..1compositiontout

partie

Un animal peut appartenir à un zoo (qui peut posséder plusieurs animaux).Un objet animal ne peut pas être lié à un autre objet.Si on détruit l'objet zoo, on détruit aussi les instances animaux liées.

Page 25: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

25Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

CounterGraphicInterface

Counter

#value : int#incF:IncrementFunction

+getValue() : int+increment()+initValue(value:int)

« interface »IncrementFunction

increment(value : int) : int

SimpleIncrement ModularIncrementAnotherIncrement

IncrementFunction

Javax::swing::JFrame

value = incF.increment(value);

Exemple : compteur

1 *�affiche

Page 26: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

26Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

➢ représenter le modèle conceptuel➢ identifier les acteurs et leurs interactions avec le système

➢ permettre de structurer les besoins des utilisateurs et les objectifs du système

➢ permettre de définir le comportement attendu du système, sans en préciser la réalisation ➢ on ne s’occupe que des objectifs, pas des solutions d’implémentation➢ clarification et organisation des besoins

Cas d'utilisation (use cases)

Page 27: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

27Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

traiter login

acteur cas d’utilisation

gestionnairede sécurité

� acteur : une personne ou un composant à l’origine d’une interaction avec le système

� cas d’utilisation : un objectif du système, un besoin d’un acteur

noms

Représentation

Page 28: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

28Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

client

imprimer solde compte

débite

consulter solde compte

imprimer ticket

retirer argent

« include »

« include »

relation d’utilisation

Inclusion

Page 29: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

29Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

consulter solde compte

retirer argent

mise en service

ravitailler billets

client

technicien

visualise

débite

DAB

package

retrait possible dans la limite du stock du coffre

technicien éteint DAB avant de le ravitailler

Diagramme de cas d'utilisation

Page 30: UML : introductionUSTL - Licence Informatique Programmation Orientée Objet 3 UML : introduction Construire une niche Planches, un marteau, des clous, une personne, quelques heures.

30Programmation Orientée ObjetUSTL - Licence Informatique

UML : introduction

Counter CounterGraphicInterface

1 *�affiche

IncrementFunction

1

*

incremente

initialise

utilisateur

afficher valeur

visualise affiche

donnevaleur interface