uml : introductionustl - licence informatique programmation orientée objet 3 uml : introduction...
TRANSCRIPT
![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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/1.jpg)
![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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052314/5f08233a7e708231d420866c/html5/thumbnails/30.jpg)
30Programmation Orientée ObjetUSTL - Licence Informatique
UML : introduction
Counter CounterGraphicInterface
1 *�affiche
IncrementFunction
1
*
incremente
initialise
utilisateur
afficher valeur
visualise affiche
donnevaleur interface