• CYCLE DE VIE D`UN LOGICIEL • EXPRESSION DES BESOINS

Transcription

• CYCLE DE VIE D`UN LOGICIEL • EXPRESSION DES BESOINS
PLAN
•
•
•
•
•
•
•
•
CYCLE DE VIE D'UN LOGICIEL
EXPRESSION DES BESOINS
SPÉCIFICATIONS DU LOGICIEL
CONCEPTION DU LOGICIEL
LA PROGRAMMATION
TESTS ET MISE AU POINT
DOCUMENTATION
CONCLUSION
C.Crochepeyre
Génie Logiciel
Diapason
47
3. SPÉCIFICATIONS DU LOGICIEL
Passage:
– de l'expression des besoins à la conception
• Spécifications fonctionnelles
• Analyse fonctionnelle et méthodes
– étape avant :
• Conception détaillée des logiciels
• Relations entre les logiciels
C.Crochepeyre
Génie Logiciel
Diapason
48
• Document de spécifications des logiciels
– définitions abstraites des logiciels
– destiné aux développeurs
Outils de spécifications des logiciels:
–
–
–
–
C.Crochepeyre
domaine de la recherche
orientation vers des techniques formelles
définition du langage de spécification
approches différentes de spécifications
Génie Logiciel
Diapason
49
Définition des langages de spécification
– approche opérationnelle
• définition d'une machine abstraite et de ses opérations
– approche dénotationnelle
• définitions de fonctions par logique mathématique
• espace de valeurs abstrait
• propriétés des valeurs décrites par des techniques
mathématiques
– approche axiomatique
• constructions de fonctions basées sur des axiomes
C.Crochepeyre
Génie Logiciel
Diapason
50
Les approches différentes de spécification
– spécifications d'interface
– spécifications opérationnnelles
– spécifications de type abstrait
C.Crochepeyre
Génie Logiciel
Diapason
51
Spécifications d'interface
– logiciel = boîte noire
– fonction de la boîte = contraintes E/S
E
logiciel
S
C.Crochepeyre
Génie Logiciel
Diapason
52
Exemple
ECHANGE_ETAT (S: in out , P)
output forall J, PREMIER(S) <=J<=DERNIER(S):
S(J) = ARRETE then S(J) = PRET or
S(J) = PRET then S(J) = ACTIF or
S(J) = ACTIF then S(J) = ARRETE
– spécification relativement longue
– pas d'information sur la réalisation
– utilisation pour des cas simples
C.Crochepeyre
Génie Logiciel
Diapason
53
Spécifications opérationnelles
– description abstraite des transformations E/S
– description des opérations du programme
E
logiciel
S
C.Crochepeyre
Génie Logiciel
Diapason
54
Exemple traitement // des capteurs
type ETAT is (ARRETE,PRET,ACTIF)
type P is array(1,...,N) of ETAT
type CAPT is array(1,...,N) of (HAUT,BAS)
CHANGE_ETAT (S: in out P; CAPTEURS: CAPT)
forall J, PREMIER(CAPTEURS) <=J<=DERNIER(CAPTEURS)
do
if CAPTEURS(J) = HAUT then
S(J):=
if S(J) = ACTIF then
ARRETE
else succ(S(J))
end CHANGE_ETAT
C.Crochepeyre
Génie Logiciel
Diapason
55
Spécifications de type abstrait
– type abstrait = valeurs et opérations associées
– description du comportement des opérations sur
chaque type abstrait
– approches:
• modèle abstrait
• modèle algébrique:
– noms des opérations,
– arguments des opérations
– axiomes de comportement des opérations
C.Crochepeyre
Génie Logiciel
Diapason
56
Exemple de description de type abstrait
array of E
interface
CREER(A,B: INTEGER) -> array of E
PREMIER(X:array of E) -> INTEGER
DERNIER(X:array of E) -> INTEGER
VAL(X: array of E; I:INTEGER) -> E
METTRE(X:array of E; I:INTEGER; V:E) -> array of E
axioms
CREER(A,B) = if B<A then ERREUR
METTRE(X,I,V) = if.......
C.Crochepeyre
Génie Logiciel
Diapason
57
De la spécification à l’analyse fonctionnelle
Une bonne spécification doit avoir:
– une taille minimale
– pour un niveau de spécification donné
Cela permet ensuite de faire une analyse fonctionnelle:
- identification des sous systèmes fonctionnels
- décomposition en éléments et opérations associées
- détail des algorithmes utilisés pour chaque élément
C.Crochepeyre
Génie Logiciel
Diapason
58
• Méthode d’Analyse Structurée SA
E. YOURDON (1979)
– spécification statique du logiciel
– analyse descendante:
•
•
•
•
affinages successifs des traitements
description des flots de données des traitements
ensemble de diagrammes ordonnés et hiérarchisés
fonctions élémentaires = primitives fonctionnelles
– outils graphiques et textuels
C.Crochepeyre
Génie Logiciel
Diapason
59
Outil graphique DFD
– Data Flow Diagrams
• diagramme de flots de données = interconnexion de
fonctions traversées par une circulation de données
• 4 éléments graphiques
– le traitement ou process = cercle
– le flot de données = trait
– l'unité de stockage = 2 traits
– l'entité externe ou terminateur = rectangle
C.Crochepeyre
Génie Logiciel
Diapason
60
- DFD S1
e1
s1
0.0
S2
e1
s1
C.Crochepeyre
P1
e2
0.0
e2
1.0
3.0
Si: source
Pi: puits
ei: entrée
si: sortie
0.0: process
2.0
Génie Logiciel
Diapason
61
Les process
– sont identifiés par un verbe et un N°
– transforment les flots de données en entrée en
flots de données en sortie
Les flots de données
– portent un nom unique et significatif
– les extrémités:
• une à un process
• l'autre à un process, terminateur, unité de stockage
– ramifications possibles
C.Crochepeyre
Génie Logiciel
Diapason
62
Exemple
PAIE_EDITEE
ELEMENTS_PAIE
EDITER
PAIE
2.0
C.Crochepeyre
Génie Logiciel
PAIE_EN ATTENTE
Diapason
63
Les annotations procédurales
D1
D3
*
+
D4
D2
*
C.Crochepeyre
+
ET
Génie Logiciel
OU
Diapason
64
Les unités de stockage
– un nom descriptif
– les flèches = opérations L/E
– pas de nom sur les flots de données en E/S
lecture
écriture
FICHIER_PAIE
FICHIER_CLIENTS
C.Crochepeyre
Génie Logiciel
maj
FICHIER_NOTES
Diapason
65
Les terminateurs
– une personne ou un périphérique:
• agents extérieurs
– un nom
– pas de règles précises sur leurs flots de données
SAISIE
C.Crochepeyre
ECRAN
Génie Logiciel
Diapason
66
Outils textuels
En complément des outils graphiques DFD :
– Dictionnaire de données DD
– Description des flots de données DFD
C.Crochepeyre
Génie Logiciel
Diapason
67
Dictionnaire de données DD
– création simultanée diagrammes flots données
– contient sémantique, structure, flots et
stockage de chaque donnée
adresse EST
nom
ET adresse rue
ET nom ville
ET code postal
adresse = nom + adresse rue + nom ville + code postal
C.Crochepeyre
Génie Logiciel
Diapason
68
Les opérateurs DD
SYMBOLES
=
est composé de
+
séquence; avec; et
max
min
{}
...
...
...
()
>> >>
*
C.Crochepeyre
SIGNIFICATION
*
répétition; suivi de (au moins min,
au plus max)
sélection, ou(exclusif), soit:
optionnel
littéral
commentaire
Génie Logiciel
Diapason
69
Description des flots de données DFD
– précision du sens des mots
"l'identité" de la personne signifie son nom et son
prénom
– type et domaine
• définition délimitée par *
• type de valeur: entier, car, ...
• domaine la plage de valeurs
nom = *domaine: car, limite: majuscules
C.Crochepeyre
Génie Logiciel
Diapason
70
Outils graphiques/textuels :
– Diagrammes de structures de données DSD
– Spécifications de process PSPEC
•
•
•
•
C.Crochepeyre
algorithmes
arbres de décision
tables de décision
diagrammes
Génie Logiciel
Diapason
71
Diagrammes de structures de données DSD
– description des relations entre les données
– données simples dans le DD
– données complexes décrites:
• textuellement (opérateurs DD)
• graphiquement (diagrammes M. Jackson)
identité
nom
C.Crochepeyre
prénom
Génie Logiciel
Diapason
72
Spécifications de process PSPEC
– Par algorithmes
Séquence ou traitement
traitement_1
traitement_2
traitement_2
Alternatives composées
Si <condition> vraie Alors
traitement_1
Sinon
traitement_2
Finsi
C.Crochepeyre
Décider entre
Cas_1 vraie Alors traitement_1
Cas_2 vraie Alors traitement_2
Autrement
Erreur
Fin Décider
Génie Logiciel
Diapason
73
Spécifications de process PSPEC
– Par arbres de décision
TAUX_REMISE
montant
1ère remise
-5%
-10%
nb achats
1er
2ème
2ème remise
-0%
-2%
C.Crochepeyre
>10.000Fr
<10.000Fr
Génie Logiciel
1er
2ème
-0%
-5%
Diapason
74
Spécifications de process PSPEC
– Par tables de décision
règles
R1
R2
R3
R4
<10.000
V
V
F
F
2ème achat
F
V
F
V
remise 2%
remise 5%
remise 10%
C.Crochepeyre
conditions
V
V
V
V
V
actions
V
Génie Logiciel
Diapason
75
Spécifications de process PSPEC
– Par diagrammes
• M. Jackson et Warnier
• N. Schneiderman
Tant que condition vraie
vraie
traitement_1.1
traitement 1.2
C.Crochepeyre
Si
faux
vraie
traitement_2.1
Génie Logiciel
Si
faux
traitement_2.2
Diapason
76
Conclusion SA
– spécification statique et analyse descendante
– outils graphiques
• Data Flow Diagrams DFD: process et flots de données
– outils textuels
• dictionnaire de données DD
• description des flots de données DFD
– Outils graphiques/textuels
• diagrammes de structures de données DSD
• spécifications de process PSPEC
C.Crochepeyre
Génie Logiciel
Diapason
77
• Méthode SA Temps Réel SA-RT
P. WARD et S. MELLOR (1985)
– extension de SA au temps réel
• méthode SA: vue statique des process
• méthode SA_RT: vue dynamique des process
– systèmes temps réels:
• systèmes combinatoires: E => S
• systèmes séquentiels: E + états internes => S
– outils graphiques et textuels
C.Crochepeyre
Génie Logiciel
Diapason
78
Diagramme de flots de données: DFD
– le process ou traitement : un cercle
– les flots de données: un trait
• les flots discrets: une flèche
• les flots continus: une double flèche
– l'unité de stockage: deux traits parallèles
– le terminateur: un rectangle
C.Crochepeyre
Génie Logiciel
Diapason
79
Exemple DFD en SA_RT
température max
arrêt si
température>max
flot discret
température
Contrôle
température
flot continu
stockage température
Flot discret -> : valeur valide à des instants précis
Flot continu ->> : valeur continuellement valide dans le temps
C.Crochepeyre
Génie Logiciel
Diapason
80
Dictionnaire de données: DD
– répertoire
•
•
•
•
•
données
flots de données
stockages des données
flots de contrôle
stockage des flots de contrôle ou événements
– informations d'après les diagrammes de flots
de données DFD
– informations d'après les flots de contrôle CFD
C.Crochepeyre
Génie Logiciel
Diapason
81
Diagramme de structure de données: DSD
– description des relations complexes
• relations entre fichiers
– description
• textuelle avec notation du DD
• description graphique (diagrammes M Jackson)
C.Crochepeyre
Génie Logiciel
Diapason
82
Spécifications de process: PSPEC
– description des traitements élémentaires par:
•
•
•
•
•
•
•
C.Crochepeyre
algorithmes abstraits
arbres de décision
tables de décision
diagrammes
équations
fonctions de gestion de bases de données
commentaires.....
Génie Logiciel
Diapason
83
Diagramme de flots de contrôle: CFD
– CFD comprend:
• les flots de contrôle ou événements ou signaux
– événements: vecteurs pointillés
– données discrètes: traits pleins
• les flots de contrôle "prompt"
– flèche pointillée E: activation
– flèche pointillée D: désactivation
– flèche pointillée T: déclenchement (Tigger)
• les process de contrôle
– cercle pointillé
• les stockages de contrôle ou stockage d'événements
– deux traits
C.Crochepeyre
Génie Logiciel
Diapason
84
Spécifications de contrôle: CSPEC
– Diagramme État-Transition: STD
• états ou attributs d'état:
– rectangle représentant un intervalle de temps pendant
lequel l'objet a un comportement déterminé
• signaux ou transitions:
– transitions d'entrée
– transitions de sortie
OU
– Table État-Transition: STT
• états: lignes de la table
• transitions d'entrée: colonnes de la table
• transitions de sortie, nouvel état: intersection
C.Crochepeyre
Génie Logiciel
Diapason
85
Exemple STD
Four froid
T° monte vers 200°
T° descend vers 0°
Four chaud
T° = 200°
T° descend vers 0°
Fin cuisson
Four verrouillé
C.Crochepeyre
Génie Logiciel
Diapason
86
Exemple STT
Transitions
Etats
T° monte
vers 200°
F. froid
ES: F. chaud
TS: aucune
F. chaud
ES: F. verrouillé
TS: T° = 200°
F. verrouillé
C.Crochepeyre
T° = 200°
T° descend
vers 0°
ES: F. froid
TS: aucune
ES: F. chaud
TS: Fin cuisson
Génie Logiciel
Diapason
87
Spécifications de "timing": TSPEC
– les tables de temps de réponses
• fréquence de répétition des signaux
• temps de réponse entre signal entrée et signal sortie
• temps d'activation dans un état...
C.Crochepeyre
Génie Logiciel
Diapason
88
Méthodologie d'analyse TR
– expression des besoins:
• méthodes statiques: SADT ou EA
• méthodes dynamiques: réseaux de Pétri ou SA_RT
– spécification du logiciel: modèle essentiel
• modèle d'environnement
– diagramme de contexte
– liste des événements externes
• modèle de comportement
– aspects statiques: DFD, DD, DSD, PSPEC
– aspects dynamiques: CFD, DD, CSPEC, TSPEC
C.Crochepeyre
Génie Logiciel
Diapason
89
• Conclusion: spécifications du logiciel
– analyse fonctionnelle du logiciel
– des méthodes différentes mais:
• des outils similaires (graphes, textes, tables)
• des besoins différents (statique ou dynamique TR)
• des niveaux différents (besoins, logiciels)
• des apprentissages plus ou moins faciles
Nous venons de voir :
• l’étude des besoins
• les spécifications du logiciel
Passons à:
• l’analyse détaillée et la conception du logiciel
C.Crochepeyre
Génie Logiciel
Diapason
90