Upcoming JUG Appearances

Headway founder, Chris Chedgey, will be presenting “Modularizing an existing code-base” at the following Java User Group Events in the first quarter of 2012:

Bruxelles Musée Magritte

Come along and learn more about the importance and benefits of managing software architecture.

As always, there will be the opportunity to take home free Structure101 and Restructure101 licenses.

If you are a JUG leader and would like Chris to present at one of your meetings, just contact us.

Best wishes for the holidays to all.

From all the Structure101 guys.

Structure101 User Group Sponsorship

@chedgey met up with a couple of JUG leaders at the recent Java One, and between them they bashed out our sponsorship of Java User Groups worldwide.

We would be delighted to also extend our offer to the .NET User Group (DNUG) community. If you are interested all you need to do is contact us. Details of our sponsorship are after the fold:

Read More

General availability of Restructure101 for Java and .NET

Today we are very pleased to announce the general availability of Restructure101 version 1.0 for Java and .NET. Restructure101 lets software developers refactor their software architecture to remove costly dependency tangles and structural complexity.

We developed an interactive visual model called the Levelized Structure Map (LSM) which was specifically designed to allow software architects delve into structural problems and to explore solutions by directly manipulating the model in a sandbox environment. … Read More

Introducing Levelized Structure Maps (LSM)

Levelized Structure Maps (LSM) are a new, intuitive way to visualize and manipulate software systems. Using LSM, large-scale refactoring to remove dependency tangles and other over-complexity, becomes second nature. LSM are the core of Restructure101.

Items in the LSM are levelized into rows, or levels, so that every item depends on at least one item on the level immediately below it. Items in the same row do not depend on each other, and items on the lowest level do not depend on any other items at the same scope. This arrangement conveys a lot of dependency information so that most of the item-to-item dependency arrows can be hidden without loss of context. For example it is normal to work with just the feedback dependencies displayed, along with the dependencies for the currently selected items. … Read More

Headway to introduce Restructure101 at Lausanne JUG – Feb 10th

Headway founder, Chris Chedgey, will make the first public presentation of Restructure101 at the Lausanne JUG, 18:30 February 10th,  at the Moevenpick Hotel in Lausanne, Switzerland.

Interesting format for the event. Five “static analysis” vendors (Coverity, Parasoft, Xdepend, Sonar, and ourselves of course) presenting an assessment of the Icescrum open source code base, 20 mins each.

It looks like there is a good deal of interest already, apparently only 9 seats left, so a good idea to register in advance here.

Maven and Sonar Plugins for Structure101

With the recent v3.4 release of Structure101, we have included plugins for Maven and Sonar.

The Maven plugin makes it really easy to include checks for complexity and architecture violations as part of your build, and report or break the build accordingly.

The Sonar plugin displays Structure101 architecture diagrams overlaid with any layering rule violations, and adds over-complexity to whatever other metrics you monitor in Sonar.

One other significant change in Structure101 v3.4 is that the package vs. jar hierarchies have been promoted to the project level – you make the decision on which “breakout” you want to use when you create your project. Making the jar hierarchy a first-class citizen means you can detect complexity at the jar level, and use the architecture diagrams to define jar dependency/layering rules.

Plus we gave the icons a face-lift so they look all young and slick again…

Structure101 Takes Home Jolt Productivity Award

Joltaward_6Just got back from SD West and unpacked our Jolt Productivity Award. Huge credit and thanks to all the users that provided the stream of feature suggestions that has contributed to making Structure101 such a great product. And congratulations to the product and development team at Headway who spent so many tortuous hours discussing and honing each new feature (sometimes politely!) so that the product stayed usable as it got deeper.

Structure101 named 2008 JOLT finalist …

… in the Design and Modeling category. Yeah!

Structure101 3.1 – Software Architecture Sandboxing

Just released, Version 3.1 adds lots of new stuff to the Architecture perspective to make it much easier to discover the current structure and move classes or packages around to define a preferred architecture.

First thing is a simple expand and collapse button on each cell. So for example you can ask Structure101 to create a high-level architecture diagram from the current code-base – no need to worry about how deep to make the initial diagram since you can now expand and collapse cells once you have the initial diagram.

Let’s say you get the following diagram:

Architecture Diagram 1

This shows a layering violation from the strut2 package to the dispatcher package. Click the “+” to find out what is being used at the next level of detail.

Architecture Diagram 2

So something in struts2 is using something in dispatcher.controller. Expand both cells…

Architecture Diagram 3

And we see there is a single class-to-class dependency causing the violation. Also, since the Dispatcher class is below the other classes in the dispatcher.controller layering, we know that the other classes use, but it does not use the other classes. And the layering in the struts2 package indicates that we can move Dispatcher to the indicated level to fix the violation without creating new ones. Just drag and drop Dispatcher to create this:

Architecture Diagram 4

Collapsing the 2 top-level cells by clicking the “-” icons shows the original layering but with the underlying code rearranged so there is no longer an architecture violation.


Other stuff that has been added in this version:

  • Once you have moved classes or packages, you can get a list of all the moved items.
  • You can convert the list of moved items into transformations on the underlying model. This lets you iterate on a restructuring job – use an architecture diagram as a kind of “Sandbox” until you have some set of changes you’re happy with, then convert them into transformations and start sandboxing the next set of changes.
  • You can now apply strict layering to a diagram. This means that cells can only use cells immediately below them, not below that.
  • You can show any dependencies (i.e. not just violations) either on the whole diagram or on selected cells.
  • You can drag items onto an architecture diagram from the dependency breakout.

Final note, if you are using the architecture diagrams to drive your developers, you should choose the expansion level of cells consciously before publishing them to the project repository. Their code changes will be checked against the visible levels only.

Structure101 V3 Released, Adds Architecture Control for Teams

Released today, the new version 3 capabilities make Structure101 a nicely rounded architectural control solution in addition to the previous structural analysis and complexity measurement capabilities.

For example:

  • You can now define layering constraints on your code-base using simple, intuitive architecture block diagrams
  • Communicate these architecture diagrams to the development team through IDE plug-ins
  • Developers get warned immediately if they make code changes that are inconsistent with the architecture
  • RSS activity feeds let you know if new architecture violations make it into a build

Also, there’s a new online demo and the version 3 Help is available online.

Full press release