(UML) Benötigte Schnittstelle bzw. Daten modellieren
Hopsel
- sonstiges
Hi alle!
Ich möchte für eine Klasse [1] eine benötigte Schnittstelle darstellen, also beschreiben, wie die von außen kommenden Daten, die für die Arbeit der Klasse benötigt werden, auszusehen haben.
Mittlerweile glaube ich, dass so etwas in der reinen™ UML nicht vorgesehen ist.
Eine Schnittstelle wird in meiner Literatur [2] als "Operationsmenge, die einen Aspekt im Verhalten einer Klasse spezifiziert und zugleich eine Operationsmenge, die die betreffende Klasse anderen Klassen gegenüber präsentiert" beschrieben. Diese Konzept ist für mich auch klar.
Aber so kann ich ja nicht beschreiben, wie die externen Daten auszusehen haben. (Weil das mMn nicht mit Operationen geht... [3])
Ich vermute mal, ich bin schon mit dem Begriff "Schnittstelle" auf dem Holzweg, oder?
Wie kann ich die Anforderungen an von außen kommende Daten also exakt spezifizieren?
[1] Es geht um eine Klasse, die aus Überweisungsdaten eine entsprechende DTAUS-Datei erzeugt.
[2] Schmuller, J.: Jetzt lerne ich UML. 10. Auflage (2003), M+T Verlag
[3] Beispiel: Wie modelliere ich, dass eine Verwendungszweckzeile aus maximal 27 Zeichen bestehen darf?
MfG H☼psel
Hi!
Ich möchte für eine Klasse [1] eine benötigte Schnittstelle darstellen, also beschreiben, wie die von außen kommenden Daten, die für die Arbeit der Klasse benötigt werden, auszusehen haben.
Wenn ich das recht verstehe, willst du primär einen Typ haben, den eine bestimmte Methode einer Klasse entgegennimmt, um ihn weiterzuverarbeiten. Anderenfalls möchtest du eine Klasse, die Daten und Methoden für die Überweisungsgeschichte hat. Die möchtest du jedoch als Schnittstelle definieren, um unabhängig von einer konkreten Klasse zu sein. In der UML-Darstellung unterscheidet sich eine Schnittstelle nicht sonderlich von einer Klasse.
[3] Beispiel: Wie modelliere ich, dass eine Verwendungszweckzeile aus maximal 27 Zeichen bestehen darf?
Wenn es einen Typ gibt, wie string[26], dann hast du das implizit modelliert. Ansonsten ist das nicht modellierbar. Es ist dann auch nicht möglich, es im Interface festzuklopfen. Wenn da nur ›string‹ anzugeben geht, ist die Längenbeschränkung nur programmatisch überwachbar, und da ist die Schnittstelle außen vor.
Lo!
Hi dedlfix!
Danke für deine Antwort.
Anderenfalls möchtest du eine Klasse, die Daten und Methoden für die Überweisungsgeschichte hat.
Mir ist hier vor allem das Daten_format_ wichtig.
Die möchtest du jedoch als Schnittstelle definieren, um unabhängig von einer konkreten Klasse zu sein. In der UML-Darstellung unterscheidet sich eine Schnittstelle nicht sonderlich von einer Klasse.
Wie schon zitiert: Eine Schnittstelle hat keine Attribute, nur Operationen/Methoden, richtig?
Ich möchte aber explizit beschreiben, wie die Daten aussehen müssen. Deshalb auch meine Vermutung, dass eine Schnittstelle wohl nicht das richtige Modellierungswerkzeug ist.
[3] Beispiel: Wie modelliere ich, dass eine Verwendungszweckzeile aus maximal 27 Zeichen bestehen darf?
Wenn es einen Typ gibt, wie string[26], dann hast du das implizit modelliert.
Ich glaube, das ist auch der einzige Weg. Ich modelliere die Attribute meiner DTAUS-Klasse so, dass sie implizit das benötigte Datenformat beschreiben.
Um die Modellierung zu vereinfachen, möchte ich in der Klasse selbst aber keine Validierungsmethoden für die übergebenen Daten einführen, sondern festlegen, dass diese Daten in einem bestimmten Format vorliegen müssen.
Soweit ich mich erinnern kann, wurde das in der Strukturierten Analyse auch irgendwie realisiert. Ich hatte gehofft, dass jemand von euch, schon etwas in der Art modelliert hat.
Vermutlich werde ich in einer Notiz einfach auf einen Text verweisen, der die Spezifikation der Daten beschreibt.
Ist dagegen etwas einzuwenden?
MfG H☼psel
Hi!
Wie schon zitiert: Eine Schnittstelle hat keine Attribute, nur Operationen/Methoden, richtig?
Nö. Jedenfalls nicht so pauschal, wenn man die reale Welt mit betrachtet. Unter C# kann ein Interface auch Propertys haben, was also Attributen gleichkommt.
Ich hatte gehofft, dass jemand von euch, schon etwas in der Art modelliert hat.
Ich bin Praktiker. Ich implementiere zuerst und erstelle das Modell anschließend - zu Dokumentationszwecken. :-)
Vermutlich werde ich in einer Notiz einfach auf einen Text verweisen, der die Spezifikation der Daten beschreibt.
Ist dagegen etwas einzuwenden?
Von meiner Seite aus nicht, aber ich bin auch nicht deine Lehrkraft ...
Lo!
Hi dedlfix!
Wie schon zitiert: Eine Schnittstelle hat keine Attribute, nur Operationen/Methoden, richtig?
Nö. Jedenfalls nicht so pauschal, wenn man die reale Welt mit betrachtet. Unter C# kann ein Interface auch Propertys haben, was also Attributen gleichkommt.
Anscheinend ist meine Quelle nicht mehr aktuell. Sogar Wikipedia schreibt:
"Eine Schnittstelle deklariert eine Liste von Attributen, Operationen und Signalempfängern, die alle öffentliche Sichtbarkeit haben." [Schnittstelle (UML)]
Damit sind meine Bedenken zerstreut. Zumal die UML sich selbst als Hilfmittel versteht, das auch verändert werden darf, solange es zum besseren Verständnis beiträgt.
Ich hatte gehofft, dass jemand von euch, schon etwas in der Art modelliert hat.
Ich bin Praktiker. Ich implementiere zuerst und erstelle das Modell anschließend - zu Dokumentationszwecken. :-)
Wenn´s nur darum gehen würde, das Teil zu programmieren...
Aber da hat mich jetzt der Ehrgeiz gepackt!
Vermutlich werde ich in einer Notiz einfach auf einen Text verweisen, der die Spezifikation der Daten beschreibt.
Ist dagegen etwas einzuwenden?
Von meiner Seite aus nicht, aber ich bin auch nicht deine Lehrkraft ...
An die habe ich noch gar nicht gedacht.
Ich bin gerade im Praxissemester und da sind die Dozenten irgendwie aus dem Kopf verbannt. Ich werde das mit einer E-Mail sofort nachholen.
Auf jeden Fall ein dickes Danke an dich. Ich betrachte die Aufgabe schonmal als "gelöst". ;-)
MfG H☼psel