Richtlinie: Schnittstelle
Schnittstellen werden verwendet, um die Benutzersicht eines Systems darzustellen und seine Implementierung zu verdecken. Diese Richtlinie beschreibt Regeln für die Spezifikation von Schnittstellen.
Beziehungen
Zugehörige Elemente
Hauptbeschreibung

Schnittstellen benennen Seitenanfang

  • Geben Sie der Schnittstellen einen Namen, der die Rolle widerspiegelt, die die Schnittstelle im System einnimmt.
  • Der Name sollte kurz sein und maximal aus 1 bis 2 Wörtern bestehen.
  • Verwenden Sie für den Namen nicht das Wort "interface". Dass es sich um eine Schnittstelle (engl. Interface) handelt geht aus dem Typ des Modellelements (z. B. interface) hervor.

Schnittstellen beschreiben Seitenanfang

  • Die Beschreibung sollte die Zuständigkeiten der Schnittstelle vermitteln.
  • Die Beschreibung sollte aus mehreren Sätze (bis hin zu einem kleinen Abschnitt) bestehen.
  • Die Beschreibung sollte nicht einfach den Namen der Schnittstelle wiederholen, sondern Aufschluss über die Rolle der Schnittstelle im System geben.

Operationen definieren Seitenanfang

  • Operationsnamen sollten das Ergebnis der Operation widerspiegeln.
  • Wenn eine Operation Informationen festlegt (engl. set) oder abruft (eng. get), ist das Einfügen von set oder get in den Namen der Operation redundant. Verwenden Sie als Operationsnamen die Eigenschaft des Modellelements, das festgelegt oder abgerufen wird. Eine so benannte Operation ohne Parameter ruft die Eigenschaft ab. Eine so benannte Operation mit einem Parameter legt die Eigenschaft fest.

Beispiel

name() gibt den Namen des Objekts zurück. name(aString) legt den Namen des Objekts mit eineZeichenfolge fest.

  • Die Beschreibung der Operation sollte enthalten, was die Operation tut, welche Schlüsselalgorithmen verwendet werden und welchen Wert sie zurückgibt.
  • Benennen Sie die Parameter der Operation, um anzuzeigen, welche Informationen an die Operation übergeben werden.
  • Geben Sie den Typ des Parameters an.

Schnittstellen dokumentieren Seitenanfang

Das von der Schnittstelle definierte Verhalten wird mit Operationen angegeben. Zusätzliche Informationen können vermittelt werden, z. B.:

  • Wie die Operationen verwendet werden und in welcher Reihenfolge sie ausgeführt werden (veranschaulicht durch Beispielablaufdiagramme).
  • Die möglichen extern sichtbaren Zustände, die ein Modellelement, das die Schnittstelle realisiert, annehmen kann (veranschaulicht durch eine Zustandsmaschine, siehe Richtlinie: Zustandsdiagramm).
  • Testpläne und Testscripts, die das Verhalten aller Modellelement testen, die die Schnittstelle realisieren.

Zur Gruppierung und Verwaltung dieser Informationen sollte ein Paket erstellt werden, das die Schnittstelle und alle zugehörigen Arbeitsergebnisse enthält.

Hinweise und Tipps Seitenanfang

Jede Schnittstelle stellt eine 'Naht' im System dar, eine Stelle, an der das System "auseinander gebrochen" und erneut erstellt oder neu gestaltet werden kann. Schnittstellen stellen die Trennung zwischen Spezifikation und Design bzw. Implementierung dar. Klar strukturierte Schnittstellen zeichnen sich durch Folgendes aus:

  • Sie sind einfach und doch vollständig mit allen erforderlichen Operationen und können einen einzelnen Service ausreichend festlegen.
  • Sie sind verständlich und enthalten genügend Informationen, um die Schnittstelle verwenden und realisieren zu können, ohne eine vorhandene Verwendung oder Implementierung untersuchen zu müssen.
  • Sie sind zugänglich und liefern genügend Informationen, um den Benutzer zu den Schlüsseleigenschaften zu führen, ohne ihn mit Details zu den Operationen zu überfluten.

Berücksichtigen Sie bei der Erstellung einer Schnittstelle Folgendes:

  • Verwenden Sie die "Lollipop"-Notation, wenn Sie lediglich die Existenz einer "Naht" im System aufzeigen möchten. Diese Technik wird größtenteils für Subsysteme und nicht für Klassen benötigt.
  • Verwenden Sie die erweiterte "Klassennotation", wenn Sie die Details des Service selbst beschreiben müssen. Diese Technik wird am häufigsten benötigt, um die von einem Paket oder Subsystem angebotenen Services festzulegen.