Automating and Validating Semantic Annotations

Mark Grechanik, Kathryn S. McKinley, Dewayne E. Perry · 2006

Use-case diagrams (UCDs) are widely used to describe requirements and desired functionality of software products. However, UCDs are loosely linked to the source code, and there are no approaches to maintain the correspondence between program variable and types (or program entities) and elements of UCDs. We offer a novel approach for automating a part of the process of annotating program entities with names of elements from UCDs. Developers first annotate an initial set of a few program entities. Our LEarning ANnnotations (Lean) system combines these annotations with run-time monitoring, program analysis, and machinelearning approaches to discover and validate annotations on unannotated entities in Java programs. We evaluate our prototype implementation on open-source software projects and our results suggest that Lean can generalize from a small set of annotated entities to annotate many other entities.

Read the paper · More papers on PaperTik