Design von Programmierschnittstellen

Fakultät

Fakultät Ingenieurwissenschaften und Informatik (IuI)

Version

Version 1 vom 27.11.2025.

Modulkennung

11B1150

Niveaustufe

Bachelor

Unterrichtssprache

Deutsch

ECTS-Leistungspunkte und Benotung

5.0

Häufigkeit des Angebots des Moduls

unregelmäßig

Dauer des Moduls

1 Semester

 

 

Kurzbeschreibung

Eine API, engl. für Application Programming Interface, ist eine Programmierschnittstelle, die von einer Software oder einem Softwarebaustein zur Integration und Interaktion angeboten wird. Letztendlich stellt die API für Softwareentwickler das Äquivalent eines (grafischen) User Interfaces für Anwender dar. Spielt beim GUI-Design die User Experience (UX) eine entscheidende Rolle, so sollte beim API-Design die Developer-Experience (DX) berücksichtigt werden. Es steht außer Frage, dass eine API die vom Entwickler benötigten funktionalen und nicht-funktionalen Anforderungen erfüllen muss. Allerdings sollte die API zudem einfach und intuitiv einsetzbar sein, sowie eine fehlerhafte Anwendung möglichst unterbinden. APIs lokaler Komponenten und verteilter Services stellen für Unternehmen einen sehr hohen Wert dar. Entsprechend sollten Entwickler vorhandene Standards, Muster und Best-Practises zum API-Design kennen und erfolgreich anwenden können. Zudem sollten Grundkenntnisse vorhanden sein, in der API-Dokumentation, im API-Testing und dem API-Management. Letzteres umfasst die Bereitstellung, Veröffentlichung, Versionierung und Deaktivierung einer API.

Lehr-Lerninhalte

  1. Qualitätsmerkmale, Prinzipien und Muster
  2. Lokale Programmierschnittstellen
  3. Verteilte Programmierschnittstellen
  4. Dokumentation und –Selbstbeschreibung
  5. Testen von Programmierschnittstellen
  6. Management von Programmierschnittstellen

Gesamtarbeitsaufwand

Der Arbeitsaufwand für das Modul umfasst insgesamt 150 Stunden (siehe auch "ECTS-Leistungspunkte und Benotung").

Lehr- und Lernformen
Dozentengebundenes Lernen
Std. WorkloadLehrtypMediale UmsetzungKonkretisierung
30VorlesungPräsenz oder Online-
30betreute KleingruppenPräsenz oder Online-
Dozentenungebundenes Lernen
Std. WorkloadLehrtypMediale UmsetzungKonkretisierung
60Veranstaltungsvor- und -nachbereitung-
30Erstellung von Prüfungsleistungen-
Benotete Prüfungsleistung
  • Hausarbeit oder
  • Referat (mit schriftlicher Ausarbeitung) oder
  • Projektbericht (schriftlich)
Unbenotete Prüfungsleistung
  • experimentelle Arbeit oder
  • regelmäßige Teilnahme
Bemerkung zur Prüfungsart

Prüfungsleistungen können alternativ in Form eines Projektberichtes, Hausarbeit oder Referat erbracht werden. Die Prüfungsform wird vom Dozenten festgelegt. Diese hält sich dabei an die jeweils gültige Studienordnung.

Prüfungsdauer und Prüfungsumfang

Benotete Prüfungsleistung:

  • Hausarbeit: ca. 15-20 Seiten, ggf. dazugehörige Erläuterung: ca. 15 Minuten
  • Referat (mit schriftlicher Ausarbeitung): ca. 15-20 Minuten, dazugehörige Ausarbeitung: ca. 8-10 Seiten
  • Projektbericht (schriftlich): ca. 10-15 Seiten, dazugehörige Erläuterung: ca. 15 Minuten

Unbenotete Prüfungsleistung:

  • Experimentelle Arbeit: Experiment: insgesamt ca. 8 Versuche
  • Regelmäßige Teilnahme: Anwesenheit von mind. 80% der Veranstaltung

