Key points are not available for this paper at this time.
Um sistema de software interage com bibliotecas de terceiros através de várias APIs. O uso dessas APIs de biblioteca geralmente exige seguir certos padrões de uso. Além disso, existem regras de ordenação (especificações) entre APIs, e essas regras governam a operação segura e robusta do sistema que utiliza essas APIs. No entanto, esses padrões e regras podem não estar bem documentados pelos desenvolvedores de API. Abordagens anteriores mineram regras de associação frequentes, conjuntos de itens ou subsequências que capturam padrões de chamadas de API compartilhados pelo código do cliente da API. No entanto, esses padrões frequentes de API não conseguem capturar completamente algumas ordenações úteis compartilhadas por APIs, especialmente quando múltiplas APIs estão envolvidas em diferentes procedimentos. Neste artigo, apresentamos uma estrutura para extrair automaticamente cenários de uso entre APIs especificadas pelo usuário como ordens parciais, diretamente do código fonte (código do cliente da API). Adaptamos um verificador de modelo para gerar rastros estáticos sensíveis ao fluxo de controle interprocedural relacionados às APIs de interesse. Diferentes cenários de uso de API são extraídos dos rastros estáticos pelo nosso algoritmo de extração de cenários e alimentados a um minerador. O minerador resume diferentes cenários de uso como ordens parciais compactas. Especificações são extraídas das ordens parciais frequentes usando nosso algoritmo de extração de especificações. Nossa experiência na aplicação da estrutura em 72 clientes X11 com 200K LOC no total mostrou que as ordens parciais de API extraídas são úteis para auxiliar na reutilização eficaz de APIs e verificação.
Acharya et al. (Sex,) estudaram esta questão.