Skip to content
Chandan R. Rupakheti edited this page Jul 22, 2014 · 2 revisions

Welcome to the home page of the CriticAL (A Critic for APIs and Libraries) project. The objective of this project is to provide a program analysis framework for critiquing API client code in three ways:

  1. Provide explanation for complex interactions of API elements,
  • Provide recommendation for future use of the API,
  • Provide criticism for improper use of the API.

To support an API with CriticAL, we need to build a knowledge base of API use rules for the API. The analysis framework associates API use rules to the relevant documentation. More specifically, our analysis is path-and-state-sensitive. The API client code is symbolically executed and the program states are checked against these specified API rules. Users will be presented with the documentation whenever the conditions in the rules are satisfied.

We hypothesize that over time, this process will iteratively guide programmers to evolve a better solution from API. Our initial formative study with a dozen students using the first prototype in a GUI design course indicates that the approach is useful and promising.

A short paper that summarizes our initial progress can be found here.

Team:

  1. Daqing Hou, Chief Scientist, Associate Professor, Clarkson University
  • Chandan Raj Rupakheti, Scientist and Architect, Assistant Professor, Rose-Hulman Institute of Technology
  • Russell Seidel, Quality Assurance/Technical Writer, Honor Student, Clarkson University
Clone this wiki locally