Professional Documents
Culture Documents
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.
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;
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.
Critres de
slection
Description
projet
Slection des
rponses
Appel d'offre
Proposition
Socits de
service
Lettre d'acceptation
Lettre de refus
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).
(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)
Consomme
Con
som
me
Con
som
me
Produit
Retire
Con
som
me
Consomme
Produit
Produit
Produit
Retire
Produit
Retire
Dpose
Dpose
<1, 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
t6
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
P2
P3
t4
t5
t1
P5
P6
t6
P1
t2
t3
P7
t5
P3
P4
P5
t3
P2
P7
t6
P5
t4
t3
P6
t5
P7
t6
P5
P1
t1
t5
R
P2
P6
t2
t6
P3
P7
t3
t7
P4
P8
t4
t8
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
t7
2
P8
t8
Retire
C2
C1
P2
P1
Consomme
Dpose
Dpose
Dpose
Retire
Retire
Produit
Dpose
Dpose
P1
P2
1
Retire
C1
2
Retire
C2
Consomme
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.
au plus un Y
un et un seul Y
0,n
1,n
Y
0 ou plusieurs
Y
1 ou plusieurs
Y
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
num-cont
date-cont
coeff
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
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.
Arrt
OK
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.