Bases de la conception orient e objet
Transcript of Bases de la conception orient e objet
![Page 1: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/1.jpg)
Bases de la conception orientée objet
1e année IUT - Semestre 2
Ivan Logreà partir des supports de
Mireille Blay-FornarinoUniversité Nice Sophia Antipolis
[email protected]://mireilleblayfornarino.i3s.unice.fr/
Site web du module : https://mbf-iut.i3s.unice.fr/
1
![Page 2: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/2.jpg)
Objectifs du coursn Connaître la modélisation UML
‣ Savoir lire des modèles ; savoir les construire
‣ Faire le lien entre un modèle et le code qui pourrait correspondre.
2
![Page 3: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/3.jpg)
Objectifs du coursn Connaître la modélisation UML
‣ Savoir lire des modèles ; savoir les construire
‣ Faire le lien entre un modèle et le code qui pourrait correspondre.
n Savoir analyser un problème pour ensuite pouvoir l’implémenter‣ En répondant aux besoins des utilisateurs
‣ En assurant la qualité du logiciel produit (performance, utilisabilité, sécurité, maintenabilité, ...)
2
![Page 4: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/4.jpg)
Notationn Notes de TD (participation, effort, progrès) [0.75]
n Contrôle intermédiaire (QCM ou étude de cas) [0.75]
n Projet (Note individuelle au sein d’un groupe) [1]
3
![Page 5: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/5.jpg)
Notationn Notes de TD (participation, effort, progrès) [0.75]
n Contrôle intermédiaire (QCM ou étude de cas) [0.75]
n Projet (Note individuelle au sein d’un groupe) [1]
Soyez Rigoureux.Respectez: dates,notations,consignes.
3
![Page 6: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/6.jpg)
L’univers du logiciel
[1] Motivations
4
![Page 7: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/7.jpg)
5 5
Où se trouve le logiciel ?
![Page 8: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/8.jpg)
5
Finances
Web Nouvellesinteractions
Médecine
Industrie Domotique
Télécommunication
Fouille de données
Transports
Musique, sport,arts...
5
Où se trouve le logiciel ?
Sciences
![Page 9: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/9.jpg)
Mise en situation
Vous devez réaliser une application logicielle pour visualiser les données
météo dans un cockpit, que faîtes-vous?
6
![Page 10: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/10.jpg)
Mise en situation
Vous devez réaliser une application logicielle pour visualiser les données
météo dans un cockpit, que faîtes-vous?
C’est le moment de participer
6
![Page 11: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/11.jpg)
Activités du développement logiciel
7
Extrait de Bonnes Pratiques de développementENVOL_2010: 27 Septembre
Véronique BaudinViolaine Louvet
![Page 12: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/12.jpg)
Quelle Qualité Logicielle ?
8
Monteriez-vous dans l’avion pour lequel vous avez développé le
système de pilote automatique ?
![Page 13: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/13.jpg)
Quelle Qualité Logicielle ?
8
Monteriez-vous dans l’avion pour lequel vous avez développé le
système de pilote automatique ?
![Page 14: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/14.jpg)
Quelle Qualité Logicielle ?
9
![Page 15: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/15.jpg)
Quelle Qualité Logicielle ?
9
![Page 16: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/16.jpg)
[2] UML, un peu d’histoire
10
![Page 17: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/17.jpg)
11
Fin des années 90
(a.k.a. "quelque soit votre problème, on a la solution")
Retour d’expérience : Meh.Et si on définissait d’abord un langage de modélisation standard?
Booch, OMT, Coad/Yourdon, Fusion,SADT,OOSE, Schlaer/Mellor, HOOD, Merise
Des méthodes !
(Oui, j’y étais)
![Page 18: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/18.jpg)
12
Et un langage unique, un !
(…enfin presque toutes, p. ex. RdP, SADT/IDEF0, DFD, etc.)
Un cocktail de notations éprouvées.
n Auteurs : Grady Booch, Ivar Jacobson, James Rumbaugh.
n Standardisation OMG en 1997
n Promoteurs :
n Rational Software, Oracle
n HP, Microsoft, IBM
http://www.omg.org/spec/UML/2.5/PDF/
![Page 19: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/19.jpg)
13
Objectif : Tour de Babel(Résultat : tour de Pise?)
Standard d’UML 2.5 (2015)
794 pageshttp://www.omg.org/spec/UML/2.5/PDF/
http://www.prweb.com/releases/2005/04/prweb231386.htm
96% des développeurs le connaissent56% l’utilisent en développement
(en 2005, sur 500 répondants)
![Page 20: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/20.jpg)
14
À chacun son métier
IngénierieElectronique
IngénierieMécanique
Ingénieriedu
Bâtiment
IngénierieLogicielle
=> un support à la modélisation
À chacun son langage
![Page 21: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/21.jpg)
15
Qu’est ce qu’un modèle ?
C’est le moment de participer
![Page 22: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/22.jpg)
16
Qu’est ce qu’un modèle ?
Visualiser le systèmeUne simplification de la réalité, afin de
Aider et guiderla construction du système
Spécifier
Documenterles décision
la structurele comportement
![Page 23: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/23.jpg)
16
Qu’est ce qu’un modèle ?
Visualiser le systèmeUne simplification de la réalité, afin de
Aider et guiderla construction du système
Spécifier
Documenterles décision
la structurele comportement
![Page 24: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/24.jpg)
17
Résumé : Qu’est ce qu’UML ?
UML est un langageUML n’est pas une méthodologie
UML supporte:✓ la visualisation,✓ la spécification,✓ la construction,✓ la documentation.
UML permetune description graphique et textuellede l’architecture et du comportement
(Cerise sur le gâteau, on peut même générer du code)
![Page 25: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/25.jpg)
18
Points forts d’UML ?
Un langage normalisé:précisionstabilité
interopérabilité
Support de communicationpolyvalent et souple
facilite la compréhension de représentations abstraites complexes
![Page 26: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/26.jpg)
19
Points faibles d’UML ?
"Unified" => Complexité => Apprentissage(794 pages pour définir un langage)
"Language" =/= méthodologiele processus de développement reste une difficulté
![Page 27: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/27.jpg)
[3] UML, un survol
20
Vivek Nallur et al, Smart Route Planning Using Open Data and Participatory Sensing (2015)
https://embeddedmotioncontrol.wordpress.com/2011/05/18/its-uml-time/
![Page 28: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/28.jpg)
21
Vue fonctionnelle
Interactions entre les acteurs et le système
Exemples :
Objectifs à atteindre (cas d’utilisation)
Scénarios d’intéraction typiques (diag. de séquence)
![Page 29: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/29.jpg)
22
Diagramme des cas d’utilisation
Montre ce que fait le système et qui l’utilise
SystèmeDeContrôleDAcces
Capteur Incendie
PorteurDeCarte
EntrerDébloquerLesPortes
GérerLesCartesAdministrateur
ListerLes TentativesDeFraudes
Gardien
Sortir
![Page 30: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/30.jpg)
23
Diagramme de séquenceMontre les flux de communication au sein d’un scénario
donne un aspect temporel
compte de Pauldistributeur banquePaul
retirer(500)
débiter(500)
carte de Paul
lireN°Compte()
reserve
retirerDeLArgent(500,88219)
sortirDesBillets(5)
sortirBillets ()
![Page 31: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/31.jpg)
24
Diagramme de collaborationMontre les flux de communication au sein d’un scénario
en se centrant sur les objets impliqués
compte de Paul
distributeur banque
carte de Paul
reserve de billets
Paul
4 : débiter(500)1 : retirer(500)
2 : lireN°Compte()
3 : retirerDeLArgent (500,88219)
6 : prendreBillet()
5 : sortirDesBillets(5)
88219
Non étudié cette année
![Page 32: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/32.jpg)
25
Vue structurelle
Identification des constituants du système (ie. objets/composants)
Exemples :
Identifier pour chaque classe ses attributs, opérations, méthodes, leurs liens… (diag. de classe)
Regrouper les classes fortement liées en composants autonomes (diag. de package)
![Page 33: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/33.jpg)
26
Diagramme de classe
Montre les classes, leurs constituants et leurs relations
Client 1..4 1..*titulaires
Consortium
Comptenumérosolde...
1..*
0..*
1
Banquenuméronom
Distributeur 0..*
1
0..*
1..*
signataire1
0..* CarteBleue
coderetraitMax
1..*AcceptéPar
![Page 34: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/34.jpg)
27
Diagramme de packages
Montre les regroupements de classes et leurs relations
Regrouper entre elles des classes liées les unes aux autresFaciliter la maintenance et l’évolution du projet
Rendre plus indépendantes les différentes parties d’un logiciel
![Page 35: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/35.jpg)
28
Diagramme d’objet
Montre les instances et leurs liens à l’exécution
c1 : Compte
c2 : Compte
paul : Client
pierre : Client
marie : Client c3 : Compte
titulaires
titulaires
: CarteBleue
titulaires
titulaires
signataire
: CarteBleue
sophie : Client
: Banque
: Banque
fred : Client c4 : Comptetitulaires
: Banque
signataire
: Consortium
: Consortium
: Distributeur
: CarteBleuesignataire
: Distributeur
EstAcceptéPar
EstAcceptéPar
EstAcceptéParExécution 1
Exécution 2
![Page 36: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/36.jpg)
29
Vue dynamique
Description de l’évolution des objets au long de leur cycle de vie
Exemples :
Changement d’état de la naissance à la mort d’un objet du fait des interactions (diag. d’état)
Parallélisme d’activité, synchronisation lors de l’exécution pour assurer la cohérence (diag. d’activité)
![Page 37: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/37.jpg)
30
Diagramme d’états
Montre les attentes d’évènements et les différents états d’un objet
En attente En attente du code
En vérification
En attente du montant
carte insérée
code frappémauvais code
En distribution
code bon
En attente retrait carte
carte retirée
montant correct
montant incorrect
billets retirés
![Page 38: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/38.jpg)
31
Diagramme d’activité
Explicite des besoins de synchronisation de processus au sein d’un scénario
![Page 39: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/39.jpg)
32
UML dans l’industrie
utilisation +-
Classe
Package
Use Case
Séquence
Collaboration
États/transition
Activité
Composant
com
préh
ensio
n
-
+
![Page 40: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/40.jpg)
33
Modes d’utilisation d’UML
Mode Esquisse (sketch)Informel, incomplet, manuelSupport de communication
pour concevoir des parties critiques
Mode Plan (blue print)Détaillé, formel, outillé
Génération de squelettes de codeComplétion du code par un développeur
Mode Langage de ProgComplet, outillé, exécutable
Pas vraiment disponible actuellement!
![Page 41: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/41.jpg)
34
Différents niveaux de description
Selon l’activité de l’ingénieur, qu’il s’agisse d’analyse, de conception ou d’implémentation, le niveau de détail avec lequel est représenté le diagramme des classes change énormément. – le point de vue de l’analyse, qui en général se doit d’oublier tout aspect de mise en oeuvre et, en ce sens, est complètement indépendant du logiciel (on n’y parlera pas de structuration des données : tableaux, pointeurs, listes, ...) ;– le point de vue de la conception, qui cherche à identifier les interfaces, les types des objets, leur comportement externe et la façon interne de les mettre en oeuvre, sans être encore fixé sur un langage ;– le point de vue de l’implémentation, qui cherche à décrire une classe, ses attributs et ses méthodes en pensant déjà au code qui les implémentera et prend en compte les contraintes matérielles de temps d’exécution, d’architecture, etc.
Dans le cadre d’une analyse, seuls les noms des attributs et les principales méthodes publiques de la classe ont à être mentionnées. Dans le cadre d’une conception et, à plus forte raison, d’une implémentation, la description des classes devra être exhaustive. Mais les différences ne se limitent pas au seul niveau de description. De nombreuses classes spécifiques seront ajoutées lorsque l’on passe de l’analyse à la conception, l’organisation des diagrammes peut évoluer, etc.
![Page 42: Bases de la conception orient e objet](https://reader035.fdocument.pub/reader035/viewer/2022062405/62ab8140f958921c246e7c72/html5/thumbnails/42.jpg)
35
Bibliographie
Ce cours a été monté en utilisant de nombreux supports dont je remercie chaleureusement ici les auteurs.
D’autres références se trouvent sur le site du module.
Merise: 5ème Partie Dossier "SAM l'Informaticien" du 5 Mars au 18 Mars 2001 par Stéphane Lambert http://www.vediovis.fr/index.php?page=merise5Introduction au langage UML, SUPINFODe Merise à UML, Nasser Kettani, Dominique Mignet, Eyrolleshttp://www.compucycles.com/nouveausite/articles/Merise/Article_07.htmUML-MERISE Etude Comparative, OSITEC-Consultants, 2004-2005Modélisation Orientée objet, M.Grimaldi – janvier 2010