• Keine Ergebnisse gefunden

Funktionale Spezifikation

N/A
N/A
Protected

Academic year: 2022

Aktie "Funktionale Spezifikation"

Copied!
28
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Funktionale Spezifikation

Modellbildung erfolgt zu einem bestimmten Zweck

Zwecke müssen exakt definiert werden

eine Möglichkeit:

funktionale Spezifikation

Anwendungen:

Vertragsgrundlage

Korrektheitsnachweis

Wiederverwendung (interface)

(2)

Funktionale Spezifikation

Grundprinzip

• funktionale Spezifikation

• beschreibt das funktionale Verhalten als Ein-/

Ausgaberelation

• zwei Komponenten

• Funktionalität (Definitions- u. Wertebereich)

• Verhalten (Vor- und Nachbedingungen)

(3)

Funktionale Spezifikation

Grundprinzip

• funktionale Spezifikation

• beschreibt das funktionale Verhalten als Ein-/

Ausgaberelation

• zwei Komponenten

• Funktionalität (Definitions- u. Wertebereich)

• Verhalten (Vor- und Nachbedingungen)

X→Y

(4)

Funktionale Spezifikation

Grundprinzip

• funktionale Spezifikation

• beschreibt das funktionale Verhalten als Ein-/

Ausgaberelation

• zwei Komponenten

• Funktionalität (Definitions- u. Wertebereich)

• Verhalten (Vor- und Nachbedingungen)

X→Y

zulässige

Eingaben

(5)

Funktionale Spezifikation

Grundprinzip

• funktionale Spezifikation

• beschreibt das funktionale Verhalten als Ein-/

Ausgaberelation

• zwei Komponenten

• Funktionalität (Definitions- u. Wertebereich)

• Verhalten (Vor- und Nachbedingungen)

X→Y

zulässige

Eingaben erwartete

Ausgaben

(6)

Funktionale Spezifikation

Definition

Definition:

Eine funktionale Spezifikation S besitzt die allgemeine Form:

S: spec f: X→Y with f(x)=y where pre P(x)

post Q(x,y).

(7)

Funktionale Spezifikation

Definition

Definition:

Eine funktionale Spezifikation S besitzt die allgemeine Form:

S: spec f: X→Y with f(x)=y where pre P(x)

post Q(x,y).

f berechnete Funktion des spezifizierten Programms

(8)

Funktionale Spezifikation

Definition

Definition:

Eine funktionale Spezifikation S besitzt die allgemeine Form:

S: spec f: X→Y with f(x)=y where pre P(x)

post Q(x,y).

f berechnete Funktion des

spezifizierten ProgrammsX, Y Ein-/Ausgabemenge des spezifizierten Programms

(9)

Funktionale Spezifikation

Definition

Definition:

Eine funktionale Spezifikation S besitzt die allgemeine Form:

S: spec f: X→Y with f(x)=y where pre P(x)

post Q(x,y).

f berechnete Funktion des

spezifizierten ProgrammsX, Y Ein-/Ausgabemenge des spezifizierten Programms wenn Eingabe x die

Vorbedingung P erfüllt, ...

(10)

Funktionale Spezifikation

Definition

Definition:

Eine funktionale Spezifikation S besitzt die allgemeine Form:

S: spec f: X→Y with f(x)=y where pre P(x)

post Q(x,y).

f berechnete Funktion des

spezifizierten ProgrammsX, Y Ein-/Ausgabemenge des spezifizierten Programms wenn Eingabe x die

Vorbedingung P erfüllt, ... ... dann soll das Programm y liefern, sofern es terminiert,

und zwischen x und y soll Beziehung Q gelten

(11)

Funktionale Spezifikation

Vor- und Nachbedingungen

• Die Sprache zur Beschreibung von Vor- und Nachbedingungen muß noch definiert

werden.

• hier: übliche mathem. Sprache: Mengen, Konstanten, Variablen, Quantoren,

Funktionen usw.

• Theorie der Programmierung: Teilmenge der

Prädikatenlogik

(12)

Funktionale Spezifikation

Programm und Spezifikation

Definition:

Ein Programm A erfüllt die

Spezifikation S oder ist korrekt bezgl. S, falls f

A

die Funktionalität X→Y besitzt und

falls für alle x X gilt: Aus P(x) folgt Q(x, f

A

(x)).

A heißt dann Implementierung von S.

(13)

Funktionale Spezifikation

Beispiel: Mischen

Smisch:spec misch: IN0*×IN0*→IN0* with misch(x,y)=z where

