MKS Code Integrity

This product represents one half of the Code Integrity/Engineer Integrity
set. Both products analyze your projects and source code but measure different
factors. Code Integrity in particular aims to assist developers in mid
to large projects measure the quality of their code through an objective
series of tests and a mathematical model. The product supports integration
with numerous tools and languages, including the ability to set up your
own project structures from text files. For this review, I focused specifically
on the Visual Studio integration.

Setup of the product was easy, and launching the product from within
Visual Studio was a snap. The Source Analyzer window will either browse
an existing model (the internal database representation of the analysis)
or help you build a new model for the current project. Once the model
is built, you can browse it through the MKS Source Browser. The browser
allows you to navigate the model, search it and customize it A series
of views can be applied to each object. The "Uses" view is a depth analysis
of all objects referenced by the queried item. The "Calls" view allows
you to see which objects are being called by, as well as which objects
call the queried item. An "Inheritance" view allows you to see the Superclasses
and Subclasses related to the queried item. All the views offer useful
information about your code. Integration with VS allows you to jump to
a particular symbol directly within the browser.

So far this is common functionality to both products. So what makes Code
Integrity special?

The primary feature offered by Code Integrity is the analysis of your
source files for common coding issues. The product comes with a slew of
tests, examples of which include use of uninitialized variables, defaultless
switch statements, and use of the break statement. You can view the results
of the analysis in a browser style mode and even open the source to the
particular issue identified. You can also print a report that summarizes
the results of the analysis. This is useful to get a bird's eye view of
the issues identified. Both of these views are available on the whole
project or on any subset thereof. The folks at Code Integrity also offer
a very interesting mathematical model for measuring the quality of the
code. The net is that you get a percentage based metric for your code
quality. Last but not least, the product offers a time based measurement
of your code's quality, allowing you to (ideally) see the improvements
in a project.

Net? The product is an interesting enhancement of the old 'lint' tool.
The real value play happens on larger projects, where the integration
of the analysis, browser and development environment make it easy to quickly
address issues.

About the Author

Dan Frumin is the founder of Frumin Consulting group, a business and technology strategy consulting firm. Prior to that Dan spent several years running his own company and working at Microsoft in a variety of business and technical roles.