3 research outputs found

    API Recommendation Using Domain And Source Code Knowledge

    Get PDF
    The process of migration the old retired API(Application Programming Interface) with new and most to up to date one, know as API migration. Developers need to fully understand the documentation for the retired (replaced) library and the new (replacing) library to do the appropriate migration. This manual process is complex, error-prone, and costly for companies. There have been many studies focused on the automation recommendation between different method mapping for different libraries. These studies focused on the recommendations between methods from different programming languages while non of them focused on the recommendations between methods of libraries that belong to the same programming language. At times, one of the studies indicates automatic recommendation when mapping two different methods libraries that belong to the same programming language by using domain knowledge(method description, method parameters|name). In this thesis, we investigated the mapping between two methods of library migrations by using the domain knowledge and source code documentation. In order to be able to obtain these scenarios, we propose the RAPIM++ machine learning approach which recommends a correct mapping between source and target methods of three-party libraries using domain knowledge and source code knowledge. Our main contribution in this studywas, build a model which depends on existing library changes done manually from previous developers in different open source projects in java programming language then use features related to source code implementation, the similarity between method signatures and methods documentation to predict correct method mapping between two methods level library migration. Our result was RAPIM++ was able to successfully mapping between two methods from different third-party libraries with a rate of accuracy score of 84.4%. Additionally, our approach could able to recommend the libraries that absent the documentations since it relies on the source code knowledge along with the main knowledge. We can conclude from these results that RAPIM++ able to recommend third-party libraries with or without documentation, so though libraries that are not well known and do not belong to popular frameworks, can find comprehensive recommendations when using our model. Furthermore, RAPIM++ provides the research and industry community with a lightweight web service that available publicly to make method mapping between third - part libraries an easy task for developers

    Software Engineering in the Age of App Stores: Feature-Based Analyses to Guide Mobile Software Engineers

    Get PDF
    Mobile app stores are becoming the dominating distribution platform of mobile applications. Due to their rapid growth, their impact on software engineering practices is not yet well understood. There has been no comprehensive study that explores the mobile app store ecosystem's effect on software engineering practices. Therefore, this thesis, as its first contribution, empirically studies the app store as a phenomenon from the developers' perspective to investigate the extent to which app stores affect software engineering tasks. The study highlights the importance of a mobile application's features as a deliverable unit from developers to users. The study uncovers the involvement of app stores in eliciting requirements, perfective maintenance and domain analysis in the form of discoverable features written in text form in descriptions and user reviews. Developers discover possible features to include by searching the app store. Developers, through interviews, revealed the cost of such tasks given a highly prolific user base, which major app stores exhibit. Therefore, the thesis, in its second contribution, uses techniques to extract features from unstructured natural language artefacts. This is motivated by the indication that developers monitor similar applications, in terms of provided features, to understand user expectations in a certain application domain. This thesis then devises a semantic-aware technique of mobile application representation using textual functionality descriptions. This representation is then shown to successfully cluster mobile applications to uncover a finer-grained and functionality-based grouping of mobile apps. The thesis, furthermore, provides a comparison of baseline techniques of feature extraction from textual artefacts based on three main criteria: silhouette width measure, human judgement and execution time. Finally, this thesis, in its final contribution shows that features do indeed migrate in the app store beyond category boundaries and discovers a set of migratory characteristics and their relationship to price, rating and popularity in the app stores studied
    corecore