Specifications de Systemes Logiciels المواصفات الشكلية Software Specifications
-
Upload
amelia-shelton -
Category
Documents
-
view
29 -
download
2
description
Transcript of Specifications de Systemes Logiciels المواصفات الشكلية Software Specifications
Specifications de Systemes Logiciels
الشكلية المواصفاتSoftware Specifications
Chapitre 7
Proprietes des Specifications
Proprietes du produit Precision Simplicite Abstraction
Proprietes du processus Completude Minimalite.
Mathematiques Discretes
Espace, S
x, y, z: int;
s dans S: <x, y, z>
x(s), y(s), z(s)
R sur S: {(s,s’)| x(s’)=x(s)+y(s)}
{(s,s’)| x’=x+y}
Exemple de specification
Nous avons deux variables reelles x et y, nous voulons specifier un programme qui calcule la racine carree de x dans y.
Ecrivez une relation R qui contient toutes les paires d’entrée sortie decrites dans cette specification.
Interpretations, 1
Nous supposons que x est initialement non negatif, et que y est une racine positive ou negative de x.
Interpretations, 1
Nous supposons que x est initialement non negatif, et que y est une racine positive ou negative de x.
}.'0|)',{( 2 xyxssR
Interpretations, 2
Nous supposons que x est initialement non negatif, et que y est une approximation de la racine positive ou negative de x a epsilon pres, ou epsilon = 10^-6.
Interpretations, 2
Nous supposons que x est initialement non negatif, et que y est une approximation de la racine positive ou negative de x a epsilon pres, ou epsilon = 10^-6.
}.10|'|0|)',{( 62 xyxssR
Interpretations, 3
Nous supposons que x est initialement non negatif, et que y est une approximation de la racine positive de x a epsilon pres, ou epsilon = 10^-6.
Interpretations, 3
Nous supposons que x est initialement non negatif, et que y est une approximation de la racine positive de x a epsilon pres, ou epsilon = 10^-6.
}.0'10|'|0|)',{( 62 yxyxssR
Interpretations, 4
La valeur intiale de x n’est pas necessairement non negative, et nous demandons que y soit une approximation de la racine positive de la valeur absolue de x a epsilon pres, ou epsilon = 10^-6.
Interpretations, 4
La valeur intiale de x n’est pas necessairement non negative, et nous demandons que y soit une approximation de la racine positive de la valeur absolue de x a epsilon pres, ou epsilon = 10^-6.
}.0'10|||'||)',{( 62 yxyssR
Interpretations, 5
La valeur intiale de x n’est pas necessairement non negative, et nous demandons que si x est positive ou nulles alors y est une approximation de la racine positive de x a epsilon pres, ou epsilon = 10^-6. Si x est negative, alors y prend la valeur -1.
Interpretations, 5
La valeur intiale de x n’est pas necessairement non negative, et nous demandons que si x est positive ou nulles alors y est une approximation de la racine positive de x a epsilon pres, ou epsilon = 10^-6. Si x est negative, alors y prend la valeur -1.
}.1'0|)',{(
}0'10|'|0|)',{( 62
yxss
yxyxssR
Interpretations, 6
La valeur intiale de x n’est pas necessairement non negative, et nous demandons que si x est positive ou nulle alors y est une approximation de la racine positive de x a epsilon pres, ou epsilon = 10^-6.
Interpretations, 6
La valeur intiale de x n’est pas necessairement non negative, et nous demandons que si x est positive ou nulle alors y est une approximation de la racine positive de x a epsilon pres, ou epsilon = 10^-6.
}.0|)',{(
}0'10|'|0|)',{( 62
xss
yxyxssR
Interpretations, 7
La valeur intiale de x n’est pas necessairement non negative, et nous demandons que si x est positive ou nulle alors nous preservons x et mettons dans y une approximation de la racine positive de x a epsilon pres, ou epsilon = 10^-6.
Interpretations, 7
La valeur intiale de x n’est pas necessairement non negative, et nous demandons que si x est positive ou nulle alors nous preservons x et mettons dans y une approximation de la racine positive de x a epsilon pres, ou epsilon = 10^-6.
}.0|)',{(
}0''10|'|0|)',{( 62
xss
yxxxyxssR
Un programme de Recherche
Espace:
a: array [indextype] of itemtype;
x: itemtype;
k: indextype U {0}; // indextype 1..N;
Specification: specifier un programme de recherche de x dans a.
Interpretation 1
Le tableau a contient x qqe part; nous devons placer dans k un index ou x se trouve.
Interpretation 1
Le tableau a contient x qqe part; nous devons placer dans k un index ou x se trouve.
}.1']'[|)',{(
}]'[)][1:(|)',{(
kxkass
xkaxjaNjjssR
Interpretation 2
Le tableau a contient x qqe part; nous devons placer dans k un index ou x se trouve tout en preservant a et x.
Interpretation 2
Le tableau a contient x qqe part; nous devons placer dans k un index ou x se trouve tout en preservant a et x.
}.''1']'[|)',{( xxaakxkassR
Interpretation 3
Le tableau a contient x qqe part; nous devons placer dans k le plus grand index ou x se trouve.
Interpretation 3
Le tableau a contient x qqe part; nous devons placer dans k le plus grand index ou x se trouve.
....}.1']'[|)',{( kxkassR
Interpretation 4
Le tableau ne contient pas necessairement x; nous voulons placer dans la variable booleenne found la valeur vraie ssi x se trouve dans a.
Interpretation 5
Le tableau ne contient pas necessairement x; nous voulons placer dans la variable entiere k l’indice 0 si x n’est pas dans a, un indice ou se trouve x sinon.
Generation de specifications complexes
Deux Methodes Orthogonales
Analyse de cas Partition du domaine
Conjonction de proprietes Intersection de relations
Etant donne trois variables entieres a, b, c, rearranger les de maniere triee.
Analyse de Cas
Conjonction de Proprietes
Exemple
Etant donne un tableau reel a[N], un nbre reel x, et un indice k, mettre dans x l’element maximal de a et dans k l’indice maximal dans lequel se trouve x.
Validation de Specifications
Completude Minimalite
Etant donnees les variables x et y de type int, faire croitre x en preservant la somme
}2'3'|)',{(
}3'3'|)',{(
}'':|)',{(
}'''|)',{(
}''1'|)',{(
}'''|)',{(
}'''|)',{(
}''|)',{(
7
6
5
4
3
2
1
0
yyxxssR
yyxxssR
ayyaxxassR
yxyxxxssR
yxyxxxssR
yyyxyxssR
yyyxyxssR
yyxxssR
Raffinement
Une specification R raffine une specification R’ ssi tout programme correct par rapport a R est correct par rapport a R’.
Raffiner: exprimer une exigence plus forte.
Raffinement
}3'|)',{('
}5'|)',{(2
22
yxssR
yxyssR
}1'100|)',{('
}1'|)',{(
xyxssR
xyssR
}3'100|)',{('
}5'|)',{(2
22
yxxssR
yxyssR
Raffinement: Definition
R raffine R’ ssi:
Raffinement et Validation
V: Propriete de completude. R complet par rapport a V: R raffine V.
W: Propriete de Minimalite R minimal par rapport a W: