New Tool Lets Java and .NET Devs Refactor Software Architecture
"Refactor mercilessly," say the Agilistas -- especially the XPers. Good advice, but the process of changing a program's internal structure to make it easier to understand and cheaper to modify without altering its external behavior can be challenging and messy.
Enter Headway Software, a Waterford, Ireland-based company on a mission to make refactoring easier and more effective. The company's newly released refactoring tool, Restructure101, is the fulfillment of a vision, the company's CEO, Chris Chedgey, told me in an e-mail, of "nothing less than the manipulation of software files and functions with the same ease that has been available to hardware engineers for decades."
"The key is to understand the vast number of interdependencies in as much detail as necessary," Chedgey said, "without overwhelming the user. The LSM was the breakthrough we needed."
The LSM, or Levelized Structure Map, is an interactive visual model designed to allow software architects to delve into structural problems and explore solutions by directly manipulating the model in a sandbox environment, Chedgey said. LMSs "levelize" items into rows or levels. Items in the same row are not interdependent, but every item on that level depends on at least one item on the level just below it. This display technique allows developers to see the entire code base at once, including dependency information.
The maps actually exist within a simulated sandbox, so it's simple to drag-and-drop hunks of code from level to level, untangle the code and reduce complexity. Once the refactoring simulation is completed, devs export an "action list" to their favorite IDE and work through the actual changes there.
Both Java and .NET IDEs are supported. And Headway provides a Web-based repository for tracking progress on a project-wide basis.
Restructure101 provides a number of discovery and manipulation capabilities on top of the LSM. Among them: the ability to find package tangles and break them by dragging and dropping packages, classes, and methods/fields. It also supports other direct manipulations, such as creating sub-packages or inner classes (wrapping), removing package structure (flattening), and automatic repackaging.
Headway bills itself as the first independent software vendor to focus purely on software structure and architectural control and the fundamental tenets of building maintainable and extensible software. The company's products (Structure101, Structure101 Build, and Restructure101) use reverse engineering, structural analysis, and architectural mapping techniques for Java, .Net and C/C++. It also offers third-party parsers for ActionScript, PHP, SQL, SysML and UML.
Posted by John K. Waters on May 19, 2011 at 10:53 AM