Students: Please add a product you found interesting from the SDExpo (or web-based research) here. Include product name, a link, and 2 paragraphs that describe it and its value.

  • Allatori Obfuscator is a development tool designed to keep your binaries as undecipherable as possible. All code can be disassembled an reverse engineered to a point, but Allatori makes the jobs of the reverse engineer much more difficult. It modifies class names, function flow, debug information, and much more to make it very difficult to determine what is going on just by reviewing the bytecode. It also encrypts (more like scrambles) literal strings within your binaries, making them unreadable to the average reverse engineer.
It also features code optimization tools. Allatori reduces the size of the executable through a number of techniques, and it improves performance of the code itself when possible. It also has watermarking and debugging features built in. Watermarks can help identify the owner(s) or user(s) of a specific application. The debugging features help coders debug obfuscated programs using log information generated during the obfuscation process.
  • PC-lint for C/C++ is “the longest continuously advertised software tool in human history” and was first introduced in 1985. It “will thoroughly check your C/C++ source code for bugs, glitches, inconsistencies, non-portable constructs, and much more, so you can find and fix your bugs more quickly than with traditional debugging procedures.”
I see the advert for this product every month in Dr. Dobbs. They have a different C coding error puzzle each month, which presumably the software can easily solve. It's amazing to me that a product that started in 1985 could be the oldest continually advertised piece of software!
  • Magic Draw They list a lot of "features" but most of the important features are somewhere in the middle. Most impressive of this software's features are 3, 4, and 7. Magic draw has the ability to transcribe UML diagrams into raw code and vice versa. It also allows for easy UML diagram creation. The end result is that the software engineers are able to create a well designed skeleton of their code in which they will more clearly define methods.
Since design and elegance are crucial for very large projects, this application can certainly help the programmers create a program that is not only well structured but they can do it easily and quickly too. The software engineers can worry more about the structure of the system as a whole rather than worry about the class structure (since the program takes care of that). They are then able to concentrate on the structural integrity of the code and the structure of the algorithms used in the methods.
  • Coverity's Prevent SQS is a static analysis tool for C/C++ and Java software development projects. Prevent is compatible with a wide variety of operating systems, language dialects and compilers; including Gnu, Green Hills and Wind River development tools. The software recognizes a wide variety of defects, from potential memory leaks and pointer errors to security risks and concurrency checking. Coverity also provides database tools for recording defects found and comparing results as the development cycle progresses.
Prevent also allows for an impressive amount of customization to suit various needs. If, for example, you are developing an operating system for multi-processor hardware that handles inter-processor coordination and memory allocation in a non-conventional manner, you can configure Prevent to recognize and properly handle the new system calls unique to your development environment.