This project is an investigation on the usage of String literals in Java code. We want to understand what information do developers encode in their Strings. For example, Strings are used sometimes to encode types, errors, methods, etc. This is unavoidable in some frameworks (Spring), but it can be done better in other situations (errors in exceptions). Also Strings are used for logging and user output. We want to understand what information developers put in their Strings.
The project can be divided into two steps: First, you have to develop a tool that takes a Java project, parses it, and then extracts all String literals and their contexts and stores them in a navigable form. Second, you have to manually analyze several projects and extract how Strings are used/misused in the code and build some sort of taxonomy of String usage.
Contact: Haidar Osman