Vous êtes sur la page 1sur 31

Gnie Logiciel Avanc Soutien

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/

Stefano Zacchiroli (Paris 7)

Soutien

8 juin 2011

1 / 22

Sommaire

Spcication informelle des charges

Conception objet

Stefano Zacchiroli (Paris 7)

Soutien

8 juin 2011

2 / 22

Rappel Quest-ce quun systme ?


Un systme est un ensemble dlments intragissant entre eux suivant un certains nombres de principes et de rgles dans le but de raliser un objectif. La frontire dun systme est le critre dappartenance au systme. Lenvironnement est la partie du monde extrieure au systme. Un systme est souvent hirarchis laide de sous-systmes. Un systme complexe se caractrise par :
sa dimension, qui ncessite la collaboration de plusieurs personnes ; son volutivit.

Example
une fourmilire, lconomie mondiale, le noyau Linux, . . .
Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 3 / 22

Rappel Types des charges

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.

Stefano Zacchiroli (Paris 7)

Soutien

8 juin 2011

4 / 22

Rappel Cas dutilisation

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.

Stefano Zacchiroli (Paris 7)

Soutien

8 juin 2011

5 / 22

Rappel Cas dutilisation

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

Stefano Zacchiroli (Paris 7)

Soutien

8 juin 2011

5 / 22

Rappel Cas dutilisation


uc Use Cases System Boundary receive order Waiter place order

Order Food

<<extend>> confirm order

Order Wine

Serve Food
<<extend>>

Cook Food
Chef {if wine was ordered}

Serve Wine Eat Food


Client facilitate payment pay accept payment Cashier <<extend>> {if wine was served}

Drink Wine

Pay for Food

<<extend>> {if wine was consumed}

Pay for Wine

http://en.wikipedia.org/wiki/File:Use_case_restaurant_model.svg, GNU GFDL Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 5 / 22

Rappel Diagramme de squence

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.

Stefano Zacchiroli (Paris 7)

Soutien

8 juin 2011

6 / 22

Rappel Exemple de diagramme de squence

http://www.tracemodeler.com/gallery/ Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 7 / 22

Rappel Exemple de diagramme de squence (cont.)

http://www.tracemodeler.com/gallery/ Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 7 / 22

Rappel Exemple de diagramme de squence (cont.)

http://www.tracemodeler.com/gallery/ Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 7 / 22

Rappel Exemple de diagramme de squence (cont.)

http://www.tracemodeler.com/gallery/

Stefano Zacchiroli (Paris 7)

Soutien

8 juin 2011

7 / 22

Rappel Diagramme dtat


Les diagrammes dtat (UML state machine ou UML statechart) reprsentent lvolution de ltat du systme (ou dun sous-systme) sous la forme dun automate. Une transition de cet automate est suivie en raction un vnement. Elle peut tre conditionne par des contraintes exprimes sur le systme.

Intuition
UML statechart + + + + +
Stefano Zacchiroli (Paris 7)

automate ni hritage entre les tats machine de Mealy machine de Moore variables & gardes ...
Soutien

(sortie tat) (sortie tat + trans.)

8 juin 2011

8 / 22

Rappel Exemple de diagramme dtat

http://en.wikipedia.org/wiki/File:UML_state_machine_Fig1.png

Stefano Zacchiroli (Paris 7)

Soutien

8 juin 2011

9 / 22

Rappel Exemple de diagramme dtat (cont.)

http://en.wikipedia.org/wiki/File:UML_state_machine_Fig2.png

Stefano Zacchiroli (Paris 7)

Soutien

8 juin 2011

9 / 22

Sommaire

Spcication informelle des charges

Conception objet

Stefano Zacchiroli (Paris 7)

Soutien

8 juin 2011

10 / 22

Rappel Exemple de diagramme de (une) classe

http://en.wikipedia.org/wiki/File:BankAccount.jpg

Figure: Diagramme de classe, rduit une classe

on retrouve, pour chaque classe :


1 2 3

nom de la classe (unique dans le paquet) attribues avec types (et valeur initial) mthodes avec noms et types (dentre et sortie)

Stefano Zacchiroli (Paris 7)

Soutien

8 juin 2011

11 / 22

Rappel Exemple de diagramme de (une) classe

http://en.wikipedia.org/wiki/File:BankAccount.jpg

Figure: Diagramme de classe, rduit une classe

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

Rappel Relation entre classes

Les classes peuvent tre mise en relation.

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.

Stefano Zacchiroli (Paris 7)

Soutien

8 juin 2011

12 / 22

Rappel Relation dassociation

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.

Stefano Zacchiroli (Paris 7)

Soutien

8 juin 2011

13 / 22

Rappel Diagramme de classe avec association

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

Rappel Syntaxe des multiplicits

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.

Stefano Zacchiroli (Paris 7)

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

Rappel Exemple de compositions et agrgations

Figure: diagramme de classe avec compositions et agrgations.

Le losange vide signie est agrg . Le losange plein signie est compos de .
Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 17 / 22

Rappel Composite : description

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 ?

Stefano Zacchiroli (Paris 7)

Soutien

8 juin 2011

18 / 22

Rappel Composite : description

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.

Stefano Zacchiroli (Paris 7)

Soutien

8 juin 2011

18 / 22

Rappel Composite : UML

Component

+ operation()

0..* child

Leaf

Composite

+ operation()

+ + + +

operation() add() remove() getChild()

1 parent

http://en.wikipedia.org/wiki/File:Composite_UML_class_diagram_(fixed).svg

Stefano Zacchiroli (Paris 7)

Soutien

8 juin 2011

19 / 22

Rappel Interpreter : description

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 ?

Stefano Zacchiroli (Paris 7)

Soutien

8 juin 2011

20 / 22

Rappel Interpreter : description

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.

Stefano Zacchiroli (Paris 7)

Soutien

8 juin 2011

20 / 22

Rappel Interpreter : UML

Stefano Zacchiroli (Paris 7)

Soutien

8 juin 2011

21 / 22

Rappel Interpreter : discussion

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

Stefano Zacchiroli (Paris 7)

Soutien

8 juin 2011

22 / 22