Posted by & filed under Dependency Management, Structure101.

Here are some architecture diagrams for Spring Framework 2.1 M3 (released yesterday). You can point the (free) structure101 plug-in at these and get IDE warnings if your customizations break Jeurgen’s architecture. Here is the top level breakout of org.springframework: Structure101 created this from the physical code-base. All the cells in the diagram use only lower-level… Read more »

Posted by & filed under Architecture, Dependency Management.

In an excellent on-line presentation Juergen Hoeller gives rationale and guidelines for controlling the structure of large, evolving code-bases. Juergen is the chief architect of the Spring framework, which as I have previously pointed out is structurally almost perfect. This didn’t happen by accident. If you don’t have time go though the 88 minute presentation,… Read more »

Posted by & filed under Architecture, Structure101.

This has just been made available for download. It displays architecture diagrams within the IDE, and warns if any code changes are inconsistent with the target architecture. It works more or less like the structure101 Eclipse plug-in except that for now it checks for architecture violations on demand rather than automatically when you do a… Read more »

Posted by & filed under Architecture, Structure101.

We have overhauled the byte-code parser to now pick up Java 1.5 constructs (e.g. generics and annotations), plus it is much faster. You can download the first build that includes the new parser here. If you currently use the structure101 IDE plug-in you may find that you get bogus warnings on "new" architectural violation when… Read more »

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 »

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 »

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 »