Vous êtes sur la page 1sur 18

CNAM - CRA Nancy

2003

Jacques Lonchamp

DEUXIEME PARTIE
Les techniques de spcification.

1. Introduction
Tout produit complexe construire doit dabord tre spcifi ; par exemple un pont
de 30 mtres de long, supportant au moins 1000 tonnes, construit en bton, etc. Ces
spcifications peuvent tre considres comme un contrat entre un client (la
collectivit qui veut raliser le pont) et un producteur (lentreprise de gnie civil).
En informatique, le client et le producteur peuvent tre diffrents selon les phases du
cycle de vie.
La spcification des besoins ou spcification des exigences (requirements)
est un contrat entre les futurs utilisateurs et les concepteurs. Elle concerne les
caractristiques attendues (exigences fonctionnelles et non fonctionnelles :
efficacit, taille, sret, scurit, portabilit, etc.). Elle intervient pendant la
phase dAnalyse des besoins et se rdige en langue naturelle.
La spcification dun systme est un contrat entre les futurs utilisateurs et les
concepteurs. Elle concerne la nature des fonctions offertes, les
comportements souhaits, les donnes ncessaires, etc. Elle intervient
pendant la phase dAnalyse du systme.
La spcification dune architecture de systme est un contrat entre les
concepteurs et les ralisateurs. Elle intervient pendant la phase de Conception
gnrale. Elle dfinit larchitecture en modules de lapplication raliser.
La spcification technique dun module, dun programme, dune structure de
donnes ou dun type de donnes est un contrat entre le programmeur qui
limplante et les programmeurs qui lutilisent. Elle intervient pendant la phase
de Conception dtaille.
De manire gnrale une spcification dcrit les caractristiques attendues (le quoi)
dune implantation (le comment).
Dans cette partie nous traitons essentiellement de la spcification dun systme en
termes de fonctions, de donnes, de comportement.
Il est souhaitable quune spcification soit claire, non ambigu et comprhensible.
Les descriptions en langue naturelle manquent souvent de prcision.
Les spcifications doivent aussi tre cohrentes (pas de contradictions) et
compltes.
La compltude peut prendre deux formes :
interne, cest dire que tous les concepts utiliss sont clairement spcifis,
et externe, par rapport la ralit dcrite. Cette seconde forme est quelque
peu illusoire dans la pratique. On ne peut pas en gnral spcifier tous les
dtails ou tout le monde qui entoure un systme.

2. Les styles de spcification


Il y a deux critres de classification orthogonaux :
la formalit : on distingue des spcifications informelles (en langue naturelle),
semi formelles (souvent graphiques, dont la smantique est plus ou moins prcise),
formelles (quand la syntaxe et la smantiques sont dfinies formellement par des
outils mathmatiques).

le caractres oprationnel ou dclaratif : les spcifications oprationnelles


dcrivent le comportement dsir par un modle qui permet dune certaine manire
de le simuler; par opposition, les spcifications dclaratives dcrivent seulement les
proprits dsires.

3. Des techniques de spcification pour les phases danalyse


3.1. Les spcifications en langue naturelle
Elles sont trs souples, conviennent pour tous les aspects, sont trs facilement
communicables des non spcialistes. Mais elles manquent de structuration, de
prcision et sont difficiles analyser.
Des efforts peuvent tre faits pour les structurer (spcifications standardises) :
chapitres, sections, items, justifications (rationale), etc.
Exemple :
3.5.1 Adding nodes to a design
3.5.1.1 To add a node, the user selects the appropriate node type from the entity type menu. He or she then
moves the mouse so that the cursor is placed within the drawing area. On entering the drawing area, the
cursor shape should change.
Rationale:
The editor mut know the node type so that it can draw the correct shape and invoke the appropriate checks
for that node. The cursor shape change indicates that the editor is in node drawing mode'.
3.5.1.2 The user moves the cursor to the approximate node position and any mouse button is pressed. This
should cause the node symbol, in a standard size set up by the symbol definer, to appear surrounding the
cursor. It may then be dragged by mo ving the mouse, with the button depressed, to its required position.
Releasing the mouse button fixes the node position and highlights the node.
Rationale:
The user is the best person to decide where to position a node on the diagram. This approach gives the user
direct control.
3.5.1.3 If the entity type is such that its symbol may be varied in size, the fact that the symbol size is variable
should be indicated as part of the node highlighting.
Specification: ECLIPSE/WORKSTATION_TOOLS/DE/FS. Section 3.5.1

