Mapping Architecture Diagrams to Code – the “most specific pattern” rule

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

Architecture Diagrams in Structure101 are mapped to the physical code by patterns associated with each cell in the diagram. This enables the visual specification of rules that can then be applied to a specific version of your code so that Structure101 can overlay any violations on the diagram and let you discover the offending code… Read more »

Travelin’ lite (the only way to fly)

Posted by & filed under Dependency Management.

Of course, you can’t code up a (meaningful) system without some number of building blocks. So even in a perfectly architected and layered system, you inevitably accumulate some baggage as you move up the stack. The trick, though, is to try and minimize this (while also hiding off the details of the contents). This is… Read more »

Package design matters – Part 1

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

Java packages are often used like file-system folders to organize source. But source files differ from “normal” files in that they are highly inter-dependent. Considering this interdependence as a package hierarchy evolves can have significant productivity benefits. Packages as Folders Java packages provide an ideal way to organize code into a scalable, hierarchical structure that… Read more »

Spring Framework 2.1 M3 Architecture

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 »

Code Organization Guidelines for Large Code Bases

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 »

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 »