Code Review, Testing, Bug Reports
Due Thursday, November 5 Tuesday, Nov. 24
The purpose of this exercise is to have you conduct careful
review and testing of the source code in HcryptoJ and in your project.
Part I: HcryptoJ
- For HcryptoJ, select one cipher engine and associated historical
key from the hcrypto.engines package--for example, CaesarEngine.java
and CaesarKey.java--or one of the following analyzers from the hcrypto.analyzer
package: AffineAnalyzer, CaesarAnalyzer, VigenereAnalyzer, or WordBasedAnalyzer.
- Read the source code documentation carefully with the goal of
understanding how the cipher and its associated key (or analyzer) work
and how they relate to their superclasses, CipherEngine.java and
HistoricalKey.java in the case of ciphers, Analyzer in the case of analyzers.
- Test the cipher you selected by running it with one of the example programs
provided in the examples package (TestCipher or FileCipher).
- Identify any bugs you encounter and report them on the the Sourceforge bug tracker.
- Identify any features you think should be improved or added and report them on
the bug tracker.
- Identify and fix any documentation errors or deficiencies in the 2 source files
you have selected. Submit any changes as patches.
Part II
Perform the same tasks as in Part I for your software project (POSIT, Collabbit, or MouseTrap).
Coding
Although there is no coding required for this assignment, you may start producing code for your
project as the soon as the spirit moves you. All code contributions should be contributed as
patches that can be reviewed by the project's core team.
Handin
Post your contributions on Sourceforge (for HcryptoJ) or on your project's SVN repository.
Grading rubric: You'll be graded on how detailed and
thorough your review is, on the quality of the patches you contribute,
and how helpful your suggestions for improvement are.