Funktionale Spezifikation
Funktionale Spezifikation
Funktionale Spezifikation
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>Funktionale</strong> <strong>Spezifikation</strong><br />
• Modellbildung erfolgt zu einem bestimmten Zweck<br />
• Zwecke müssen exakt definiert werden<br />
• eine Möglichkeit:<br />
funktionale <strong>Spezifikation</strong><br />
• Anwendungen:<br />
• Vertragsgrundlage<br />
• Korrektheitsnachweis<br />
• Wiederverwendung (interface)
<strong>Funktionale</strong> <strong>Spezifikation</strong><br />
Grundprinzip<br />
• funktionale <strong>Spezifikation</strong><br />
• beschreibt das funktionale Verhalten als Ein-/<br />
Ausgaberelation<br />
• zwei Komponenten<br />
• Funktionalität (Definitions- u. Wertebereich)<br />
• Verhalten (Vor- und Nachbedingungen)
<strong>Funktionale</strong> <strong>Spezifikation</strong><br />
Grundprinzip<br />
• funktionale <strong>Spezifikation</strong><br />
• beschreibt das funktionale Verhalten als Ein-/<br />
Ausgaberelation<br />
• zwei KomponentenX→Y<br />
• Funktionalität (Definitions- u. Wertebereich)<br />
• Verhalten (Vor- und Nachbedingungen)
<strong>Funktionale</strong> <strong>Spezifikation</strong><br />
Grundprinzip<br />
• funktionale <strong>Spezifikation</strong><br />
• beschreibt das funktionale Verhalten als Ein-/<br />
Ausgaberelation<br />
X→Y<br />
• zwei Komponenten<br />
• Funktionalität (Definitions- u. Wertebereich)<br />
• Verhalten (Vor- und Nachbedingungen)<br />
zulässige<br />
Eingaben
<strong>Funktionale</strong> <strong>Spezifikation</strong><br />
Grundprinzip<br />
• funktionale <strong>Spezifikation</strong><br />
• beschreibt das funktionale Verhalten als Ein-/<br />
Ausgaberelation<br />
X→Y<br />
• zwei Komponenten<br />
• Funktionalität (Definitions- u. Wertebereich)<br />
• Verhalten (Vor- und Nachbedingungen)<br />
zulässige<br />
Eingaben<br />
erwartete<br />
Ausgaben
<strong>Funktionale</strong> <strong>Spezifikation</strong><br />
Definition:<br />
Definition<br />
Eine funktionale <strong>Spezifikation</strong> S besitzt<br />
die allgemeine Form:<br />
S: spec f: X→Y with<br />
f(x)=y where<br />
pre P(x)<br />
post Q(x,y).
<strong>Funktionale</strong> <strong>Spezifikation</strong><br />
Definition:<br />
Definition<br />
Eine funktionale <strong>Spezifikation</strong> S besitzt<br />
f berechnete Funktion des<br />
die allgemeine Form:<br />
S: spec f: X→Y with<br />
f(x)=y where<br />
pre P(x)<br />
post Q(x,y).<br />
spezifizierten Programms
<strong>Funktionale</strong> <strong>Spezifikation</strong><br />
Definition:<br />
Definition<br />
Eine funktionale <strong>Spezifikation</strong> S besitzt<br />
f berechnete X, Y Ein-/Ausgabemenge Funktion des des<br />
die allgemeine Form:<br />
S: spec f: X→Y with<br />
f(x)=y where<br />
pre P(x)<br />
post Q(x,y).<br />
spezifizierten spezifizierten Programms Programms
<strong>Funktionale</strong> <strong>Spezifikation</strong><br />
Definition:<br />
Definition<br />
Eine funktionale <strong>Spezifikation</strong> S besitzt<br />
f berechnete X, Y Ein-/Ausgabemenge Funktion des des<br />
die allgemeine Form:<br />
S: spec f: X→Y with<br />
wenn Eingabe x die<br />
Vorbedingung P erfüllt, ...<br />
f(x)=y where<br />
pre P(x)<br />
post Q(x,y).<br />
spezifizierten spezifizierten Programms Programms
<strong>Funktionale</strong> <strong>Spezifikation</strong><br />
Definition:<br />
Definition<br />
Eine funktionale <strong>Spezifikation</strong> S besitzt<br />
f berechnete X, Y Ein-/Ausgabemenge Funktion des des<br />
die allgemeine Form:<br />
S: spec f: X→Y with<br />
post Q(x,y).<br />
spezifizierten spezifizierten Programms Programms<br />
wenn Eingabe x die<br />
Vorbedingung P erfüllt, f(x)=y ... where ... dann soll das Programm<br />
y liefern, sofern es terminiert,<br />
pre P(x) und zwischen x und y soll<br />
Beziehung Q gelten
•<br />
•<br />
•<br />
<strong>Funktionale</strong> <strong>Spezifikation</strong><br />
Vor- und Nachbedingungen<br />
Die Sprache zur Beschreibung von Vor- und<br />
Nachbedingungen muß noch definiert<br />
werden.<br />
hier: übliche mathem. Sprache: Mengen,<br />
Konstanten, Variablen, Quantoren,<br />
Funktionen usw.<br />
Theorie der Programmierung: Teilmenge der<br />
Prädikatenlogik
<strong>Funktionale</strong> <strong>Spezifikation</strong><br />
Beispiel: Mischen<br />
Smisch: spec misch: IN0 * ×IN0 * →IN0 * with<br />
misch(x,y)=z where<br />
pre x=[x1,...,xn] und n≥0 und x1≤...≤xn und<br />
y=[y1,...,ym] und y1≤...≤ym und m≥0<br />
post z=[z1,...,zn+m] und z1≤...≤zn+m und<br />
z=π(x . y) für eine Permutation π<br />
Früher gezeigt: PRO-Version von misch erfüllt die<br />
<strong>Spezifikation</strong> Smisch