CoboCards App FAQ & Wünsche Feedback
Sprache: Deutsch Sprache
Kostenlos registrieren  Login

Hol' Dir diese Lernkarten, lerne & bestehe Prüfungen. Kostenlos! Auch auf iPhone/Android!

E-Mail eingeben: und Kartensatz kostenlos importieren.  
Und Los!
Alle Oberthemen / Informatik / Softwarekonstruktion

SWK (68 Karten)

Sag Danke
52
Kartenlink
0
Foliensatz 3.3
Algebraische Spezifikation
Abstrakte Datentypen als algebraische Strukturen
formale Spezifikation des Verhaltens von Modulen
Verifikation der Implementieren


Vorgehen
1) Strukturieren der Spezifikation:Alle Schnittstellen eines Systems identifizieren.
Miteinander kommunizierende Teile herausfinden
Notwendige Operationen informell beschreiben.
2) Benennen der Spezifikation:Alle abstrakten Datentypen einer Spezifikation mit Namen
versehen (z.B. Liste) und entscheiden, ob sie generische Parameter benötigen.
3) Auswahl der Operationen:Bezeichnung aller Operationen festlegen.
4) Informelles Spezifizieren der Operation:Identifizierte Operationen sowie deren Auswirkungen auf System beschreiben.
5) Definieren der Syntax:Für jede identifizierte Operation Syntax formal beschreiben.
Alle Operationen zusammen mit ihren Parametern definieren. Syntax gesamter
Spezifikation: Zusammensetzung aller abstrakten Datentypen.
6) Definieren der Semantik:Definition der Semantik der Operationen: Zutreffende Bedingungen
(Axiome) für verschiedene Kombinationen von Operationen beschreiben.

Algebraische Spezifikation eines abstrakten Datentyps besteht aus Syntax- und Semantikteil:
●Syntax:Menge von Vereinbarungen von Zugriffsoperationen:
−Operationsname: Definitionsbereich Wertebereich.
●Semantik:Menge von Gleichungen, die Beziehungen zwischen Eingabe- und Rückgabewerten verschiedener Operationen in Form von Axiomen beschreiben
.




Unterscheidung zwischen:

verändernde Operation / inspizierende Operation


Beispiel


Erweiterung der algebraischen
Spezifikation String um Konstanten 'a‘, 'b'
von Typ Char (formal: nullstelligeOperation a: () 'a').

equal (add (s, 'a'), add (s, 'b')) = false?
Lässt sich nicht bestimmen:

Vervollständigung von String durch zusätzliche Operation
equalC : Char, Char Bool
mit den Axiomen:
equalC ('a','a') = true
equalC ('a','b') = false
equalC ('b','a') = false
equalC ('b','b') = true
und der Ersetzung des Axioms
equal (add (s1,c), add (s2,c)) = equal (s1,s2)
durch
equal (add (s1,c1), add (s2,c2)) = equal (s1,s2) ∧equalC (c1,c2)


„Korrekt“ ?=> Die o.g. Gleichungen sind intuitiv korrekt...
… allerdings nur, wenn bestimmte Annahmen an die Intuition erfüllt sind (die im Rahmen von
Schritt 4 des Vorgehens bereits vorab informell spezifiziert worden sein sollten). Zum
Beispiel:
• Das Axiom „append (s1, add(s2,c)) = add (append(s1,s2),c)“ setzt voraus, dass die
intendierten Implementierungen von append(s1,s2) und add (s,c) konsistent bezüglich
der Reihenfolgen von s1 und s2 bzw s und c sein sollen (z.B. append(s1,s2)=[s1::s2] und
add(s,c)=[s::c] oder append(s1,s2)=[s2::s1] und add(s,c)=[c::s], aber nicht append(s1,s2)=[s1::s2]
und add(c,s)=[c::s], wobei [s1::s2] die Konkatenation von s1 gefolgt von s2 ist).
• Das Axiom „isEmpty(add (s,c)) = false“ setzt voraus, dass es kein „leeres“ Zeichen geben
soll.


Vollständig ?   Nein. Zum Beispiel: Die Gleichungen implizieren nicht:    equal(s1,s2) = false (für s1#s2 mit length(s1)=length(s2))
obwohl dies intuitiv gelten sollte.

Anmerkung:  Kommutativität von equal folgt allerdings schon aus den Folien der vorigen Folie
(Beweis per Induktion).


Tags: algebraische Spezifikation
Quelle:
Kartensatzinfo:
Autor: Annika
Oberthema: Informatik
Thema: Softwarekonstruktion
Schule / Uni: TU Dortmund
Veröffentlicht: 19.03.2014
Tags: Prof Dr Jürjens
 
Schlagwörter Karten:
Alle Karten (68)
Abnahmetest (1)
algebraische (2)
algebraische Spezifikation (1)
algebrische spezifikation (1)
Ansatz (1)
äquivalenzklassen (1)
Bedingungsüberdeckung (1)
bedingungsüberdeckung (1)
bewertung (2)
blackbox (1)
CMMI (1)
Code (1)
datenflussanalyse (1)
datenflussbasiert (2)
datenflussbasiertes testen (1)
datenflussbasierut (1)
Diagrammtypen (1)
einschränkung (1)
emf (3)
entscheidungstabelle (1)
Erweiterung (1)
evolution (1)
fehler (1)
fehlerhandlung (1)
fehlerzustand (1)
gef (3)
generieren (1)
gmf (1)
grenzen des testens (1)
Grenzwertanalyse (1)
grundidee (1)
integrationsstrategien (1)
integrationstest (1)
Invariante (2)
iso9000 (1)
komplexität (2)
Komplexität (2)
Komponententest (1)
kontrollflussanalyse (1)
kontrollflussbezogen (2)
kreis (1)
kriterien (1)
kritik (1)
lazy evaluation (1)
lebenszyklus (1)
MDA (1)
mda (2)
Meta (1)
meta (1)
Metamodell (1)
metrik (1)
modell (1)
mvc (1)
nachbedingung (1)
negativ (1)
objektorientierte (1)
ocl (1)
omg (1)
positiv (1)
Probleme (2)
qualität (2)
qualitätslenkung (1)
qualitätsmanagement (3)
qualitätsprüfung (1)
robust (1)
software (4)
spezifikation (3)
standards (1)
Standards (1)
strukturelles Testen (1)
suite (1)
symbolische ausführung (1)
Systemtest (1)
testen (2)
testprozess (1)
Testprozess (1)
überblick (1)
übung3 (1)
UML (2)
UMl (1)
ursache (1)
ursache-wirkungsgraph (1)
v-modell (1)
validierung (2)
verifizierung (1)
verifzierung (1)
vorbedingung (1)
white-box (2)
zentral (1)
ziele (1)
zustandsbasierter test (1)
zyklomatisch (3)
Missbrauch melden

Abbrechen
E-Mail

Passwort

Login    

Passwort vergessen?
Deutsch  English