3.2. Les spcifications techniques dans des langages spcialiss ou des


langages informatiques de haut niveau
Des langages semi formels spcialiss pour spcifier des systmes ont t
proposs. Ils comportent des sections et champs prdfinis, ce qui force une
certaine structuration.
Certains utilisent aussi des langages de haut niveau comme des pseudo codes pour
dcrire les fonctionnalits attendues.
Exemple : spcification en ADA de lexemple prcdent.
-- the procedure Add_to_design describes the actions
-- which should take place when a new node is added
-- to the design.
procedure Add_to_design is
begin
-- Select the type of node to be placed on the design
-- A menu of known nodes types is available and the

-- selection is made from this.

Node_type := Select_node_type(Node_type_menu);
-- the cursor should now be moved to the drawing area
loop

Cursor_position := Track_cursor;
exit when Inside_drawing_area (Cursor_position);
end loop;
-- when the cursor is in the drawing area, change its shape
-- to a circle
Change_cursor_shape (Circle);
-- find the position where the node is to be inserted. This is
-- indicated by pressing the mouse button
loop
Position := track_cursor;
exit when Mouse_button_pressed;
end loop;
-- draw the shape to be inserted
Draw_shape (Node_type, Position);
-- the user may drag the shape to another position. Its
-- final position is when the mouse button is released
loop
Position := Track_cursor;
Draw_outline (Position);
Draw_shape (Node_type, PosItion);
exit when Mouse_button_released;
end loop;

-- Once a node has been placed on a diagram, enter its


-- details in the design database
Add_new_node_to_design_database (Node_type, Position);
-- if the symbol size can be changed, indicate this
-- by drawing stretch blobs on the symbol otherwise
-- highlight it in some way.
if Node_symbol_is_stretchy (Node_type) then
Draw_stretch_blobs (Node_type, Position);
else
Highlight_node (Node_type, Position);
end if;
end Add_to_design;

3.3.
Les diagrammes de flots de donnes (DFD)
Il sagit dune technique semi-formelle et oprationnelle. Les DFD dcrivent des
collections de donnes manipules par des fonctions. Les donnes peuvent tre
persistantes (dans des stockages) ou circulantes (flots de donnes).
La reprsentation graphique classique distingue :
les fonctions par des cercles
les stockages par des botes ouvertes
les flots par des flches
les entits externes par des rectangles
Au niveau le plus abstrait, on peut se contenter des entits linterface (acteurs) et
des flots quils schangent, sans dcomposition en fonctions. On parle alors de
diagramme de contexte. En faisant apparatre les fonctions et en les raffinant de
plus en plus, on obtient des DFD diffrents niveaux dabstraction.
La figure 1 donne un exemple de DFD, concernant la slection des rponses un
appel d'offre. Il s'agit du diagramme de contexte.

Le diagramme suivant (Fig. 2) est un premier raffinement du diagramme de contexte.


Responsable
du projet

Critres de
slection

Description
projet

Slection des
rponses

Appel d'offre

Proposition
Socits de
service

Lettre d'acceptation
Lettre de refus

Fig.1. Exemple de diagramme de contexte

Proposition

Saisie
propositions

Acceptation
Lettre d'acceptation

Critres de
slection

PROPOSITIONS

Saisie
critres

Description
projet

Lettre de refus

Note

CRITERES

Refus
Slection

