A software engineering code obfuscation project

Charles Ashbacher · Journal of computing sciences in colleges · 2004

In the Spring term of 2003, I taught the upper level computer science major class CS 400 Software Engineering at Mount Mercy College for the first time. Rather than present a series of formulas of software creation metrics and diagrams of software development strategies, I decided to have the students build a significant and useful project. My choice was to have them build a code obfuscation program in the language Java. This choice of language was due to the many methods available to perform String processing, which is essentially what the project was. This paper is a report on that project as well as an announcement of the open source availability of the code.Our first step was to write a series of coding specifications for the project, and cover enough of the Unified Modeling Language (UML) so that we had a common set of conditions and a common language used to represent the design. The class was split into two groups of five and the project went through four iterations. For each iteration, there were two separate parts and at the start, each group was given a description of the requirements for one part of the iteration. The group then wrote the specifications for that part and then each handed the other their specifications, so each group wrote code conforming to the other group's written specifications. At the end, each group was required to submit complete formal documentation for all their code and the groups submitted a working copy of the code obfuscator containing the code integrated from both teams. Over 100 pages of documentation were submitted and the final program is estimates to be over 10,000 lines of code, which includes internal documentation.

Read the paper · More papers on PaperTik