Architecture warnings in Eclipse

Posted by & filed under Architecture, Structure101.

The new version of structure101 lets you define concise, layered architecture diagrams and publish them so that the whole team sees them in Eclipse and gets warnings if they make code changes that are out of whack with the architecture. Here’s an example architecture diagram: It defines layering (cells should only depend on lower cells)… Read more »

Eclipse Plugin (OSGi) Visualization

Posted by & filed under Dependency Management.

If you are going mad trying to figure out the dependencies between lots of Eclipse plug-ins, or work with other large OSGi systems, you may be interested in this. We’ve had a few people looking for an Eclipse/OSGi backend for Structure101, and with all the hype about OSGi lately, we decided to lift the lid… Read more »

Jar Hell

Posted by & filed under Architecture, Dependency Management, Structure101.

A lot of jars can contribute to (and mask) the logical package/class structure. Here’s how to make sense of the whole mess using Structure101.1. View your project in the Logical hierarchy2. Tag the classes or packages you’re interested in3.  Switch to the Jar Hierarchy and see which jars contain tagged items. Do this in reverse… Read more »

Complexity Debt – don’t “fix it”, “keep a lid on it”

Posted by & filed under Complexity, Emergent Design, Structure, Structure101.

So you just discovered that your code-base has racked up a whole load of complexity debt. This  maybe explains why progress seems so painfully slow lately. You briefly think of suggesting a major complexity-reducing refactoring effort. This will delay the next release significantly, but foreshorten the time to the following releases. Plus a cleaner, simpler… Read more »

Structure101 v2 beta 2 released

Posted by & filed under Structure101.

Structure101 is for contolling architecture and structural complexity. Version 2 introduced slicing and tagging. Beta 2 adds dependency hiding and cross-perspective navigation. New in v2 beta 2: Context menus (right mouse click) have been added. This introduces the new capability to navigate easily between views (perspectives). It is now possible to tag dependencies as well… Read more »

Spring 2’s architecture – A single dependency cycle slipped in

Posted by & filed under Architecture, Dependency Management, Emergent Design, Structure, Structure101.

The Spring guys have let a single dependency cycle into their architecture. A very small flaw, but it’s a perfect example of why you need to check your code-base at different levels to keep it truly tangle-free. I did a quick analysis of the Spring Framework some time back and sure enough found their claims… Read more »

Tracking complexity debt

Posted by & filed under Architecture, Complexity, Dependency Management, Emergent Design, Structure, Structure101.

Un-monitored, the complexity of a code-base increases with its size. Jboss and Struts are perfect examples. However monitoring complexity helps you keep complexity debt under control, or even down to zero. If you publish the last couple of years worth of releases of your project to a Structure101 repository, you’ll probably see something like this… Read more »