Saisie
projet

PROJETS

Fig.2. Raffinement du DFD prcdent (les flches entrantes et sortantes doivent tre les mmes)

Les DFD sont une notation semi formelle, car la smantique des fonctions nest pas
spcifie prcisment (que signifie exactement Evaluation ?), ni les aspects lis au
contrle ( ou squencement des oprations).
Exemple : plusieurs interprtations sont possibles pour le DFD lmentaire suivant
A

A produit une donne et attend que B la traite pour en produire une autre, ou
A et B sont des processus autonomes avec un tampon entre eux.
Les DFD peuvent tre analyss le recherche de formes pathologiques, comme le
trou noir, le gnrateur spontan, etc.

Pour ces raisons les DFD sont soit complts par dautres spcifications, soit
tendus : flots de contrle, tampons, etc. Ils connaissent un trs grand succs pour
spcifier les fonctions dun systme cause de leur simplicit et de leur facilit de
comprhension par des non informaticiens.
3.4. Les machines tats finis
Cest une technique formelle et oprationnelle trs largement rpandu pour dcrire
les aspects lis au contrle. Il consiste en :
un ensemble fini dtats (S),
un ensemble fini dentres (I),
une fonction de transition t : S x I -> S ; cest une fonction partielle. Une certaine
entre dans un certain tat fait passer un autre tat.
Graphiquement une machine tats finis est reprsent par un graphe (appel
diagramme dtats) dont les noeuds sont les tats. Un arc nomm a va de s1 s2 si
et seulement si t(s1,a)=s2. La figure 3 donne comme exemple, le diagramme dtats
dun appel tlphonique.
En attente
Raccroche

Raccroche
Dcroche
En tonalit

Dlai
termin

Fin
dlai

Emet chiffre

Emet chiffre

En numrotation
Numro incorrect

Diffusion
message

Numro Correct
En connexion
Etat occup

Appel achemin
En sonnerie
Appel dcroche

Fin message

En communication

Appel raccroche
Dconnecte
Fig.3. Diagramme dtats dune ligne tlphonique.

Le modle est souvent enrichi de concepts supplmentaires : un tat initial (s0 S),
des tats finaux (F S), nots souvent par un double cercle, des signaux de sortie O
( t : SxI -> SxO), nots souvent par <e,s> sur les arcs (lentre e dans un certain tat
fait passer un autre tat avec production de la sortie s).

Les limitations de ce modle sont videntes. Dans les systmes complexes le


nombre des tats peut tre norme et la modlisation complte irralisable. La seule
possibilit est dabstraire de nombreux dtails. Par ailleurs, il sagit dun modle
synchrone ; cest dire qu tout instant un tat global unique doit tre dfini et une
seule transition peut survenir. Il est donc trs mal adapt la description de
systmes asynchrones, o plusieurs composants voluent en parallle de manire
assez autonome, comme le montre lexemple suivant du producteur/consommateur.
Exemple : modlisation un systme producteur consommateur avec un tampon
deux places ; la modlisation du producteur (2 tats), du consommateur (2 tats) et
du tampon (3 tats) sparment sont simples (cf. Fig.4). La modlisation complte
ncessite un grand nombre dtats (2 x 2 x 3 = 12 tats -cf. Fig.5); on parle
dexplosion combinatoire dans les cas complexes ; un tat <1, P2, C1> signifie que le
tampon est dans ltat 1 (contient 1 message), le producteur dans ltat P2 (il vient de
produire) et le consommateur dans ltat C1 (il vient de consommer).
Produit

(a)

(b)
P2

P1

Retire
C2

C1

Dpose

Consomme
Dpose

Dpose

(c)
2

Retire
Retire
Fig.4. Modlisations spares du producteur(a), du consommateur(b), du tampon(c)

<0, P1, C1>


Dpose
Produit
Retire

Consomme

Con
som
me

<0, P2, C1>

<1, P1, C1>

Con
som
me