pre x=[x1,...,xn] und n≥0 und x1≤...≤xn und y=[y1,...,ym] und y1≤...≤ym und m≥0

post z=[z1,...,zn+m] und z1≤...≤zn+m und z=π(x.y) für eine Permutation π

Früher gezeigt: PRO-Version von misch erfüllt die Spezifikation Smisch

(14)

Funktionale Spezifikation

Beispiel: Autobahnwege

SWege:spec kw: 2X→X*×IN0 with kw(m)=(w,k) where pre |m|≤2

post Für m={s,s'} gilt w=[s=x1,...,xn=s'] und n≥0 und

k=Σ d({xi,xi+1}) und für alle w' X* mit w'=[s=y1,...,ym=s'] gilt: k≤Σ d({yi,yi+1}).

n-1

i=0 m-1

i=0

(15)

Funktionale Spezifikation

Beispiel: Autobahnwege

SWege:spec kw: 2X→X*×IN0 with kw(m)=(w,k) where pre |m|≤2

post Für m={s,s'} gilt w=[s=x1,...,xn=s'] und n≥0 und

k=Σ d({xi,xi+1}) und für alle w' X* mit w'=[s=y1,...,ym=s'] gilt: k≤Σ d({yi,yi+1}).

n-1

i=0 m-1

i=0

kw hat ein Argument:

2-elem. Teilmenge von X

(16)

Funktionale Spezifikation

Beispiel: Autobahnwege

SWege:spec kw: 2X→X*×IN0 with kw(m)=(w,k) where pre |m|≤2

post Für m={s,s'} gilt w=[s=x1,...,xn=s'] und n≥0 und

k=Σ d({xi,xi+1}) und für alle w' X* mit w'=[s=y1,...,ym=s'] gilt: k≤Σ d({yi,yi+1}).

n-1

i=0 m-1

i=0

(17)

Funktionale Spezifikation

Beispiel: Autobahnwege

SWege:spec kw: 2X→X*×IN0 with kw(m)=(w,k) where pre |m|≤2

post Für m={s,s'} gilt w=[s=x1,...,xn=s'] und n≥0 und

k=Σ d({xi,xi+1}) und für alle w' X* mit w'=[s=y1,...,ym=s'] gilt: k≤Σ d({yi,yi+1}).

n-1

i=0 m-1

i=0

kw liefert Folge von Städten ...

(18)

Funktionale Spezifikation

Beispiel: Autobahnwege

SWege:spec kw: 2X→X*×IN0 with kw(m)=(w,k) where pre |m|≤2

post Für m={s,s'} gilt w=[s=x1,...,xn=s'] und n≥0 und

k=Σ d({xi,xi+1}) und für alle w' X* mit w'=[s=y1,...,ym=s'] gilt: k≤Σ d({yi,yi+1}).

n-1

i=0 m-1

i=0

(19)

Funktionale Spezifikation

Beispiel: Autobahnwege

SWege:spec kw: 2X→X*×IN0 with kw(m)=(w,k) where pre |m|≤2

post Für m={s,s'} gilt w=[s=x1,...,xn=s'] und n≥0 und

k=Σ d({xi,xi+1}) und für alle w' X* mit w'=[s=y1,...,ym=s'] gilt: k≤Σ d({yi,yi+1}).

n-1

i=0 m-1

i=0

... und Länge des Weges

(20)

Funktionale Spezifikation

Beispiel: Autobahnwege

SWege:spec kw: 2X→X*×IN0 with kw(m)=(w,k) where pre |m|≤2

post Für m={s,s'} gilt w=[s=x1,...,xn=s'] und n≥0 und

k=Σ d({xi,xi+1}) und für alle w' X* mit w'=[s=y1,...,ym=s'] gilt: k≤Σ d({yi,yi+1}).

n-1

i=0 m-1

i=0

(21)

Funktionale Spezifikation

Beispiel: Autobahnwege

SWege:spec kw: 2X→X*×IN0 with kw(m)=(w,k) where pre |m|≤2

post Für m={s,s'} gilt w=[s=x1,...,xn=s'] und n≥0 und

k=Σ d({xi,xi+1}) und für alle w' X* mit w'=[s=y1,...,ym=s'] gilt: k≤Σ d({yi,yi+1}).

n-1

i=0 m-1

i=0

Eingabe höchstens 2-elementig

(22)

Funktionale Spezifikation

Beispiel: Autobahnwege

SWege:spec kw: 2X→X*×IN0 with kw(m)=(w,k) where pre |m|≤2

post Für m={s,s'} gilt w=[s=x1,...,xn=s'] und n≥0 und

k=Σ d({xi,xi+1}) und für alle w' X* mit w'=[s=y1,...,ym=s'] gilt: k≤Σ d({yi,yi+1}).

n-1

i=0 m-1

i=0

(23)

Funktionale Spezifikation

Beispiel: Autobahnwege

SWege:spec kw: 2X→X*×IN0 with kw(m)=(w,k) where pre |m|≤2

post Für m={s,s'} gilt w=[s=x1,...,xn=s'] und n≥0 und

k=Σ d({xi,xi+1}) und für alle w' X* mit w'=[s=y1,...,ym=s'] gilt: k≤Σ d({yi,yi+1}).

n-1

i=0 m-1

i=0

Ergebnis: Weg w, der bei s beginnt und bei s'

endet

(24)

Funktionale Spezifikation

Beispiel: Autobahnwege

SWege:spec kw: 2X→X*×IN0 with kw(m)=(w,k) where pre |m|≤2

post Für m={s,s'} gilt w=[s=x1,...,xn=s'] und n≥0 und

k=Σ d({xi,xi+1}) und für alle w' X* mit w'=[s=y1,...,ym=s'] gilt: k≤Σ d({yi,yi+1}).

n-1

i=0 m-1

i=0

(25)

Funktionale Spezifikation

Beispiel: Autobahnwege

SWege:spec kw: 2X→X*×IN0 with kw(m)=(w,k) where pre |m|≤2

post Für m={s,s'} gilt w=[s=x1,...,xn=s'] und n≥0 und

k=Σ d({xi,xi+1}) und für alle w' X* mit w'=[s=y1,...,ym=s'] gilt: k≤Σ d({yi,yi+1}).

n-1

i=0 m-1

i=0

w hat Länge k

(26)

Funktionale Spezifikation

Beispiel: Autobahnwege

SWege:spec kw: 2X→X*×IN0 with kw(m)=(w,k) where pre |m|≤2

post Für m={s,s'} gilt w=[s=x1,...,xn=s'] und n≥0 und

k=Σ d({xi,xi+1}) und für alle w' X* mit w'=[s=y1,...,ym=s'] gilt: k≤Σ d({yi,yi+1}).

n-1

i=0 m-1

i=0

(27)

Funktionale Spezifikation

Beispiel: Autobahnwege

SWege:spec kw: 2X→X*×IN0 with kw(m)=(w,k) where pre |m|≤2

post Für m={s,s'} gilt w=[s=x1,...,xn=s'] und n≥0 und

k=Σ d({xi,xi+1}) und für alle w' X* mit w'=[s=y1,...,ym=s'] gilt: k≤Σ d({yi,yi+1}).

n-1

i=0 m-1

i=0

alle anderen Wege haben Länge ≥k

(28)

Funktionale Spezifikation

Beispiel: Autobahnwege

SWege:spec kw: 2X→X*×IN0 with kw(m)=(w,k) where pre |m|≤2

post Für m={s,s'} gilt w=[s=x1,...,xn=s'] und n≥0 und

k=Σ d({xi,xi+1}) und für alle w' X* mit w'=[s=y1,...,ym=s'] gilt: k≤Σ d({yi,yi+1}).

n-1

i=0 m-1

i=0

Referenzen

ÄHNLICHE DOKUMENTE

Nicht „sichtbar“, machen jedoch den größten Teil des Netzes aus (auch im Hinblick

86 Finding the target SIR: outer loop power control.  Similar method for

In diesem Kapitel wird der Begriff des bestimmten Integrals auf Doppel-, Dreifach- und Kurvenintegrale sowie auf Oberfl¨ achenintegrale erweitert.. Bei jedem dieser Be- griffe wird

I Funktionen sind zentrales Modularisierungskonzept I Wir müssen Funktionen modular verifizieren können I Erweiterung der Semantik:. I Semantik von Deklarationen und Parameter

Um trotzdem davon ausgehen zu k¨onnen, daß in jedem Fall eine neue Menge entsteht, wird der Begriff einer leeren Menge eingef¨ uhrt.. Um auf sie zu verweisen, dient das

== ⇒ Die Menge aller ableitbaren Fakten ist nicht endlich

Partielle Ableitungen werden im Gegensatz zu den gewöhnlichen Ableitungen nicht durch Striche (oder Punkte), sondern durch die als Index

Linearisierung einer Funktion, Gleichung der Tangentialebene: L ¨osungen.1. Linearisierung einer Funktion, Gleichung