Bases de la conception orient e objet

42
Bases de la conception orientée objet 1e année IUT - Semestre 2 Ivan Logre à partir des supports de Mireille Blay-Fornarino Université Nice Sophia Antipolis [email protected] http://mireilleblayfornarino.i3s.unice.fr/ Site web du module : https://mbf-iut.i3s.unice.fr/ 1

Transcript of Bases de la conception orient e objet

Page 1: Bases de la conception orient e objet

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

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

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

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

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

L’univers du logiciel

[1] Motivations

4

Page 7: Bases de la conception orient e objet

5 5

Où se trouve le logiciel ?

Page 8: Bases de la conception orient e objet

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

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

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

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

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

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

Quelle Qualité Logicielle ?

9

Page 15: Bases de la conception orient e objet

Quelle Qualité Logicielle ?

9

Page 16: Bases de la conception orient e objet

[2] UML, un peu d’histoire

10

Page 17: Bases de la conception orient e objet

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

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

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

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

15

Qu’est ce qu’un modèle ?

C’est le moment de participer

Page 22: Bases de la conception orient e objet

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

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

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

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

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

[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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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