Produit
Retire

<1, P2, C1>

<0, P1, C2>

Con
som
me

Consomme
Produit

Produit

<2, P2, C1>

<1, P1, C2>

<2, P1, C2>


Con
som
me

Produit
Retire

<0, P2, C2>

<2, P1, C1>


Dpose

Produit
Retire

Dpose

Dpose
<1, P2, C2>

Fig.5. Modlisation complte du producteur consommateur

<2, P2, C2>

Il faut noter que des modles de machines tats finis structures ont t proposs
qui contournent cette difficult. Cest le cas en particulier des statecharts de Harel
(repris dans UML). Les machines tat finis sont trs utilises pour la spcification
du comportement des composants lmentaires des systmes.
3.5.
Les rseaux de Petri (RdP)
Cette technique formelle et oprationnelle est particulirement bien adapt pour
dcrire le comportement des systmes asynchrones avec des volutions parallles.
Un RdP est constitu :
dun ensemble fini de places (graphiquement des cercles),
dun ensemble fini de transitions (graphiquement des barres),
dun ensemble fini de flches, connectant soit des places des transitions, soit
des transitions des places.
Chaque place peut contenir un ou des jetons. Ltat du RdP est dfini par le
marquage de ses places. Lvolution du marquage obit la rgle suivante : chaque
transition a des places dentre et des places de sortie ; si toutes les places dentre
contiennent au moins un jeton, la transition est franchissable ; elle peut alors tre
franchie ('tire'), ce qui retire un jeton de chaque place dentre et ajoute un jeton
dans chaque place de sortie. Si plusieurs transitions sont franchissables, le choix de
celle qui est tire est indterministe.
Les transitions modlisent en gnral des actions et la prsence des jetons la
satisfaction des conditions ncessaires leur ralisation.
Exemple : un RdP et son volution (cf. Fig.6).
On peut interprter ce rseau comme deux activits asynchrones qui se partagent
une ressource (modlise par la place P3). Les 2 jetons dans P1 et P2 modlisent
ltat des 2 activits. Le jeton dans P3 modlise la ressource prise par une des 2
activits (transitions t3 et t4) et rendue aprs utilisation (transitions t5 et t6).

P1
t1
P4

P3

t2

t1

t4

P6

P2
P3

t2

P4

P5

t3

t5

P1

P2

t4

t3

P6

P7

P5

P7

t6
t5

tat initial (t1 et t2 franchissables)

t6

t1 franchie (t2 et t3 franchissables)

P1

t1

P1

P2
P3

t2

P4

t1

t4

P6

t1

t4

t5

P2
P3

t2

P4

P5

t3

P6

t6

P1
t2

P4

P7

t3 franchie (t5 franchissable)


la ressource est prise par lactivit de gauche

P2
P3

t4

t5

t2 franchie (t3 ou t4 franchissables)

t1

P5

P6

t6

P1

t2

t3

P7

t5

P3

P4

P5

t3

P2

P7

t6

t5 franchie (t1 et t4 franchissables)


la ressource est rendue par lactivit de gauche

P5

t4

t3

P6

t5

P7

t6

