se_11_interfaces.ppt1 Softwareengineering Interfaces Prof. Dr.-Ing. Axel Benz, Berlin School of Economics and Law
se_11_interfaces.ppt2 Grundidee Trennung der Signatur einer Funktion von ihrer Implementierung (Signatur = Funktionskopf, Definition der Parametertypen und des Rückgabetyps der Funktion) Zwei Anwendungsbereiche: Java Encryption Package: SUN gibt die Signatur vor, andere Firmen können Implementierungen liefern. -Vorteil: Implementierungen können leicht ausgetauscht werden, wenn die Ansprüche ändern (z.B. ein Algorithmus "geknackt" wird -Funktion eines Programmes ist noch gewährleistet, wenn sich die implementierende Firma an die Funktionsdokumentation hält. Entwicklergruppe, gleichzeitig wird eine Funktion implementiert und andere andere Entwickler implementieren den Zugriff 1.Interface entwickeln 2.Mockup gemäß dem Interface entwickeln (Funktion, die nur mit einem Sonderfall funktioniert) 3.Jetzt können die "Zugreifer" arbeiten und gleichzeitig kann die eigentliche Funktion entwickelt werden
se_11_interfaces.ppt3 "Design by contract" Mittel, um Programme mit vielen Mitarbeitern, die parallel arbeiten, zu entwickeln. Man macht erste "Verträge" über die Schnittstellen zwischen den Teams, dann kann jeder parallel loslegen Verträge bestehen aus: Interface + Funktionsdokumentation
se_11_interfaces.ppt4 Unterschied zu abstrakten Klassen Einziger wirklicher Unterschied: Eine Klasse kann mehrere Interfaces implementieren, aber nur eine abstrakte Klasse ableiten. Wichtiger psychologischer Effekt: Ein Interface drängt den Entwickler eher dazu, genau dem Interface zu folgen und z.B. keine weiteren Methoden hinzuzuimplementieren.
se_11_interfaces.ppt5 Beispiel für Interfaces
se_11_interfaces.ppt6 Beispiel für Implementierung
se_11_interfaces.ppt7 PHP Syntax Genau gleich wie Java Syntax