Volltextdatei(en) vorhanden
Titel: Vermeidung von Lücken in API-Verträgen
Sprache: Deutsch
Autor*in: Krause, Jan Christian
Schlagwörter: Application Programming Interface; API-Dokumentation; API-Spezifikation; Spezifikation; Vertragsmodell; Application Programming Interface; API-Documentation; API-Specification; Design by Contract
GND-Schlagwörter: API
Spezifikation
SchnittstelleGND
Erscheinungsdatum: 2013
Tag der mündlichen Prüfung: 2014-09-30
Zusammenfassung: 
Viele moderne Software-Systeme sind aus verschiedenen Komponenten aufgebaut. Diese Komponenten interagieren jeweils über definierte Schnittstellen mit Operationen, sogenannte Application Programming Interfaces (API). Deren Erwartungen und erbrachte Leistungen werden durch einen zur jeweiligen Operation gehörenden Vertrag spezifiziert. Enthält dieser Vertrag Lücken, so sind folgenschwere Missverständnisse zwischen dem Hersteller einer Komponente und deren Nutzern (im Sinne nutzender Programmierer) sehr wahrscheinlich. Diese Lücken werden als Stille bezeichnet und betreffen häufig an der Signatur unsichtbare Ressourcen, Regeln oder mögliche Ausnahmefälle. In dieser Arbeit wird ein systematisches Verfahren zur Identifikation dieser Lücken entwickelt.

Dieses Verfahren basiert auf einer linguistischen Analyse des natürlichsprachlichen Namens der Operation. Die vorliegende Arbeit zeigt, dass selbiger häufig englische Verben beinhaltet. Aufgrund
des Verbs oder genauer des Prädikates des Namens kann auf notwendige
Inhalte des zugehörigen Vertrages rückgeschlossen werden. Dazu werden Operationen gemäß dem linguistischen Konzept der thematischen Raster in Kategorien eingeteilt. Diesen Kategorien werden in einem Lexikon sowohl mögliche Verben als auch die geforderten Inhalte zugeordnet. Diese Arbeit enthält einen auf Basis empirischer Analysen entwickelten Vorschlag für die Initialisierung dieses Lexikons. Das Verfahren kann unabhängig von einer konkreten natürlichen Sprache (zur Formulierung der Bezeichner) oder Programmiersprache (zur Formulierung der Operationssignatur) eingesetzt werden. Es wird ferner ein prototypischer Software-Assistent vorgestellt, der Autoren bei der Formulierung von API-Verträgen auf Basis des neu entwickelten Ansatzes unterstützt.

Diese Arbeit stellt außerdem einen Ansatz zur Quantifizierung des Umfangs und der Relevanz von Lücken in einem API-Vertrag vor. Dieser Ansatz basiert auf systematisch konstruierten Testfällen zu einer Operation. Über die systematische Konstruktion von Testfällen kann ein Erwartungshorizont für API-Verträge konstruiert werden. Vor dem
Hintergrund dieses Erwartungshorizontes an Inhalten erfolgt dann die Bewertung des tatsächlichen Vertrages. Abschließend wird das neue Verfahren im Rahmen einer Fallstudie und eines Probandenexperimentes evaluiert. Dabei zeigt sich, dass sich durch das entwickelte Lexikon ein hohes Optimierungspotential für API-Verträge erschließt, die auf Basis konventioneller Verfahren wie javadoc formuliert worden sind.

Many of modern complex software-systems are built of components. These components interact via defined interfaces with operations, so called Application Programming Interfaces (API). The requirements and offered services of an operation are described by its contract. If there are gaps in such a contract, serious misunderstandings between provider and consumer of a component are a probable consequence. Such gaps are called silence. In most cases the gaps refer to resources, business rules or possible error cases, which are invisible at the operation’s signature. This thesis presents a systematic approach to identify silence.

The presented approach bases on the linguistic analysis of the operation’s identifier in natural language. It is shown, that such identifiers often contain english verbs. With these verbs or, more precise, with these predicates one could infer required resources, rules or error cases for the corresponding contract. By applying the linguistic concept of thematic grids the operations are categorized. The verbs as well as the inferred contents are assigned to each of these categories. This thesis suggests such a lexicon which has been derived from empirical investigations. This approach is independent of a concrete natural language (to formulate the identifiers) or programming language (to formulate an operation’s signature). In addition a protoypical software assistant is presented, which supports authors when formulating API-contracts.

This work also introduces an approach to measure the amount as well as the relevance of silence in API-contracts. It bases on systematically constructed test cases. By constructing test cases systematically a set of hints to expected contents could be derived. The amount and relevance of silence are quantified by comparing these expectations with an actual contract. The introduced lexicon is evaluated in a case study and a laboratory experiment. Both evaluations show that there is much space to complete API-contracts which have been created with traditional approaches as javadoc.
URL: https://ediss.sub.uni-hamburg.de/handle/ediss/5637
URN: urn:nbn:de:gbv:18-70227
Dokumenttyp: Dissertation
Betreuer*in: Menzel, Wolfgang (Prof. Dr.-Ing.)
Enthalten in den Sammlungen:Elektronische Dissertationen und Habilitationen

Dateien zu dieser Ressource:
Datei Beschreibung Prüfsumme GrößeFormat  
Dissertation.pdfded235409ffe09980eeb3a58c735f4b22.89 MBAdobe PDFÖffnen/Anzeigen
Zur Langanzeige

Diese Publikation steht in elektronischer Form im Internet bereit und kann gelesen werden. Über den freien Zugang hinaus wurden durch die Urheberin / den Urheber keine weiteren Rechte eingeräumt. Nutzungshandlungen (wie zum Beispiel der Download, das Bearbeiten, das Weiterverbreiten) sind daher nur im Rahmen der gesetzlichen Erlaubnisse des Urheberrechtsgesetzes (UrhG) erlaubt. Dies gilt für die Publikation sowie für ihre einzelnen Bestandteile, soweit nichts Anderes ausgewiesen ist.

Info

Seitenansichten

653
Letzte Woche
Letzten Monat
geprüft am 28.03.2024

Download(s)

624
Letzte Woche
Letzten Monat
geprüft am 28.03.2024
Werkzeuge

Google ScholarTM

Prüfe