t4 franchie ( (t1 et t6 franchissables)


la ressource est prise par lactivit de droite
etc.

Fig.6. Un RdP et son volution

Si on suppose que les 2 activits se partagent 2 ressources, on peut avoir par


exemple le RdP de la Fig.7. Il souffre dun danger dinterblocage. En effet si un jeton
de R est consomm par t2 et lautre immdiatement aprs par t6, t3 et t7 ne peuvent
plus tre franchies faute de jeton restant dans R. Rien ne pleut plus voluer.

P5

P1

t1

t5
R

P2

P6

t2

t6

P3

P7

t3

t7

P4

P8

t4

t8

Fig.7. Un RdP risquant linterblocage.

Le chiffre 2 sur certains arcs signifie que 2 jetons sont produits par la transition sur
cet arc.
Au contraire, celui de la Fig.8. est vivant, cest dire sans possibilit dinterblocage,
car les 2 jetons de R sont consomms et rendus simultanment.
P1

t1

t5
R

P2

P6

t2

t6
2

P3

P7

t3
P4
t4

Fig.8 . Un RdP vivant.

t7
2

P8
t8

Il existe des techniques mathmatiques permettant de prouver des proprits des


RdP (par exemple, existence d'interblocage ou caractre vivant du rseau). Une
technique de base est la construction de l'arbre de tous les marquages accessibles.
Les RdP permettent de modliser trs facilement le producteur consommateur
introduit dans le paragraphe sur les machines tats finis (cf. Fig.9). On nobserve
pas la mme explosion combinatoire du nombre de places car chaque sous systme
conserve son tat (jeton).
Produit

Retire

C2

C1

P2

P1

Consomme

Dpose
Dpose

Dpose

Retire

Retire

Produit

Dpose

Dpose
P1

P2

1
Retire

C1

2
Retire

C2
Consomme

Fig.9. La modlisation du producteur / consommateur avec des RdP.

Les RdP souffrent eux aussi de plusieurs limitations que diverses extensions tentent
de contourner : typage des jetons (RdP colors), ajout de prdicats, ajout de
caractristiques temporelles au franchissement des transitions, etc. Il sagit du
modle de comportement le plus frquemment utilis.

3.6. Les schmas entits associations EA (ou entits relations ER)


Il sagit dune technique semi formelle et dclarative (Peter Chen, 1976). Ces
schmas permettent de spcifier la structure des donnes et de leurs relations, ce
qui nest fait ni dans les DFD, ni dans les modles orients contrle. Cest
indispensable pour les systmes organiss autour de larges ensembles de donnes
interconnectes.
Les concepts du modle de base sont :
les entits, qui sont des collections ditems partageant des proprits
communes (occurrences dentits),
entit
les associations (ou relations), qui traduisent
entit attribut
attribut
lexistence de liens entre entits (occurrences d
associations entre occurrences dentits),
rel.
rel.
les attributs (ou proprits), attachs
attribut
attribut
aux entits et aux associations et qui les caractrisent.
Une entit existe indpendamment de ce qui lentoure. Une association nexiste que
si les entits extrmits existent. Chaque entit un attribut identifiant qui distingue
univoquement chaque occurrence dentit.
Certains modles, dits modles binaires, nautorisent que des associations entre 2
entits. Les associations peuvent tre partielles. Les associations sont souvent
caractrises par leur cardinalits, qui peuvent tre notes de diverses manires.
Avec les notations de Merise, tout X correspond :
cardinalit mini et maxi
0,1
X
Y
1,1
X
Y

au plus un Y

un et un seul Y

0,n

1,n
Y

0 ou plusieurs
Y
1 ou plusieurs
Y

La figure 10 donne un exemple de schma entits associations.


num-ens
nom-ens

resp-filire

0,n
sous-resp

1,n

1,1

0,n

0,n
resp-uv

intervenant

cycle

num-fil
nom-fil

0,n

1,n
1,n

0,n

date

0,n

0,n
0,n

num-cycle
nom-cycle

inscr

tudiant

note

0,n

0,n

filire

num-et
nom-et
adr-et

enseignant

resu
moy

0,n

1,1

0,n
0,n

unit

quiv

1,n
def

num-uv
nom-uv

1,1
0,n

contrle

val

Fig.10. Un exemple de diagramme entits relations (identifiants en gras).

num-cont
date-cont
coeff

Le modle EA (ou ER) nest pas normalis et de nombreuses notations et


reprsentations coexistent. Certains ajoutent des relations dagrgation et/ou
dhritage entre entits (nous les tudierons dans le cadre des modles objets),
ainsi que des contraintes supplmentaires sur les donnes (ou contraintes
dintgrit).
3.7. Les spcifications formelles
Il existe beaucoup de techniques formelles et dclaratives, avec des fondements
mathmatiques divers (ensembles, logique classique, logiques non classiques,
comme les logiques temporelles, etc.).
Elles ont t souvent utilises lorigine pour spcifier des types de donnes
abstraits, puis ont t gnralises pour spcifier des systmes complets. Nous nous
limiterons la seule notation Z, base ensembliste. Elle est dcrite dans un
fascicule spar.

4. Conclusion
Souvent les techniques de spcifications se compltent, en dcrivant des vues
complmentaires dun systme. Par exemple, un systme peut tre spcifi travers
un diagramme de flot de donnes (sources dinformations, types dinformations
stockes et changes, dcomposition en fonctions), un schma EA (structuration
des informations) et des machines tats finis (comportement de certains
composants). Les mthodes tentent de proposer des assemblages efficaces de telles
techniques avec des guides pour les construire et les valider.
Parler des techniques de spcification est comme parler des langages de
programmation. Il ny a ni langage ni technique idale, ni langage ni technique
permettant de tout faire. Linformaticien doit avoir une culture assez tendue des
diverses techniques comme des divers langages.

EXERCICES
Exercice 2.1 Diagramme de contexte et diagramme de flots de donnes (DfD).
On considre la gestion dun bureau de location pour plusieurs stations touristiques.
Diffrents prestataires offrent des locations. Ils peuvent les retirer tant quaucune
rservation dfinitive nest ralise. Ils touchent 90% du prix de la location.
Les clients adressent des demandes de renseignement. Le bureau y rpond par des
propositions de location et dassurance annulation ou une mise en attente. Le client
peut alors refuser ou demander une rservation en envoyant des arrhes et en
souscrivant ventuellement lassurance annulation. Si la location choisie est encore
libre, elle est rserve, sinon la demande est mise en attente. Aprs un dlai de 8
jours, la rservation est confirme de manire dfinitive. En cas dannulation aprs
ces 8 jours, un pourcentage est d par le client sauf sil a souscrit lassurance
annulation. Lannulation en cas de mise en liste dattente est toujours possible sans
frais.
La facture est envoye avant le dbut du sjour. Un rappel suit en cas de non
paiement. En cas de nouveau dfaut de paiement le dossier est transmis au
contentieux.
Dessiner le diagramme de contexte et dcomposez le en un premier niveau de DFD.
Raffiner la gestion des rservations avec des DFD plus dtaills.
Exercice 2.2 Machine tat finis.
Une montre digitale comporte un cran daffichage et 2 boutons A et B. Le bouton A
permet de changer de mode : affichage de lheure (mode initial), modification des
heures, modification des minutes, affichage de lheure. Le bouton B permet
dincrmenter les heures ou minutes dans les modes modification. Dessiner le
diagramme dtats dcrivant le comportement de cette montre digitale.
Exercice 2.3 Rseau de Petri.
On veut modliser la gestion des cabines et des paniers dans une piscine. A lentre,
une personne qui a trouv une cabine libre se change en posant ses vtements dans
la cabine puis demande un panier quelle remplit pour librer la cabine. Aprs la
baignade, la personne rentre dans une cabine avec son panier, le vide, libre le
panier et se rhabille pour librer la cabine.
Modliser cette organisation, avec une place reprsentant le stock des cabines (par
exemple 3) et une place modlisant le stock des paniers (par exemple 5).
Quel est le maximum de baigneurs simultans ? Montrer que cette organisation
risque de conduire un blocage.
Proposer une organisation qui vite la possibilit dun blocage et modliser la en
RdP.
Exercice 2.4 Diagrammes entits associations.
On reprend lnonc de lexercice 3. Aprs inventaire, les principaux concepts
reprsenter sont : les clients, les prestataires, les hbergements (offerts par les
prestataires), les stations (o se situent les hbergements), les propositions, les
rservations, les demandes en attente, les types de prestataires (souhaits dans les
demandes en attente), les types dhbergement (souhaits dans les demandes en
attente), les activits (possibles dans les stations), les services (offerts par les
prestataires).

Proposez un diagramme entits relations avec des cardinalits ralistes. Donnez les
principaux attributs.
Exercice 2.5 Modlisation de la dynamique (automate et rseau de Petri).
Le systme est compos de deux tches informatiques cycliques T1 et T2 qui se
partagent un processeur unique. Les tches peuvent tre soit en attente de
processeur, soit en cours dexcution sur le processeur. Lallocation et la
dsallocation des tches au processeur se fait selon une certaine politique que lon
ne cherche pas dcrire.
a) Modliser les tats et les transitions dtat de ce systme avec un diagramme
dtat (automate tats finis). Expliquer la signification des tats et des transitions.
b) Modliser le mme systme avec un rseau de Petri. Expliquer la signification des
places et des transitions. Le processeur sera modlis par une place.
Pendant son excution T1 peut se mettre en attente dun vnement. Le processeur
peut alors tre allou T2 jusqu ce que lvnement arrive. Modifier en
consquence la modlisation.
c) Nouveau diagramme dtat.
d) Nouveau rseau de Petri. Larrive de lvnement sera modlis par une
transition.
Exercice 2.6 La douchiotte (rseau de Petri)
La douchiotte est une douche-WC, pour installations petit budget ... Elle est
dcrite par le schma ci-dessous. Elle peut fonctionner comme une douche
(arrosage par le haut) ou comme un WC (chasse deau vers le bas).