Empfohlene Vorkenntnisse

Fortgeschrittene Kenntnisse der objektorientierten Programmierung. Vertiefte Kenntnisse einer objektorientierten Programmiersprache, die in vorangegangenen Grundlagen-Modulen behandelt wurden. Grundlegende Vorkenntnisse zum objektorientierten Design, zur Entwicklung verteilter Systeme, sowie zur Software-Architektur im Allgemeinen sind hilfreich, jedoch keine Voraussetzung.

Wissensverbreiterung

Die Studierenden die dieses Modul erfolgreich absolviert haben, können:

  • Schnittstellen von Klassen, Packages, Modulen, Komponenten und Diensten angemessen entwerfen, umsetzen, testen, bereitstellen und anpassen.

Wissensvertiefung

Die Studierenden die dieses Modul erfolgreich absolviert haben können:

  • die Wichtigkeit und die Wirkung des Schnittstellen-Designs begründen
  • vorhandene Software-Bausteine über definierte Schnittstellen integrieren
  • Schnittstellen entwerfen und umsetzen
  • die Schnittstellen bezüglich angeforderter Qualitätsmerkmale charakterisieren

Wissensverständnis

Die Studierenden die dieses Modul erfolgreich abgeschlossen haben, können:

  • die Qualität von APIs einschätzen und bewerten
  • Auswirkungen von Entscheidungen auf eine API und deren Verwendung eräutern
  • die Vor- und Nachteile verwendeter Muster und Best-Practises einschätzen

Nutzung und Transfer

Die Studierenden, die dieses Modul erfolgreich abgeschlossen haben, können:

  • angemessene Schnittstellen auf unterschiedlichen Ebenen einer Software von der Konzeption bis zur Bereitstellung und Wartung realisieren.

Kommunikation und Kooperation

Die Studierenden die dieses Modul erfolgreich abgeschlossen haben können:

  • Anforderungen an die Schnittstelle eines Programms oder eines Softwarebausteines von Entwicklern ermitteln
  • die Programmierschnittstelle eines Programms / Softwarebausteins dokumentieren und Software-Architekten, sowie Entwicklern in Gesprächen erläutern.

Wissenschaftliches Selbstverständnis / Professionalität

Die Studierenden können:

angemessene Programmier-Schnittstellen entwerfen

Literatur

  • Biehl M. (2016): RESTful API-Design, CreateSpace Independent Publishing Platform, 1. Auflage
  • De B. (2017): API Management: An Architect‘s Guide to Developing and Managing APIs for Your Organization, Apress-Verlag, 1. Auflage
  • Spichale K. (2017): API-Design – Praxishandbuch für Java- und Web-Service-Entwickler, dpunkt.verlag, 1. Auflage
  • Tilkov S., et al. (2015): REST und HTTP: Entwicklung und Integration nach dem Architekturstil des Web, dpunkt.verlag, 3. Auflage
  • Martin R. C. (2008): Clean Code: A Handbook of Agile Software Craftsmanship, Prentice Hall, 1. Auflage
  • Daigneau R. (2012): Service Design Patterns, Addison-Wesley, 1. Auflage
  • Wolf E. (2016): Continous Delivery: Der pragmatische Einstieg, dpunkt.verlag, 1. Auflage
  • Mouat A, Docker – Software entwickeln und deployen mit Container, dpunkt.verlag, 1. Auflage
  • Newman S. (2015): Microservices: Konzeption und Design, mitp-Verlag, 1. Auflage

Verwendbarkeit nach Studiengängen

  • Informatik - Medieninformatik
    • Informatik - Medieninformatik B.Sc. (01.09.2025)

  • Informatik - Technische Informatik
    • Informatik - Technische Informatik B.Sc. (01.09.2025)

    Modulpromotor*in
    • Roosmann, Rainer
    Lehrende
    • Roosmann, Rainer
    Weitere Lehrende

    Roosmann, Rainer;