Keystroke Biometric: Refactor System and Conduct Experiments

Keystroke Biometric Background: read & understand this section


Code modification

Code Objective 1

The Keystroke Biometric System has evolved and has been enhanced for the past six years to incorporate features and functions. In order to improve the system so that it can handle larger subject and sample sizes, refactoring of the Java code with a focus on the classification component is required. This will require at least the following steps:

Code Objective 2

Fix the feature extractor code resolving the discrepancy discovered last semester in the number of features.

Code Objective 3

Additional code modification tasks include converting several Python scripts into Java so that we have a common code base. These scripts are used to process classifier output files to derive Receiver Operating Characteristic (ROC) curves that graphically illustrate system performance.

Code Objective 4

Modify the data collection, feature extractor, and associated components so that they support strong-enrollment experiments.

Code Objective 5

Result sets from operations of the Keystroke Biometric System are stored in flat text files. It is important to modify the application so that it efficiently uses database technology instead of flat files for the collection and storage of data. This helps with the scalability problem and other analysis objectives.


We recently focused on authentication experiments that used 'weak enrollment' data, where only non-test-subject data were used to train the system. Strong enrollment uses test-subject data (and possibly additional non-test-subject data) to train the system, and then uses independent (different) test-subject data to test the system.

Experimental Objective 1

Run "weak-enrollment" experiments using a new data set collected this semester and analyze classifier accuracy by comparing results to the longitudinal data from the last semester.

Experimental Objective 2

Conduct "strong-enrollment" experiments to analyze classifier accuracy and compare results to the "weak-enrollment" experiments in Objective 1 and from data from the last semester.

Fast Agile XP Deliverables

We will use the agile methodology, particularly Extreme Programming (XP) which involves small releases and fast turnarounds in roughly two-week iterations. Many of these deliverables can be done in parallel by different members or subsets of the team. The following is the current list of deliverables (ordered by the date initiated, deliverable modifications marked in red, deliverable date marked in bold red if programming involved, completion date and related comments marked in green, pseudo-code marked in blue):

Deliverables Common to all Keystroke Projects

Deliverables specific to this project:
  1. 10/5 10/15 - Good Job! Clean up the BAS (new version) code:
  2. 10/5 10/22 - Good Job! Create a stand alone Java application to replace the Eclipse IDE BAS (newer version), and test it on Common Deliverables 2 & 3.
  3. 11/11 Modify the standalone BAS program to give it the capability to run large data sets.
  4. 11/11 Feature Extractor Deliverable. Refactor the biofeature source code. This application is currently launched by selecting the code in the biofeature package. Remove errors and warnings like with the BAS package. The code should be optimized, including enhancements to the file chooser and status reporting functionality similar to BAS. When the code is error/warning free, create a standalone application for the feature extractor. The default Fallback Method should also be changed to "Linguistic" from "TouchType" as part of this deliverable.
  5. 11/11 Python Code Deliverable.