USING SYNTACTIC AND SEMANTIC SIMILARITY OF WEB APIS TO ESTIMATE PORTING EFFORT
Services Transactions on Services Computing
Service Oriented Architecture (SOA) has altered the way programmers develop applications. Instead of using standalone libraries, programmers today often incorporate curated web services, accessed via well--defined interfaces (APIs), as modules in their applications. Web APIs, however, evolve rapidly, making it critical for developers to be able to compare APIs for similarity and estimate the workload associated with "porting" applications to use different or new APIs (or API versions).
... tely, today there is no simple automated mechanism for analyzing the similarity between web APIs and reasoning about the porting effort that will be necessary when the web APIs that an application uses change. To address this limitation, we describe an automated methodology for analyzing API similarity and quantifying the porting effort associated with the use of web APIs. Our approach defines a simple type system and a language with which API developers specify the syntactic and semantic features of APIs. We also define algorithms that transform the syntactic and semantic features of APIs into similarity and porting effort information. We evaluate our approach using both randomly generated and real--world APIs and show that our metric captures the relative difficulty that developers associate with porting an application from one API to another. Data: Source API S with operation set OP S and Target API T with operation set OP T Result: A Boolean value and a set of matching operation pairs