D WC

Initialement la douchiotte est dans ltat douche. On slectionne ltat voulu en


appuyant sur un des 2 boutons (D ou WC). Un seul tat est possible chaque
instant. Quand on tire sur la ficelle et que ltat WC est choisi, la vanne de la chasse
deau est ouverte. Quand ltat douche est choisi et que lon tire sur la ficelle, cest la
vanne de la douche qui est ouverte. On ferme la vanne qui est ouverte en tirant de
nouveau sur la ficelle. Ltat ne peut tre modifi quand une vanne est ouverte.
Dcrivez par un rseau de Petri le comportement de ce systme. Les transitions
correspondront aux actions de lutilisateur (sur les boutons ou la ficelle).
Exercice 2.7 : Location de cassettes (DfD)
On utilise les diagrammes de flots de donnes pour spcifier les fonctionnalits d'une
application de location de cassettes vido.
Le cahier des charges prcise que :
- le client peut
o louer et rapporter des cassettes; les locations sont enregistres ainsi
que les clients
- le grant peut

o ajouter/supprimer des cassettes au catalogue


o changer les prix des cassettes au tarif
- l'application
o calcule le prix d'une location selon le tarif des cassettes empruntes et
la dure de l'emprunt
o gnre des tats de caisse en fin de journe.
a. Dessiner le diagramme de contexte.
b. Raffiner ce diagramme en faisant apparatre une fonction de gestion des locations
de cassettes, entoure d'autres fonctions, flots et stockages.
c. Raffiner un deuxime niveau la fonction de gestion des locations de cassettes.
Exercice 2.8 Modlisations diverses par Rseaux de Petri
Modlisez chacun des systmes dcrits ci-dessous par un rseau de Petri.
a) Pour slectionner la bande de rception d'une radio, on doit tourner un bouton
gauche ou droite, mais on ne peut pas faire le tour. Les trois positions sont
de gauche droite OL (ondes longues), OM (ondes moyennes), MF
(modulation de frquence). Ondes de dpart : OL.
b) Vous modlisez un distributeur de boissons. Dans son tat initial, il attend
qu'on appuie sur le bouton 'caf' ou 'sirop'. Aprs cette slection il faut
'confirmer' ou bien 'annuler' si on s'est tromp de boisson. Si on confirme, le
distributeur verse la boisson choisie et pendant cette opration tous les
boutons sont inactifs. Quand la boisson est prte ou si l'on a annul on se
retrouve l'tat initial.
c) Le dernier systme modliser est une petite usine avec 2 machines et un
vhicule.

