Font Size: a A A

Software Framework API Evolution Rules Mining And Tool Implementation

Posted on:2017-05-10Degree:MasterType:Thesis
Country:ChinaCandidate:F YangFull Text:PDF
GTID:2308330485461037Subject:Computer technology
Abstract/Summary:PDF Full Text Request
Software frameworks are widely used in modern software development. They specify sets of functionalities through Application Programming Interfaces (APIs) that client programs can invoke to accomplish specific tasks. Frameworks keep evolving during their lifespan for various reasons, which may lead to API changes. Client pro-grams using those changed APIs must be modified to adapt to the new APIs. But mi-grating clients to the new release of frameworks is a kind of tedious and time-consuming work. Many researchers have proposed a variety of techniques to identify APIs replace-ment rules between the old and new releases of framework. Call dependency analysis is one of the most widely-used techniques in this area. However, existing approaches based on call dependency analysis take whole method body as analysis unit. The con-text in which a method is called is ignored. To overcome this limitation, this thesis proposed AUC-Miner algorithm, which is based on fine-grained call dependency anal-ysis and association rules mining, to generate APIs replacement rules. The main work is summarized as follows:1. This paper introduced the motivation of mining API replacement rules between two releases of framework; and summarized related works published in recent years in this domain. We classified existing work into two groups, i.e operation-based approaches and matching-based approaches, and analyzed the characteristics and shortcomings of these approaches.2. To overcome the limitations of previous approaches, this paper proposed AUC-Miner algorithm, which is based on fine-grained call dependency analysis and as-sociation rules mining, to generate APIs replacement rules.Compared with the ex-isting work, AUC-Miner takes method invocation context into consideration when performing call dependency analysis. Moreover. AUC-Miner algorithm uses method comments and signature similarity to generate replacement rules for root methods.3. We conducted experiments on three popular open source frameworks (jEdit, Struts and Android SDK) to verify the validity of AUC-Miner. The experimental results showed that AUC-Miner got higher accuracy than AURA in most cases.4. Two tools named AUC-Miner and AUC-Rec are developed to facilitate program evolution. AUC-Miner tool generates API replacement rules between the old and new releases of framework by implementing our proposed algorithm; AUC-Rec tool analyzes source code of client program and recommends replacement for out-dated API invocation. It also presents API usage change examples for developers.
Keywords/Search Tags:Software Framework Evolution, API Usage Change, Call Dependency, Association Rule Mining
PDF Full Text Request
Related items