Return to search

Creating application programming interface code templates from usage patterns

Application programing interfaces promote reuse by facilitating interaction between software components and/or software libraries. API code templates are parameterized API scenarios that can be quickly instantiated by copy-and-pasting or through support from integrated development environments. They provide the skeletal structure of an API coding scenario and let developers simply "fill in the blanks" with the details of their coding task. Unfortunately, creating relevant API code templates requires time and experience with the API. To address these problems we present a technique that mines API usage patterns and transforms them into API code templates. Our intuition is that API usage patterns are a solid basis for code templates because they are grounded by actual API usage. We evaluate our approach performing retroactive study on the Mammoth, ArgoUML, and Eclipse projects to see if API code templates created from earlier versions could have been helpful to developers in later versions. Our results show that, on average, each API code template our technique mined could have helped developers with creating six, nine, and twelve new methods in Mammoth, ArgoUML, and Eclipse, respectively. In our evaluation, we mined many API code templates from the three test projects that provide evidence that our technique could have helped developers learn and use an API faster in many opportunities. / Les interfaces de programmation (API) encouragent la réutilisation de code en facilitant l'interaction entre les composantes du logiciel et ses librairies. Les "templates" d'API sont des scénarios d'utilisation de l'API paramétrées pour êtres rapidement instanciés par copier-coller ou par le soutien intégré des environnements de développement. Ils fournissent le squelette d'un scénario d'utilisation de l'API et laissent au développeurs la simple tâche de "remplir les espace". Malheureusement, afin de créer des "templates" pertinents, du temps et de l'expérience avec l'API sont nécessaires. Pour résoudre ces problèmes, nous présentons une technique par laquelle les "templates" d'API sont découverts en analysant des scénarios d'utilisation existants. Notre intuition est que de tels scénarios sont une base valide pour la découverte de "templates" car ils sont une représentation existante de l'API en action. Nous évaluons notre méthode en effectuant une étude rétroactive sur les projets Mammoth, ArgoUML, et Eclipse pour voir si les modèles créés à partir de versions antérieures auraient été utiles aux développeurs dans les versions ultérieures. Nos résultats illustrent que, en moyenne, chaque "template" d'API créé par notre technique aurait permis aux développeurs de créer six, neuf et douze nouvelles méthodes dans les projets Mammoth, ArgoUML, et Eclipse, respectivement. De plus, dans notre évaluation, de nombreux modèles de code API ont été créé à partir des ces trois projets, ainsi prouvant que notre technique pourrait avoir aidée les développeurs à apprendre et utiliser une API plus rapidement dans de nombreuses occasions.

Identiferoai:union.ndltd.org:LACETR/oai:collectionscanada.gc.ca:QMM.106349
Date January 2012
CreatorsRatchford, Tristan
ContributorsMartin Robillard (Supervisor)
PublisherMcGill University
Source SetsLibrary and Archives Canada ETDs Repository / Centre d'archives des thèses électroniques de Bibliothèque et Archives Canada
LanguageEnglish
Detected LanguageFrench
TypeElectronic Thesis or Dissertation
Formatapplication/pdf
CoverageMaster of Science (School of Computer Science)
RightsAll items in eScholarship@McGill are protected by copyright with all rights reserved unless otherwise indicated.
RelationElectronically-submitted theses.

Page generated in 0.0139 seconds