PP tool


Programmer Profiling through Code Analysis

Abstract


Each programmer has his own way of programming but some criteria can be applied when analysing code: there are a set of best practices that can be checked, or ”not so common” instructions that are mainly used by experts that can be found. Considering that all programs that are going to be compared are correct, it’s possible to infer the experience level of the programmer or the proficiency level of the solution.

The approach presented in this paper has as main goal to compare sets of solutions to the same problem and infer the programmers profile. This can be used to evaluate the programmer skills, the proficiency on a given language or evaluate programming students. A tool to automatically profile Java programmers called PP (Programmer Profiler) was developed as a proof of concept.

Architecture


The programmer’s Java source code is loaded as PP input. Then, the code goes through two static analysis processes: the analyser implemented (PP-Analyser) using AnTLR with the goal of extracting a set of metrics and the PMD-Analyser, an analyser that resorts to the PMD Tool to find a set of predefined metrics regarding poor coding practices.

Both analysis’ outcomes feed two other modules: A Metrics Visualizer (a generator of HTML pages 5) which will allow us to make a manual assessment of the source code to infer the programmer’s profile; and a Profile Inference Engine whose goal is to make the profile assignment an automatic process.

Articles


Program analysis for Clustering Programmers’ Profile

FedCSIS, Vol. 11
  • Daniel Ferreira Novais
  • Maria João Varanda Pereira
  • Pedro Rangel Henriques
Profile Detection Through Source Code Static Analysis
SLATE'16
  • Daniel Ferreira Novais
  • Maria João Varanda Pereira
  • Pedro Rangel Henriques

Project Name


Lorem ipsum dolor sit amet, consectetur adipisicing elit. Mollitia neque assumenda ipsam nihil, molestias magnam, recusandae quos quis inventore quisquam velit asperiores, vitae? Reprehenderit soluta, eos quod consequuntur itaque. Nam.

Close Project

Project Name


Lorem ipsum dolor sit amet, consectetur adipisicing elit. Mollitia neque assumenda ipsam nihil, molestias magnam, recusandae quos quis inventore quisquam velit asperiores, vitae? Reprehenderit soluta, eos quod consequuntur itaque. Nam.

Close Project

Project Name


Lorem ipsum dolor sit amet, consectetur adipisicing elit. Mollitia neque assumenda ipsam nihil, molestias magnam, recusandae quos quis inventore quisquam velit asperiores, vitae? Reprehenderit soluta, eos quod consequuntur itaque. Nam.

Close Project

Project Name


Lorem ipsum dolor sit amet, consectetur adipisicing elit. Mollitia neque assumenda ipsam nihil, molestias magnam, recusandae quos quis inventore quisquam velit asperiores, vitae? Reprehenderit soluta, eos quod consequuntur itaque. Nam.

Close Project

Project Name


Lorem ipsum dolor sit amet, consectetur adipisicing elit. Mollitia neque assumenda ipsam nihil, molestias magnam, recusandae quos quis inventore quisquam velit asperiores, vitae? Reprehenderit soluta, eos quod consequuntur itaque. Nam.

Close Project

Project Name


Lorem ipsum dolor sit amet, consectetur adipisicing elit. Mollitia neque assumenda ipsam nihil, molestias magnam, recusandae quos quis inventore quisquam velit asperiores, vitae? Reprehenderit soluta, eos quod consequuntur itaque. Nam.

Close Project