Marc Juchli, L. Krombeen, Shashank Rao, C. S. Yu, A. Sawant, Alberto Bacchelli
{"title":"Mining Motivated Trends of Usage of Haskell Libraries","authors":"Marc Juchli, L. Krombeen, Shashank Rao, C. S. Yu, A. Sawant, Alberto Bacchelli","doi":"10.1109/WAPI.2017.6","DOIUrl":"https://doi.org/10.1109/WAPI.2017.6","url":null,"abstract":"We propose an initial approach to minethe usage trends of libraries in Haskell, a popular functional programminglanguage. We integrate it with a novel, initial method to automaticallydetermine the reasons of clients for switching to different versions. Based onthese, we conduct a preliminary investigation of trends of usage in Haskelllibraries. Results suggest that trends are similar to those in the Javaecosystem and in line with Rogers' theory on the diffusion of innovation. Our results also provide indication on Haskell libraries being allby and large stable.","PeriodicalId":188232,"journal":{"name":"2017 IEEE/ACM 1st International Workshop on API Usage and Evolution (WAPI)","volume":"29 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125628966","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Human-Centered Methods for Improving API Usability","authors":"B. Myers","doi":"10.1109/WAPI.2017.2","DOIUrl":"https://doi.org/10.1109/WAPI.2017.2","url":null,"abstract":"Application programming interfaces (APIs) are the way that developers reuse functionality supplied in libraries, software development kits (SDKs), toolkits, frameworks, etc. By adapting a variety of user-centered methods from human-computer interaction (HCI), we have studied usability problems both for API users and for API designers. These studies revealed barriers both at a low level (such as using the factory pattern in an API) and at a high level (such as the lack of example code in the documentation). In lab studies, we have shown that some patterns can slow programmers down by a factor of 10, and in the field, we have seen problematic APIs block programmers for up to a week while they waited for an answer from the API designer. The implications of our results can guide the design of the API, and, when APIs cannot be changed, inspire novel documentation and tools to help use the APIs. Our collaboration with SAP resulted in significant improvements to their APIs, documentation and tools. This talk will summarize results presented in our recent paper on Improving API Usability, along with our newly proposed work on studying the needs of API designers. I will also cover a wide variety of HCI methods we have found to be effective for better understanding and meeting the needs of API users of all levels: novice, professional, and end-user programmers (EUPs). We have applied these methods across all activities of API development: requirements and problem analysis, design, development, testing, and deployment. Since programming is a human process, we have found that many of these HCI methods can be used without change to answer many useful questions, but for other questions, we have needed to create new human-centered methods.","PeriodicalId":188232,"journal":{"name":"2017 IEEE/ACM 1st International Workshop on API Usage and Evolution (WAPI)","volume":"56 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131164936","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"API Usage in Descriptions of Source Code Functionality","authors":"Paige Rodeghero, Collin McMillan, Abigail Shirey","doi":"10.1109/WAPI.2017.3","DOIUrl":"https://doi.org/10.1109/WAPI.2017.3","url":null,"abstract":"In this paper, we present a study exploring the use of API keywords within method summaries. We conducted a web-based study where we asked participants to rank Java method summaries based on five levels of detail, from low level to high level. We found that programmers widely use API in both high and low level summaries. Specifically, we found that 76.78% of higher level summaries contain Java API keywords. Additionally, we found that 93.75% of lower level summaries also contain them. This also shows that, in general, as the detail level decreases, the number of API keywords within the summary increases. It is our hope that this line of research will spark a discussion about API usage outside of source code. It is possible that method summaries are not the only form of documentation that API usage plays an important role. We believe these may be important results that could lead to an improvement for API usability design.","PeriodicalId":188232,"journal":{"name":"2017 IEEE/ACM 1st International Workshop on API Usage and Evolution (WAPI)","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127892779","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"On the Role of Fitness Dimensions in API Design Assessment - An Empirical Investigation","authors":"Amir Zghidi, I. Hammouda, Brahim Hnich, E. Knauss","doi":"10.1109/WAPI.2017.4","DOIUrl":"https://doi.org/10.1109/WAPI.2017.4","url":null,"abstract":"In this paper we present a case study of applying fitness dimensions in API design assessment. We argue that API assessment is company specific and should take into consideration various stakeholders in the API ecosystem. We identified new fitness dimensions and introduced the notion of design considerations for fitness dimensions such as priorities, tradeoffs, and technical versus cognitive classification.","PeriodicalId":188232,"journal":{"name":"2017 IEEE/ACM 1st International Workshop on API Usage and Evolution (WAPI)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130917395","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Type Checking for Reliable APIs","authors":"M. Kechagia, D. Spinellis","doi":"10.1109/WAPI.2017.5","DOIUrl":"https://doi.org/10.1109/WAPI.2017.5","url":null,"abstract":"In this paper, we propose to configure at compiletime the checking associated with Application ProgrammingInterfaces' methods that can receive possibly malformed values (e.g. erroneous user inputs and problematic retrieved recordsfrom databases) and thus cause application execution failures. To achieve this, we design a type system for implementing apluggable checker on the Java's compiler and find at compile timeinsufficient checking bugs that can lead to application crashesdue to malformed inputs. Our goal is to wrap methods whenthey receive external inputs so that the former generate checkedinstead of unchecked exceptions. We believe that our approachcan improve Java developers' productivity, by using exceptionhandling only when it is required, and ensure client applications'stability. We want to evaluate our checker by using it to verifythe source code of Java projects from the Apache ecosystem. Also, we want to analyze stack traces to validate the identifiedfailures by our checker.","PeriodicalId":188232,"journal":{"name":"2017 IEEE/ACM 1st International Workshop on API Usage and Evolution (WAPI)","volume":"285 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116105229","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Erik Wittern, Annie T. T. Ying, Yunhui Zheng, Jim Laredo, Julian T Dolby, Christopher C. Young, Aleksander Slominski
{"title":"Opportunities in Software Engineering Research for Web API Consumption","authors":"Erik Wittern, Annie T. T. Ying, Yunhui Zheng, Jim Laredo, Julian T Dolby, Christopher C. Young, Aleksander Slominski","doi":"10.1109/WAPI.2017.1","DOIUrl":"https://doi.org/10.1109/WAPI.2017.1","url":null,"abstract":"Nowadays, invoking third party code increasingly involves calling web services via their web APIs, as opposed to the more traditional scenario of downloading a library and invoking the library's API. However, there are also new challenges for developers calling these web APIs. In this paper, we highlight abroad set of these challenges and argue for resulting opportunities for software engineering research to support developers in consuming web APIs. We outline two specific research threads in this context: (1) web API specification curation, which enables us to know the signatures of web APIs, and (2) static analysis that is capable of extracting URLs, HTTP methods etc. of web API calls. Furthermore, we present new work on how we combine (1) and (2) to provide IDE support for application developers consuming web APIs. As web APIs are used broadly, research in supporting the consumption of web APIs offers exciting opportunities.","PeriodicalId":188232,"journal":{"name":"2017 IEEE/ACM 1st International Workshop on API Usage and Evolution (WAPI)","volume":"112 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115765226","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}