1 |
Improving the accessibility of API documentation for non-technical usersMarinosci, Gabriele, Shchadrynski, Ratmir January 2023 (has links)
Software documentation is one of the most important aspects of the software development process, as it allows the transfer of knowledge between individuals, regardless of their background and their technical knowledge. In particular, Application Programming Interfaces provide the basic structure for the communication and integration between different software systems. Therefore, providing solid API documentation is fundamental for the software development process as it represents one of the main learning tools for developers trying to learn new technologies. While researchers have studied the fundamentals of good API documentation design for over twenty years, most studies only focused on the point of view of developers. However, with the rising amount of companies offering Software-as-a-Service products, it has also become important to produce documentation that is accessible to people with limited technical knowledge, i.e. customer representatives. In order to fill this research gap, a case study was conducted in collaboration with a software company. By using a design science approach, this project focused on creating an API playground environment where users could interact with various APIs offered by the company. The results were evaluated through a questionnaire for user feedback and with an interview conducted with developers from the company. While the outcome of the evaluation was positive, the limited scope of the project prevented some important aspects of API documentation such as navigation from being thoroughly examined, therefore more extensive research is needed in the future.
|
2 |
Implementace nástroje pro analýzu dat o pohybu osob / Implementation of a tool for human movement data analysisMatějka, Martin January 2014 (has links)
The aim of this thesis is to provide an insight into theoretical and practical aspects of an analytical tool developed by Ondřej Funiok, Vilém Kalus, Tomáš Rosenberger and Martin Matějka at the University of Economics in Prague. The goal was to develop a tool which could be used for an analysis of human movement within a given place (e.g. retail store) and which could leverage traditional customers' data like age, gender or profession in order to enrich outcomes of conducted analysis, as well as provide a new segmentation of these customers based on their movement. Given that, one of the possible scenarios is that marketers would be able to finely-target their campaigns and use the space more effectively. The thesis contains a short introduction to Location Intelligence as a category of systems which the developed tool belongs to. Further a research of existing theses, articles etc., as well as already available products is conducted. Since a documentation of web services' application interface has proved to be an important aspect of the development, a research and comparison of supporting tools follows. Fourth and fifth chapters are of rather practical nature -- the first of them is about an overall design and architecture of the developed tool, while the second one describes the used application interface and its documentation in detail together with the most important aspects of a backend component -- so called ,,GA-Server``.
|
3 |
Inferring API Usage Patterns and Constraints : a Holistic ApproachSaied, Mohamed Aymen 08 1900 (has links)
Les systèmes logiciels dépendent de plus en plus des librairies et des frameworks logiciels. Les programmeurs réutilisent les fonctionnalités offertes par ces librairies à travers une interface de programmation (API). Par conséquent, ils doivent faire face à la complexité des APIs nécessaires pour accomplir leurs tâches, tout en surmontant l’absence de directive sur l’utilisation de ces API dans leur documentation. Dans cette thèse, nous proposons une approche holistique qui cible le problème de réutilisation des librairies, à trois niveaux. En premier lieu, nous nous sommes intéressés à la réutilisation d’une seule méthode d’une API. À ce niveau, nous proposons d’identifier les contraintes d’utilisation liées aux paramètres de la méthode, en analysant uniquement le code source de la librairie. Nous avons appliqué plusieurs analyses de programme pour détecter quatre types de contraintes d’utilisation considérées critiques. Dans un deuxième temps, nous changeons l’échelle pour nous focaliser sur l’inférence des patrons d’utilisation d’une API. Ces patrons sont utiles pour aider les développeurs à apprendre les façons courantes d’utiliser des méthodes complémentaires de l’API. Nous proposons d’abord une technique basée sur l’analyse des programmes clients de l’API. Cette technique permet l’inférence de patrons multi-niveaux. Ces derniers présentent des relations de co-utilisation entre les méthodes de l’API à travers des scénarios d’utilisation entremêlés. Ensuite, nous proposons une technique basée uniquement sur l’analyse du code de la librairie, pour surmonter la contrainte de
l’existence des programmes clients de l‘API. Cette technique infère les patrons par analyse des relations structurelles et sémantiques entre les méthodes. Finalement, nous proposons une technique coopérative pour l’inférence des patrons d’utilisation. Cette technique est axée sur la combinaison des heuristiques basées respectivement sur les clients et sur le code de la librairie. Cette combinaison permet de profiter à la fois de la précision des techniques basées sur les clients et de la généralisabilité des techniques basées sur les librairies. Pour la dernière contribution de notre thèse, nous visons un plus haut niveau de réutilisation des librairies. Nous présentons une nouvelle approche, pour identifier automatiquement les patrons d’utilisation de plusieurs librairies, couramment utilisées ensemble,
et généralement développées par différentes tierces parties. Ces patrons permettent de découvrir les possibilités de réutilisation de plusieurs librairies pour réaliser diverses fonctionnalités du projets. / Software systems increasingly depend on external library and frameworks. Software developers need to reuse functionalities provided by these libraries through their Application Programming Interfaces (APIs). Hence, software developers have to cope with the complexity of existing APIs needed to accomplish their work, and overcome the lack of usage directive in the API documentation. In this thesis, we propose a holistic approach that deals with the library usability problem at three levels of granularity. In the first step, we focus on the method level. We propose to identify usage constraints related to method parameters, by analyzing only the library source code. We applied program analysis
strategies to detect four critical usage constraint types. At the second step, we change the scale to focus on API usage pattern mining in order to help developers to better learn common ways to use the API complementary methods. We first propose a client-based technique for mining multilevel API usage patterns to exhibit the co-usage relationships between API methods across interfering usage scenarios. Then, we proposed a library-based technique to overcome the strong constraint of client programs’ selection. Our technique infers API usage patterns through the analysis of structural
and semantic relationships between API methods. Finally, we proposed a cooperative usage pattern mining technique that combines client-based and library-based usage pattern mining. Our technique takes advantage at the same time from the precision of the client-based technique and from the generalizability of the library-based technique. As a last contribution of this thesis, we target a higher level of library usability. We present a novel approach, to automatically identify third-party library usage patterns, of libraries that are commonly used together. This aims to help developers to discover reuse opportunities, and pick complementary libraries that may be relevant for their projects.
|
Page generated in 0.1153 seconds