MKS Engineer 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. Engineer Integrity in particular aims to assist developers in
mid to large projects measure and prepare a change impact analysis for
different source components. 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 Engineer
Engineer Integrity begins by letting you select a particular item, for
example a file name or a particular object. You can then select the changes
being considered. Each item has a different list of changes supported.
For example, while files only supporting renaming, classes support renaming,
adding or removing methods and so on. Each change considered then generates
an impact list. Impact lists are also specific to the change itself. For
example, if you are changing the body of a function, Engineer Integrity
will warn you to review all calls to the function. On the other hand,
if you rename a global variable, the product will point out every instance
where it is used and remind you to make the change. As with Code Integrity,
you can view the results either in a tree based browser or in a report
format suitable for printing.
Net? The product offers valuable analysis, especially for larger projects.
By automating the search for every potential impact point of a change,
this product aims to ensure that developers carefully consider the implications
of their actions.
[This review originally appeared in developer central 1.8.editor]
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.