Flywheel 7.2

Roundtrip Component and Static Structure Diagrams in Visual Studio.NET



Flywheel 7.2

Roundtrip Component and Static Structure Diagrams in Visual Studio.NET


By Mike Riley


Visual Studio 2005 Architect is anticipated to feature a bevy of Model Driven Architecture (MDA)-like capabilities for design visualization using the Unified Modeling Language (UML). For those developers who can't wait for the next major release of VS.NET and are seeking to document their existing projects today in UML component or static structure diagrams, Velocitis has provided a stopgap. Flywheel is a VS.NET add-in that can design, visualize, and refactor C# and VB.NET-coded projects. It does so by synchronously modifying code whenever the visualized designs are updated (and vice versa), effectively roundtripping between code and design.


Once installed, the Flywheel add-in can be instantiated via the Tools | Flywheel | Start Flywheel menu item. Like most VS.NET add-ins, this step can be automated by selecting the Startup checkbox in the Add-in Manager dialog box. Once activated, individual classes or whole solutions can be visualized by right-clicking them in Flywheel's Solution Explorer window and selecting the Add Component Visualization option. This rapidly creates and displays a resized view of the component relationship diagram that can be quickly enlarged by double-clicking on a component of interest. Static structure diagrams can be generated from classes. These diagrams will also show the relationships to the associated, super, and sub classes, if requested. Class icons can be quickly switched between C#, VB.NET, or UML syntax, regardless of the source being represented.


Figure 1: Flywheel's powerful diagramming capabilities quickly generate class and component diagrams.


Flywheel's Strengths

Besides the rapid diagramming capabilities, Flywheel's most powerful asset is its ability to refactor C# and VB.NET code. Refactoring is not simply global search and replace; rather, it's a comprehensive analysis of the impact a change in code signature or parameters may have, and how to safely change those references without breaking class dependencies. Based on my experience reviewing the product, this feature performed almost flawlessly. The interface is also comprehensive, and features excellent multi-page printing and image export support (BMP, GIF, JPEG, PNG, or TIFF output) of generated diagrams.


Another powerful feature is Flywheel's assistance with class creation, modification, and relationship management. Using a series of straightforward dialog boxes, developers can quickly add constructors, destructors, methods, parameters, attributes, enums, operators, and other object elements. This can be especially useful to coders orienting themselves to OOP, diagramming, and .NET's language syntax for such designs. References can also be analyzed in relation to the project at any time by right-clicking on the class name and selecting the Analyze | References menu option. The amount of detail being displayed is highly editable via the Visualization Preferences dialog box. And code windows in the form of pop-up hint windows can also be displayed by hovering the mouse over a class method (or behavior in UML parlance). However, depending on the amount of code associated with a method, this pop-up can fill the entire screen, making errant mouse hovers unintentionally aggravating. I also encountered isolated incidents where Flywheel hit a wall and displayed a Submit bug dialog box similar to Microsoft's Report a bug dialog box in Windows XP. Velocitis will obviously benefit if active users provide this feedback to help patch these problems.


Flywheel's Weaknesses

Besides the known issues listed in Flywheel's readme document, some of which are substantial and most likely responsible for the bug report dialog box, Flywheel clearly isn't designed to be a comprehensive UML diagram editor. Thus, it's not intended to compete with a product like IBM/Rational's Rational Rose XDE Developer (which is considerably more expensive!). Flywheel seems to have been initially designed as a refactoring tool with code visualization added to it to facilitate refactoring reviews. As such, the diagramming features don't support the industry standard XML Metadata Interchange (XMI) format to import or export the diagrams it generates. This makes it difficult to upsize to competing visualization tools or future versions of VS.NET.


There's also a peculiar dialog box that's displayed when attempting to generate diagrams of a new solution. The dialog box explains that users must create a solution items project to contain solution-level visualization "due to a bug in Visual Studio." And though no fault of Flywheel's user interface, the individual windows used by Flywheel bunch up quickly, demanding 1600x1200 resolution or dual monitors to work with the product most effectively. Finally, although I respect the desire to brand and promote a product, Flywheel's logo is on every toolbar and window that it owns. This excessive display distracted me, because of its stark blue and red colors against an otherwise gray background.


Figure 2: Class diagram items link directly to the code they represent. Notice how cramped the 1024x768 screen can become with all the windows vying for screen real estate.




Quickly and effectively diagrams existing C# and VB.NET solutions.

Only supports UML Class (Static Structure) and Component Diagrams.

Powerful refactoring capabilities.

Does not export diagrams to industry standard XMI format.

Excellent image export and print output support.

Distracting logo branding.

Figure 3: What's good; what's not so good.



VS.NET developers seeking a sophisticated yet relatively inexpensive refactoring tool will be satisfied with what Flywheel offers. The visualization capabilities, although synchronized with the code and generally useful, are only adequate for static structure and component diagrams. Velocitis offers a number of video demonstrations in Flash format on their Web site at This mode of advertising is becoming more popular and does an excellent job of demonstrating the product. However, after reviewing these posted advertorials, senior application architects might be dismayed with the realization that Flywheel is not a less-expensive version of IBM/Rational's XDE tool.


Velocitis certainly has constructed a foundation to build such a solution if they wish to compete with IBM, and eventually Microsoft, but given this unlikely scenario, should probably focus on improving the features it currently delivers. For what it is designed to do, Flywheel successfully executes on its advertised claims and can help make the lives of VS.NET coders working with numerous objects much easier by visualizing how their work relates to the overall solution they're developing.



Web Site:

Price: US$499 (single-developer license)



Hide comments


  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.