Matires premires

Vhicule

Machine 1

Machine 2

Produits finis
Le vhicule est utilis pour charger une machine libre avec une matire
premire et pour dcharger une machine qui a termin son travail vers le
stock de produits finis.
Votre modle doit rendre compte du fait que le vhicule ne peut transporter
qu'une chose la fois et qu'il ne peut amener une matire premire que s'il y a
une machine libre.

Exercice 2.9 Appels d'offres (modle EA, DfD et Rseau de Petri)


Pour ses divers projets de dveloppement dapplications informatises, une
entreprise ralise des appels doffre des socits de service. A rception des
propositions, lentreprise les value pour en slectionner une.
a) Esquisser une modlisation des donnes utiles pour raliser la slection par un
modle entits/associations. Vous prciserez les cardinalits des associations et
donnerez quelques attributs. Vous vous limiterez aux 3 types dentits et aux 2
types dassociation les plus importants.
b) Pour valuer les propositions, le responsable de chaque projet donne des critres
de slection. Lvaluation dbouche sur une note tablie partir des critres. Des
lettres de refus ou dacceptation sont dites. Esquissez une modlisation
fonctionnelle par diagrammes de flots de donnes, 2 niveaux de raffinement :
un diagramme de contexte, avec lapplication dvaluation, les acteurs
externes impliqus et les flots dentre et de sortie de lapplication,
un diagramme de flot de donnes qui dcompose lapplication dvaluation, en
dcrivant la saisie des critres, le calcul de la note et les ditions. Vous ferez
figurer les stockages de donnes (qui correspondent probablement aux entits de
la question a).
c) Reprsentez par un rseau de Petri, la dynamique de la procdure de slection
suivante :
si lappel doffres est en cours,
ds quune proposition arrive, elle est value,
selon la note obtenue, la proposition est accepte ou refuse. Si elle est
accepte, lappel doffres est termin (on ne peut plus valuer dautres
propositions).
Conseils : une place avec un jeton modlise le fait que lappel doffres est en cours ;
une autre place reoit un jeton ds quune proposition arrive ; une place indique que
la slection est en cours. 2 places indiquent que la proposition est accepte ou bien
refuse.
Exercice 2.10 Automate tats finis
Modlisez sous forme dun diagramme dtats (automate tats finis) le
comportement du contrleur de chauffage suivant. Vous indiquerez les vnements
en entre et les ordres de dmarrage/arrt du chauffage en sortie.
Marche

