495 research outputs found

    Adaptoring: Adapter Generation to Provide an Alternative API for a Library

    Full text link
    Third-party libraries are a cornerstone of fast application development. To enable efficient use, libraries must provide a well-designed API. An obscure API instead slows down the learning process and can lead to erroneous use. The usual approach to improve the API of a library is to edit its code directly, either keeping the old API but deprecating it (temporarily increasing the API size) or dropping it (introducing breaking changes). If maintainers are unwilling to make such changes, others need to create a hard fork, which they can refactor. But then it is difficult to incorporate changes to the original library, such as bug fixes or performance improvements. In this paper, we instead explore the use of the adapter pattern to provide a new API as a new library that calls the original library internally. This allows the new library to leverage all implementation changes to the original library, at no additional cost. We call this approach adaptoring. To make the approach practical, we identify API transformations for which adapter code can be generated automatically, and investigate which transformations can be inferred automatically, based on the documentation and usage patterns of the original library. For cases where automated inference is not possible, we present a tool that lets developers manually specify API transformations. Finally, we consider the issue of migrating the generated adapters if the original library introduces breaking changes. We implemented our approach for Python, demonstrating its effectiveness to quickly provide an alternative API even for large libraries.Comment: Accepted at the International Conference on Software Analysis, Evolution and Reengineering (SANER 2024

    Why Do Developers Get Password Storage Wrong? A Qualitative Usability Study

    Full text link
    Passwords are still a mainstay of various security systems, as well as the cause of many usability issues. For end-users, many of these issues have been studied extensively, highlighting problems and informing design decisions for better policies and motivating research into alternatives. However, end-users are not the only ones who have usability problems with passwords! Developers who are tasked with writing the code by which passwords are stored must do so securely. Yet history has shown that this complex task often fails due to human error with catastrophic results. While an end-user who selects a bad password can have dire consequences, the consequences of a developer who forgets to hash and salt a password database can lead to far larger problems. In this paper we present a first qualitative usability study with 20 computer science students to discover how developers deal with password storage and to inform research into aiding developers in the creation of secure password systems

    Improving the user experience of open application programming interface (API) from a digital marketing perspective: A case study in a global telecommunications company

    Get PDF
    Application programming interface (API) is a programming interface that allows different applications to share information, functionality, and other resources with each other. When creating an open-source application programming interface, customer feedback is important. Understanding end-user needs can help improve the interface and target marketing activities. It is known from previous studies that quality of experience (QoE) is the driver for open radio access networks (O-RAN) and that user experience (UX) is what affects system use and leads to actual usage. This subject is relevant in this area of science since the software developer's perspective on open application programming interfaces is often disregarded, resulting in fewer studies. The objective of this thesis is to determine the necessary technological requirements to improve software developers' user experience and attract new customers. This research is based on an empirical study developing an open application programming interface for business-to-business (B2B) customers. The technology that is a central part of the study is programmable wireless network that allows to develop non-real time applications called xApps. This is case study research, which uses both quantitative and qualitative research methods. Information gathered for this research is going to be collected via interviews and surveys from the target group. This thesis's limitation is that the analyzed target group has a limited business market. The empirical data for this research is gathered from a global telecommunication company, from publications about the industry, and surveys and interviews gathered from the target market group. The three main findings of the thesis are related to how building trust among developers and partners is crucial, how developers need to be encouraged to learn something new and how developers that have more experience have fewer expectations. Previous research indicates that discovery about developers that have more experience have fewer expectations is new in this field of study. As a conclusion there are entry level blockages, telecommunication technology development, partner engagement, community, cost, and platform related killers that affect the motivation and prevent investing into an open API platform that specializes in xApps. To create a successful xApp platform the provider company needs to tackle these problems and highlight the possibilities that xApps offer.Sovellusohjelmointirajapinnan (API, Application programming interface) avulla eri sovellukset voivat jakaa tietoja, toimintoja ja muita resursseja keskenään. Avoimen lähdekoodin sovellusohjelmointirajapintaa luotaessa asiakaspalaute on tärkeää. Loppukäyttäjien tarpeiden ymmärtäminen voi auttaa parantamaan rajapintaa ja kohdentamaan markkinointia paremmin. Opinnäytetyön tavoitteena on selvittää, mitkä teknologiset vaatimukset ovat tarpeen ohjelmistokehittäjien käyttökokemuksen parantamiseksi ja uusien asiakkaiden houkuttelemiseksi. Aiemmista tutkimuksista tiedetään, että kokemuksen laatu (QoE) on avointen radioliityntäverkkojen (O-RAN) liikkeelle paneva voima ja, että käyttökokemus (UX) vaikuttaa järjestelmän käyttöön ja johtaa varsinaiseen käyttöön. Aiheella on merkitystä tällä tieteen alalla, koska ohjelmistokehittäjän näkökulma avoimiin sovellusohjelmointirajapintoihin jää usein huomiotta, jolloin ohjelmistokehittäjän näkökulmasta tietoa löytyy vähemmän. Tutkimus perustuu empiiriseen tutkimukseen, jossa kehitetään avoimen sovelluksen ohjelmarajapintaa yritysten välisille asiakkaille (B2B). Tutkimuksen keskeisenä teknologiana on ohjelmoitava langaton verkko, jonka avulla voidaan kehittää ei-reaaliaikaisia xApp-sovelluksia. Tämä tutkimus on tapaustutkimus, jossa on käytetty sekä kvantitatiivisia että kvalitatiivisia tutkimusmenetelmiä. Tutkimusta varten tietoa on kerätty kohderyhmän haastatteluilla ja kyselyillä. Tutkimuksen rajoituksena on, että analysoidulla kohderyhmällä on rajalliset liiketoimintamarkkinat. Empiirinen data tähän tutkimukseen on kerätty globaalista tietoliikenneyhtiöstä, alan julkaisuista sekä kohderyhmältä kerätyistä kyselyistä ja haastatteluista. Opinnäytetyön kolme päähavaintoa ovat, että luottamuksen rakentaminen kehittäjien ja kumppaneiden keskuudessa on ratkaisevan tärkeää, kehittäjiä tulee kannustaa oppimaan uutta ja kokeneemmilla kehittäjillä on vähemmän odotuksia. Aiemmat tutkimukset osoittavat, että löytö siitä, että kokeneemmilla kehittäjillä on vähemmän odotuksia, on uusi tällä tutkimusalalla. Johtopäätöksenä lähtötason pullonkaulat, viestintäteknologian kehitys, kumppanuussitoutuminen, yhteisön, kustannusten ja alustan tappajat vaikuttavat motivaatioon ja heikentävät investointia xAppeihin erikoistuneeseen avoimeen API-alustaan. Menestyvän xApp-alustan luomiseksi yrityksen on puututtava näihin ongelmiin ja tuotava esiin xAppien tarjoamat mahdollisuudet

    AUGMENTED TOUCH INTERACTIONS WITH FINGER CONTACT SHAPE AND ORIENTATION

    Get PDF
    Touchscreen interactions are far less expressive than the range of touch that human hands are capable of - even considering technologies such as multi-touch and force-sensitive surfaces. Recently, some touchscreens have added the capability to sense the actual contact area of a finger on the touch surface, which provides additional degrees of freedom - the size and shape of the touch, and the finger's orientation. These additional sensory capabilities hold promise for increasing the expressiveness of touch interactions - but little is known about whether users can successfully use the new degrees of freedom. To provide this baseline information, we carried out a study with a finger-contact-sensing touchscreen, and asked participants to produce a range of touches and gestures with different shapes and orientations, with both one and two fingers. We found that people are able to reliably produce two touch shapes and three orientations across a wide range of touches and gestures - a result that was confirmed in another study that used the augmented touches for a screen lock application

    On Using Machine Learning to Identify Knowledge in API Reference Documentation

    Full text link
    Using API reference documentation like JavaDoc is an integral part of software development. Previous research introduced a grounded taxonomy that organizes API documentation knowledge in 12 types, including knowledge about the Functionality, Structure, and Quality of an API. We study how well modern text classification approaches can automatically identify documentation containing specific knowledge types. We compared conventional machine learning (k-NN and SVM) and deep learning approaches trained on manually annotated Java and .NET API documentation (n = 5,574). When classifying the knowledge types individually (i.e., multiple binary classifiers) the best AUPRC was up to 87%. The deep learning and SVM classifiers seem complementary. For four knowledge types (Concept, Control, Pattern, and Non-Information), SVM clearly outperforms deep learning which, on the other hand, is more accurate for identifying the remaining types. When considering multiple knowledge types at once (i.e., multi-label classification) deep learning outperforms na\"ive baselines and traditional machine learning achieving a MacroAUC up to 79%. We also compared classifiers using embeddings pre-trained on generic text corpora and StackOverflow but did not observe significant improvements. Finally, to assess the generalizability of the classifiers, we re-tested them on a different, unseen Python documentation dataset. Classifiers for Functionality, Concept, Purpose, Pattern, and Directive seem to generalize from Java and .NET to Python documentation. The accuracy related to the remaining types seems API-specific. We discuss our results and how they inform the development of tools for supporting developers sharing and accessing API knowledge. Published article: https://doi.org/10.1145/3338906.333894

    Enabling audio-haptics

    Get PDF
    This thesis deals with possible solutions to facilitate orientation, navigation and overview of non-visual interfaces and virtual environments with the help of sound in combination with force-feedback haptics. Applications with haptic force-feedback, s
    corecore