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
- Qualitätsmerkmale, Prinzipien und Muster
- Lokale Programmierschnittstellen
- Verteilte Programmierschnittstellen
- Dokumentation und –Selbstbeschreibung
- Testen von Programmierschnittstellen
- 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. Workload Lehrtyp Mediale Umsetzung Konkretisierung 30 Vorlesung Präsenz oder Online - 30 betreute Kleingruppen Präsenz oder Online - Dozentenungebundenes Lernen Std. Workload Lehrtyp Mediale Umsetzung Konkretisierung 60 Veranstaltungsvor- und -nachbereitung - 30 Erstellung 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;