Towards Programmer Knowledge Profile Generation

The following article deals with static analysis of source code in Java and it is intended for readers interested in techniques focused on evaluation of programming abilities of students or potential job candidates. The main objective of the static analysis is to collect the most relevant and significant data about programmers. If such data is properly visualized, it can result in knowledge profile which further determines programmer’s real programming abilities as well as his habits. This can be useful mainly for impartial observer who does not know the code author. In the following article we present our first attempts to create and visualize knowledge profiles through static analysis and statistics regarding frequency of language elements. In perspective, the conclusion combines advanced techniques towards creation of more precise profiles as the future work.

[1]  Andrian Marcus,et al.  Static techniques for concept location in object-oriented code , 2005, 13th International Workshop on Program Comprehension (IWPC'05).

[2]  Michaela Bacíková,et al.  Declarative specification of references in DSLs , 2013, 2013 Federated Conference on Computer Science and Information Systems.

[3]  Ján Kollár,et al.  Combined Approach to Program and Language Evolution , 2012 .

[4]  Björn Franke,et al.  Code transformation and instruction set extension , 2009, TECS.

[5]  Jonathan I. Maletic,et al.  Journal of Software Maintenance and Evolution: Research and Practice Survey a Survey and Taxonomy of Approaches for Mining Software Repositories in the Context of Software Evolution , 2022 .

[6]  Stefan Koch,et al.  Effort, co‐operation and co‐ordination in an open source software project: GNOME , 2002, Inf. Syst. J..

[7]  Terence Parr,et al.  LL(*): the foundation of the ANTLR parser generator , 2011, PLDI '11.

[8]  Michaela Bacíková,et al.  Pragmatic model-driven software development from the viewpoint of a programmer: Teaching experience , 2014, 2014 Federated Conference on Computer Science and Information Systems.

[9]  Supratik Mukhopadhyay,et al.  Model-Based Static Source Code Analysis of Java Programs with Applications to Android Security , 2012, 2012 IEEE 36th Annual Computer Software and Applications Conference.

[10]  A.E. Hassan,et al.  The road ahead for Mining Software Repositories , 2008, 2008 Frontiers of Software Maintenance.

[11]  Arutyun Avetisyan,et al.  Static analyzer Svace for finding defects in a source program code , 2014, Programming and Computer Software.

[12]  John W. Tukey,et al.  Exploratory Data Analysis. , 1979 .

[13]  Denys Poshyvanyk,et al.  Concept location using formal concept analysis and information retrieval , 2012, TSEM.

[14]  Sarah Smith Heckman,et al.  A systematic literature review of actionable alert identification techniques for automated static code analysis , 2011, Inf. Softw. Technol..

[15]  Ralf Huuck,et al.  Technology transfer: Formal analysis, engineering, and business value , 2015, Sci. Comput. Program..

[16]  Lin Tan,et al.  Finding patterns in static analysis alerts: improving actionable alert ranking , 2014, MSR 2014.

[17]  Nikil D. Dutt,et al.  Code Transformations for Data Transfer and Storage Exploration Preprocessing in Multimedia Processors , 2001, IEEE Des. Test Comput..

[18]  Ulf Nilsson,et al.  A Comparative Study of Industrial Static Analysis Tools , 2008, SSV.

[19]  Rainer Koschke,et al.  Locating Features in Source Code , 2003, IEEE Trans. Software Eng..

[20]  Jaroslav Porubän,et al.  XML to annotations mapping definition with patterns , 2014, Comput. Sci. Inf. Syst..

[21]  Ján Kollár,et al.  Identification of patterns through Haskell programs analysis , 2011, 2011 Federated Conference on Computer Science and Information Systems (FedCSIS).

[22]  John W. Tukey,et al.  Exploratory data analysis , 1977, Addison-Wesley series in behavioral science : quantitative methods.

[23]  Alfred Strohmeier Reliable Software Technologies — Ada-Europe '96 , 1996, Lecture Notes in Computer Science.

[24]  K. K. Chaturvedi,et al.  Tools in Mining Software Repositories , 2013, 2013 13th International Conference on Computational Science and Its Applications.

[25]  Hausi A. Müller,et al.  Rigi - An environment for software reverse engineering, exploration, visualization, and redocumentation , 2010, Sci. Comput. Program..

[26]  M. Binas,et al.  Useful recommendations for successful implementation of programming courses , 2014, 2014 IEEE 12th IEEE International Conference on Emerging eLearning Technologies and Applications (ICETA).

[27]  Michael Wood Computer systems security , 1982 .

[28]  William M. K. Trochim,et al.  Research methods knowledge base , 2001 .

[29]  Andrew M. Sutton,et al.  Identification of Idiom Usage in C++ Generic Libraries , 2010, 2010 IEEE 18th International Conference on Program Comprehension.