Stefano Zacchiroli
zack@pps.jussieu.fr
Laboratoire PPS, Universit Paris Diderot - Paris 7
8 juin 2011
URL http://upsilon.cc/zack/teaching/1011/gla/ Copyright 2011 Stefano Zacchiroli License Creative Commons Attribution-ShareAlike 3.0 Unported License http://creativecommons.org/licenses/by-sa/3.0/
Soutien
8 juin 2011
1 / 22
Sommaire
Conception objet
Soutien
8 juin 2011
2 / 22
Example
une fourmilire, lconomie mondiale, le noyau Linux, . . .
Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 3 / 22
Il y a trois grandes catgories de spcications de systme : Les spcications fonctionnelles : on dnit les services du systme en termes de relation entre les sorties et les entres. Les spcications non fonctionnelles : ce sont les contraintes et les proprits remplies par le systme dans son intgralit, comme, par exemple, lecacit, la robustesse, la scurit, . . . Les spcications lies aux domaines dactivit : ce sont des spcications, fonctionnelles ou non fonctionnelles, qui dnissent des informations ou des contraintes lies aux rgles qui rgissent certains domaines.
Soutien
8 juin 2011
4 / 22
Les cas dutilisation (use-cases) sont une technique fonde sur les scnarios qui jouent un rle central dans le Rational Unied Process que nous tudierons au prochain cours. Cest un des piliers de la notation UML utilise pour spcier les systmes laide dun modle objets. Stricto senso, un cas dutilisation regroupe plusieurs scnarios que lon regarde un niveau dabstraction susamment haut pour les assimiler.
Soutien
8 juin 2011
5 / 22
Un diagramme de cas dutilisation en UML explicite : Les acteurs du systme, cest--dire les entits qui intragissent avec lui et lui sont extrieurs. Les scnarios du systmes, regroups et organises suivant trois relations principales :
la gnralisation : explicite des sous-ensembles de scnario ; Faire X, cest une faon particulire de faire Y Y gnralise X linclusion : explicite un prxe dun scnario ; Pour faire X, il faut dabord faire Y Y est inclus dans X lextension : explicite des vnements supplmentaires. Faire Y, cest faire X et Z Y tend X
Soutien
8 juin 2011
5 / 22
Order Food
Order Wine
Serve Food
<<extend>>
Cook Food
Chef {if wine was ordered}
Drink Wine
Un diagramme de squence prsente les interactions entre les objets comme une succession de message(/rponse). On peut y dnoter des contraintes de rponses synchrones ou asynchrones, des tats bloquants, . . . La ligne du temps est bien dnie sur laxe verticale du diagramme Cette notation met laccent sur le protocole de communication entre les objets.
Soutien
8 juin 2011
6 / 22
http://www.tracemodeler.com/gallery/
Soutien
8 juin 2011
7 / 22
Intuition
UML statechart + + + + +
Stefano Zacchiroli (Paris 7)
automate ni hritage entre les tats machine de Mealy machine de Moore variables & gardes ...
Soutien
8 juin 2011
8 / 22
http://en.wikipedia.org/wiki/File:UML_state_machine_Fig1.png
Soutien
8 juin 2011
9 / 22
http://en.wikipedia.org/wiki/File:UML_state_machine_Fig2.png
Soutien
8 juin 2011
9 / 22
Sommaire
Conception objet
Soutien
8 juin 2011
10 / 22
http://en.wikipedia.org/wiki/File:BankAccount.jpg
nom de la classe (unique dans le paquet) attribues avec types (et valeur initial) mthodes avec noms et types (dentre et sortie)
Soutien
8 juin 2011
11 / 22
http://en.wikipedia.org/wiki/File:BankAccount.jpg
mthodes et attribues peuvent tre annots avec leur visibilit (scope) ; pour cela, UML ore des prxes standardiss : + public (default) # protected - private ~ package
Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 11 / 22
UML propose les relations suivantes : Association un lien smantique entre deux classes. Agrgation/composition une relation dappartenance. Gnralisation/spcialisation une relation dabstraction. Instanciation une relation daectation de paramtres. Ralisation une relation de conformit entre une interface et une implmentation.
Soutien
8 juin 2011
12 / 22
Il sagit de la notion mathmatique de relation. Une relation a une arit gauche et droite. Chaque objet impliqu a un rle dans la relation.
Exemples
Un scnario est jou par un joueur dans un partie. Une action est applicable sur plusieurs objets dune scne. Des objets sont ncessaires pour autoriser une action.
Soutien
8 juin 2011
13 / 22
Un association est forme par : un nom ; des multiplicits gauche et droite ; des rles aects chaque objet.
Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 14 / 22
Un entier n n objets interviennent dans la relation. Ltoile * plusieurs objets interviennent. Le segment n..* au moins n objets interviennent. Le segment n..m au moins n et au plus m objets interviennent.
Soutien
8 juin 2011
15 / 22
Rappel Agrgation/Composition
Lagrgation est une relation dappartenance
Lagrgation est forcement binaire (lassociation non) Exemples (container) :
Les pices dun chiquier lui appartiennent. Les joueurs dune partie appartiennent la partie.
La composition est une relation dagrgation qui tablit une relation de vie ou de mort dun objet sur un autre.
Exemples
Si lchiquier est dtruit alors ses pices aussi. Si une partie est termine, les joueurs peuvent en jouer une autre. (Ils survivent la partie.) Note La composition est une relation assez subtile et souvent tributaire de certains choix dimplmentation. Il est souvent prfrable de ne pas lutiliser (sauf en C++ car la gestion explicite de la mmoire ncessite une rexion prcise sur la notion de dure de vie quil faut considrer ds la phase de spcication).
Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 16 / 22
Le losange vide signie est agrg . Le losange plein signie est compos de .
Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 17 / 22
Exemple Dans un logiciel de dessin, il est possible de crer des groupes de formes. Un groupe de formes est alors considr comme une forme. Problme Comment voir une composition de formes comme une forme ?
Soutien
8 juin 2011
18 / 22
Exemple Dans un logiciel de dessin, il est possible de crer des groupes de formes. Un groupe de formes est alors considr comme une forme. Problme Comment voir une composition de formes comme une forme ? Solution Fournir un objet Shape qui implmente linterface dune forme ainsi que les services add et remove. Un objet ShapeComposite, hritant de Shape, correspond un noeud possdant des sous-composants qui sont des formes. Lorsquun message est envoy a une classe composite, elle le transfre toutes ses composantes.
Soutien
8 juin 2011
18 / 22
Component
+ operation()
0..* child
Leaf
Composite
+ operation()
+ + + +
1 parent
http://en.wikipedia.org/wiki/File:Composite_UML_class_diagram_(fixed).svg
Soutien
8 juin 2011
19 / 22
Exemple Composer les ltres nest pas susant, un utilisateur avanc doit pouvoir programmer ses propres ltres (visuellement ou textuellement). Problme Comment reprsenter un langage (syntaxe et smantique la fois) laide dobjets ?
Soutien
8 juin 2011
20 / 22
Exemple Composer les ltres nest pas susant, un utilisateur avanc doit pouvoir programmer ses propres ltres (visuellement ou textuellement). Problme Comment reprsenter un langage (syntaxe et smantique la fois) laide dobjets ? Solution Une classe abstraite Expression dont drive les diverses constructions du langage.
Soutien
8 juin 2011
20 / 22
Soutien
8 juin 2011
21 / 22
il sagit dune gnralisation du patron Command, pour cas plus complexes ce patron partage beaucoup des caractristiques (et critiques, comme la sret de typage) avec le patron Composite on utilise le contexte pour stocker les donnes pas locales, ncessaire pour interprter le langage
Soutien
8 juin 2011
22 / 22