{"title":"NavyDroid: Detecting Energy Inefficiency Problems for Smartphone Applications","authors":"Yi Liu, Jue Wang, Chang Xu, Xiaoxing Ma","doi":"10.1145/3131704.3131705","DOIUrl":"https://doi.org/10.1145/3131704.3131705","url":null,"abstract":"Many smartphone applications suffer from energy inefficiency problems, but locating these problems is quite difficult and labor-intensive. Automated tools for detecting energy inefficiency bugs have been shown to be effective. Existing approaches generally consist of two parts, namely the simulation part and the monitor part. The simulation part explores an application's state space guided by an application execution model, and the monitor part checks for occurrences of energy inefficiency patterns. However, existing approaches might miss energy inefficiency bugs due to their imprecise application execution models and oversimplified energy inefficiency diagnosis policies. In this paper, we proposed NavyDroid, an approach to diagnosing energy inefficiency problems more effectively. We summarized a comprehensive application execution model from Android specifications and expressed it as a state machine. By considering multiple patterns of wake lock misuses, our approach is able to detect more complex energy bugs caused by wake lock misuses. We implemented NavyDroidon top of Java Pathfinder (JPF) and applied it to real-world applications. We evaluated NavyDroid with 17 real-world Android applications, and NavyDroid located more energy inefficiency bugs in these applications than the existing work E-GreenDroid did. The results of our experiments demonstrate that our approach can effectively locate real energy inefficiency bugs in Android applications, suggesting its effectiveness.","PeriodicalId":349438,"journal":{"name":"Proceedings of the 9th Asia-Pacific Symposium on Internetware","volume":"23 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123434176","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}
Zhixing Li, Gang Yin, Yue Yu, Tao Wang, Huaimin Wang
{"title":"Detecting Duplicate Pull-requests in GitHub","authors":"Zhixing Li, Gang Yin, Yue Yu, Tao Wang, Huaimin Wang","doi":"10.1145/3131704.3131725","DOIUrl":"https://doi.org/10.1145/3131704.3131725","url":null,"abstract":"The widespread use of pull-requests boosts the development and evolution for many open source software projects. However, due to the parallel and uncoordinated nature of development process in GitHub, duplicate pull-requests may be submitted by different contributors to solve the same problem. Duplicate pull-requests increase the maintenance cost of GitHub, result in the waste of time spent on the redundant effort of code review, and even frustrate developers' willing to offer continuous contribution. In this paper, we investigate using text information to automatically detect duplicate pull-requests in GitHub. For a new-arriving pull-request, we compare the textual similarity between it and other existing pull-requests, and then return a candidate list of the most similar ones. We evaluate our approach on three popular projects hosted in GitHub, namely Rails, Elasticsearch and Angular.JS. The evaluation shows that about 55.3% -- 71.0% of the duplicates can be found when we use the combination of title similarity and description similarity.","PeriodicalId":349438,"journal":{"name":"Proceedings of the 9th Asia-Pacific Symposium on Internetware","volume":"113 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125541383","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}
Huaqian Cai, Xin Zhou, S. Lou, Ying Zhang, Gang Huang
{"title":"LogPruner: A Tool for Pruning Logging Call in Android Apps","authors":"Huaqian Cai, Xin Zhou, S. Lou, Ying Zhang, Gang Huang","doi":"10.1145/3131704.3131711","DOIUrl":"https://doi.org/10.1145/3131704.3131711","url":null,"abstract":"The prevalence of mobile platforms, especially the large market share of Android, has promoted the popularity of mobile applications (a.k.a. apps). In developing the apps, logging acts as a crucial tool to help developers debug their app before publishing. In this paper, we present an empirical study on how logging is used in current popular Android apps and reveal the security risks of deactivating the log call instead of removing the call and its associated instructions. To this end, we propose a static analysis scheme to remove the logging call as well as those associated instructions that construct the parameters for the call. We then implement the scheme as a tool called LogPruner and evaluate it with a set of 10 top apps collected from Google Play and Wandoujia. The results show that LogPruner can outperform the naive logging removal approach by 11.8% to 512.5% on pruned instructions in the collected apps.","PeriodicalId":349438,"journal":{"name":"Proceedings of the 9th Asia-Pacific Symposium on Internetware","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116851851","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}
Zhen Tang, Wei Wang, Yu Huang, Heng Wu, Jun Wei, Tao Huang
{"title":"Application-centric SSD Cache Allocation for Hadoop Applications","authors":"Zhen Tang, Wei Wang, Yu Huang, Heng Wu, Jun Wei, Tao Huang","doi":"10.1145/3131704.3131708","DOIUrl":"https://doi.org/10.1145/3131704.3131708","url":null,"abstract":"Flash-based Solid State Drive (SSD) is widely used in the virtualization environment, usually as the cache of the hard disk drive-based Virtual Machine (VM) storage, to improve the IO performance. Existing SSD caching schemes are mainly driven by VM-centric metrics. They treat the VMs as independent units and focus on critical low-level performance metrics of individual VMs, such as the working set, the IO latency, or the throughput. However, for elastic Hadoop applications consisting of multiple VMs, the workload is rapidly changing, and the importance of differnet VMs may be different even if they have the same low-level IO pattern. In this situation, the VM-centric SSD caching schemes may not lead to the best performance, i.e., the shortest job completion time. Considering the importance of VMs and relationships among VMs inside the application may potentially better improve the performance, which we regard as the application-centric metrics. We propose the Application-Centric SSD caching for Hadoop applications (ACSSD), which reduces the job completion time from the application level. AC-SSD uses the genetic algorithm based approach to calculate the nearly optimal weights of virtual machines for allocating SSD cache space and controlling the I/O Operations Per Second (IOPS) based on the importance of the VMs. Moreover, AC-SSD introduces the closed-loop adaptation to face the rapidly changing workload. The evaluation shows that AC-SSD reduces the job completion time by up to 39% for IO sensitive workloads, and up to 29% for rapidly changing workloads.","PeriodicalId":349438,"journal":{"name":"Proceedings of the 9th Asia-Pacific Symposium on Internetware","volume":"207 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133298484","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}
Cheng Yang, Xunhui Zhang, Lingbin Zeng, Qiang Fan, Gang Yin, Huaimin Wang
{"title":"An Empirical Study of Reviewer Recommendation in Pull-based Development Model","authors":"Cheng Yang, Xunhui Zhang, Lingbin Zeng, Qiang Fan, Gang Yin, Huaimin Wang","doi":"10.1145/3131704.3131718","DOIUrl":"https://doi.org/10.1145/3131704.3131718","url":null,"abstract":"Code review is an important process to reduce code defects and improve software quality. However, in social coding communities using the pull-based model, everyone can submit code changes, which increases the required code review efforts. Therefore, there is a great need of knowing the process of code review and analyzing the pre-existing reviewer recommendation algorithms. In this paper, we do an empirical study about the PRs and their reviewers in Rails project. Moreover, we reproduce a popular and effective IR-based code reviewer recommendation algorithm and validate it on our dataset which contains 16,049 PRs. We find that the inactive reviewers are very important to code reviewing process, however, the pre-existing method's recommendation result strongly depends on the activeness of reviewers.","PeriodicalId":349438,"journal":{"name":"Proceedings of the 9th Asia-Pacific Symposium on Internetware","volume":"75 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130234191","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":"Un-preprocessing: Extended CPP that works with your tools","authors":"Yufeng Cheng, Meng Wang, Yingfei Xiong, Zhengkai Wu, Yiming Wu, Lu Zhang","doi":"10.1145/3131704.3131715","DOIUrl":"https://doi.org/10.1145/3131704.3131715","url":null,"abstract":"Many tools directly change programs, such as bug-fixing tools, program migration tools, etc. We call them program-modification tools. On the other hand, many programming languages use the C preprocessor, such as C, C++, and Objective-C. Because of the complexity of preprocessors, many program-modification tools either fail to produce sound results under the presence of preprocessor directives, or give up completely and deal only with preprocessed code. In this paper we propose a lightweight approach that enables program-modification tools to work with the C preprocessor for free. The idea is that program-modification tools now simply target the preprocessed code, and our system, acting as a bidirectional C preprocessor, automatically propagates the changes on the preprocessed code back to the un-preprocessed code. The resulting source code is guaranteed to be correct and is kept similar to the original source as much as possible. We have evaluated our approach on Linux kernel with a set of generated changes. The evaluation results show the feasibility and effectiveness of our approach.","PeriodicalId":349438,"journal":{"name":"Proceedings of the 9th Asia-Pacific Symposium on Internetware","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129586163","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":"Document Distance Estimation via Code Graph Embedding","authors":"Zeqi Lin, Junfeng Zhao, Yanzhen Zou, Bing Xie","doi":"10.1145/3131704.3131713","DOIUrl":"https://doi.org/10.1145/3131704.3131713","url":null,"abstract":"Accurately representing the distance between two documents (i.e. pieces of textual information extracted from various software artifacts) has far-reaching applications in many automated software engineering approaches, such as concept location, bug location and traceability link recovery. This is a challenging task, since documents containing different words may have similar semantic meanings. In this paper, we propose a novel document distance estimation approach. This approach captures latent semantic associations between documents through analyzing structural information in software source code: first, we embed code elements as points in a shared representation space according to structural dependencies between them; then, we represent documents as weighted point clouds of code elements in the representation space and reduce the distance between two documents to an earth mover's distance transportation problem. We define a document classification task in StackOverflow dataset to evaluate the effectiveness of our approach. The empirical evaluation results show that our approach outperforms several state-of-the-art approaches.","PeriodicalId":349438,"journal":{"name":"Proceedings of the 9th Asia-Pacific Symposium on Internetware","volume":"56 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122296832","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}
Yingkui Cao, Yanzhen Zou, Y. Luo, Bing Xie, Junfeng Zhao
{"title":"Refining Traceability Links between Code and Software Documents","authors":"Yingkui Cao, Yanzhen Zou, Y. Luo, Bing Xie, Junfeng Zhao","doi":"10.1145/3131704.3131716","DOIUrl":"https://doi.org/10.1145/3131704.3131716","url":null,"abstract":"Recovering traceability links between source code and software document can be very helpful for Software Maintenance and Software Reuse. Existing work has already achieved good results in extracting code elements (classes, methods, etc.) from software documents. However, it will lead to a lot of noise links if we link a document to all the code elements existing in it. In this paper, we propose an approach to identify the contextual code elements and the salient code elements in a software document, then we can weight the traceability links between source code and software document so that those noise traceability links can be filtered effectively. We measure the saliency of each code element in a document with four kinds of document-related features and three kinds of code-related features, and we adopt TransR-based code embedding technology to evaluate the distance between code elements. In the experiments, we get a precision of 70.7% in recognizing salient code elements of StackOverflow answer documents, which is more than 12% improvement compared with Rigby's work. At the same time, we can filter about 56.5%~69.3% noise traceability links compared with the RecoDoc approach. It will improve the quality of traceability links between source code and related software documents.","PeriodicalId":349438,"journal":{"name":"Proceedings of the 9th Asia-Pacific Symposium on Internetware","volume":"74 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127363677","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":"Understanding the Variation of Software Development Tasks: a Qualitative Study","authors":"Xin Tan, Hanmin Qin, Minghui Zhou","doi":"10.1145/3131704.3131719","DOIUrl":"https://doi.org/10.1145/3131704.3131719","url":null,"abstract":"In order to reduce cost, get to market faster and utilize global talents, large companies often organize their software development globally (distributed over Internet), a paradigm advocated by Internetware. Considering the complexity of distributed software development, it is important to understand the variation of various tasks, so the projects could work more efficiently on plan formulation, personnel organization, or task allocation. The main goal of this paper is to understand the variations of software development tasks. We conduct an interview with 47 interviewees and a survey with 148 people from 15 projects with different size and domain.Through the analysis of interviews and surveys, we find that a software task could be characterized through three aspects: value, difficulty and centrality. Among them, task value is influenced by the role of stakeholders and project context, and is related to the task difficulty and task centrality. Task difficulty is reflected by technology, domain difference, working relationships, customer related issues, and it is also related to the developers' personalities. Task centrality can be described by customer impact, system-wide impact, team impact and future impact. We believe our results can help project managers to optimize task allocation, or adjust project plan, and thus achieve efficient development.","PeriodicalId":349438,"journal":{"name":"Proceedings of the 9th Asia-Pacific Symposium on Internetware","volume":"6 2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126072025","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":"Towards Release Strategy Optimization for Apps in Google Play","authors":"Sheng Shen, Xuan Lu, Ziniu Hu","doi":"10.1145/3131704.3131710","DOIUrl":"https://doi.org/10.1145/3131704.3131710","url":null,"abstract":"In the appstore-centric ecosystem, app developers have an urgent requirement to optimize their release strategy to maximize user adoption of their apps. To address this problem, we introduce an approach to assisting developers to select the proper release opportunity based on the purpose of the update and current condition of the app. Before that, we propose the update interval to characterize release patterns of apps, and find significance of the updates through empirical analysis. We mined the release-history data of 17,820 apps from 33 categories in Google Play, over a period of 105 days. With 41,028 releases identified from these apps, we reveal important characteristics of update intervals and how these factors can influence update effects. We suggest developers to synthetically consider app ranking, rating trend, and update purpose in addition to the timing of releasing an app version. We propose a Multinomial Naive Bayes model to help decide an optimal release opportunity to gain better user adoption.","PeriodicalId":349438,"journal":{"name":"Proceedings of the 9th Asia-Pacific Symposium on Internetware","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-07-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127483598","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}