Arrt

OK

Le bouton Marche, met le contrleur en attente dune consigne de temprature.


Aprs saisie du nombre, le bouton OK valide cette temprature souhaite. Le
chauffage est prt dmarrer. Il dmarre ds que la temprature (mesure toutes
les minutes) est infrieure de 1 degr la consigne. Il sarrte ds que la
temprature dpasse de 1 degr la consigne. Le bouton Arrt remet le systme

son tat initial quel que soit ltat en cours (il faut alors rutiliser le bouton Marche).
Une consigne non comprise entre 0 et 30 est ignore ; il faut la ressaisir. Un
changement de consigne est possible quand une consigne valide est enregistre ; la
saisie entrane larrt du chauffage sil est en marche.
Exercice 2.11 Diagramme de flots de donnes
Lordinateur de bord dune automobile doit raliser les fonctions suivantes :
convertir les signaux de rotation des roues en valeurs numriques (en signaux par
seconde),
afficher laide de diodes lectro-luminescentes la vitesse instantane
(conversion en tours/mn puis en km/h),
avertir par un signal sonore si la vitesse maximum (stocke) est dpasse,
signaler par une flche lumineuse dessine laide des diodes le sens de
lacclration (diffrence entre deux mesures de signaux par seconde).
Dessiner le DfD correspondant.