FAQ
© 2015 Staats- und Universitätsbibliothek
Hamburg, Carl von Ossietzky

Öffnungszeiten heute09.00 bis 24.00 Uhr alle Öffnungszeiten

Eingang zum Volltext in OPUS

Hinweis zum Urheberrecht

Dissertation zugänglich unter
URN: urn:nbn:de:gbv:18-70227
URL: http://ediss.sub.uni-hamburg.de/volltexte/2014/7022/


Vermeidung von Lücken in API-Verträgen

Krause, Jan Christian

pdf-Format:
 Dokument 1.pdf (2.893 KB) 


SWD-Schlagwörter: API , Spezifikation , Schnittstelle
Freie Schlagwörter (Deutsch): Application Programming Interface , API-Dokumentation , API-Spezifikation , Spezifikation , Vertragsmodell
Freie Schlagwörter (Englisch): Application Programming Interface , API-Documentation , API-Specification , Design by Contract
Basisklassifikation: 54.52 , 54.39
Institut: Informatik
DDC-Sachgruppe: Informatik
Dokumentart: Dissertation
Hauptberichter: Menzel, Wolfgang (Prof. Dr.-Ing.)
Sprache: Deutsch
Tag der mündlichen Prüfung: 30.09.2014
Erstellungsjahr: 2013
Publikationsdatum: 27.10.2014
Kurzfassung auf Deutsch: 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.
Kurzfassung auf Englisch: 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.

Zugriffsstatistik

keine Statistikdaten vorhanden
Legende