CoboCards App FAQ & Wishes Feedback
Language: English Language
Sign up for free  Login

Get these flashcards, study & pass exams. For free! Even on iPhone/Android!

Enter your e-mail address and import flashcard set for free.  
Go!
All main topics / Informatik / Softwarekonstruktion

SWK (68 Cards)

Say thanks
52
Cardlink
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
Source:
Flashcard set info:
Author: Annika
Main topic: Informatik
Topic: Softwarekonstruktion
School / Univ.: TU Dortmund
Published: 19.03.2014
Tags: Prof Dr Jürjens
 
Card tags:
All cards (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)
Report abuse

Cancel
Email

Password

Login    

Forgot password?
Deutsch  English