Zu dieser Karteikarte gibt es einen kompletten Satz an Karteikarten. Kostenlos!
80
78. Was ist eine Signatur? Wie sieht eine Signatur aus? Welche Unterschiede gibt es zwischen Oberflächen- und Tiefensignatur? Benötigt man die Tiefensignatur für die natürlichsprachliche Spezifikation?
"Unter Signatur einer Methode versteht man ihren internen Namen. Dieser setzt sich aus dem nach außen sichtbaren Namen plus codierter Information über die Reihenfolge und Typen der formalen Parameter zusammen. Die Signaturen zweier gleichnamiger Methoden sind also immer dann unterscheidbar, wenn sie sich wenigstens in einem Parameter voneinander unterscheiden." [Krüger]
* Die Oberflächensignatur gibt die Schnittstelle wieder.
float sqrt( float x );
* Die Tiefensignatur beschreibt zusätzlich die Vor- und Nachbedingung.
pre-sqrt: x >= 0
post-sqrt: result^2 = x
float sqrt( float x );
Für eine natürlichsprachliche Spezifikation braucht man zwingend die Tiefensignatur, da man Vor- und Nachbedingungen beschreiben muss, die ja vom internen Vor- und Nachzustand der Klasse abhängen und umgekehrt.
* Die Oberflächensignatur gibt die Schnittstelle wieder.
float sqrt( float x );
* Die Tiefensignatur beschreibt zusätzlich die Vor- und Nachbedingung.
pre-sqrt: x >= 0
post-sqrt: result^2 = x
float sqrt( float x );
Für eine natürlichsprachliche Spezifikation braucht man zwingend die Tiefensignatur, da man Vor- und Nachbedingungen beschreiben muss, die ja vom internen Vor- und Nachzustand der Klasse abhängen und umgekehrt.