Structure101 V3 Released, Adds Architecture Control for Teams

Posted by & filed under Architecture, Emergent Design, News, Structure101.

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… Read more »

A Periodic Table of Visualization Methods

Posted by & filed under Uncategorized.

A lot of work went into this. A "periodic table" of visualization methods for data, information, concepts, strategy, metaphors, process and structure. Here’s a screen shot – be sure and visit the original if you’re interested – when you mouse over each cell, you get an example of the corresponding visualization method. I didn’t see… 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 »

Beautiful Structure

Posted by & filed under Structure.

In response to O’Reilly’s just-published Beautiful Code, Johnathan Edwards explains why he couldn’t go along with the premise. One sentence in his excellent piece stood out for me: “The human mind can not grasp the complexity of a moderately sized program, much less the monster systems we build today.” This is true, but only to… 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 »

Structure101 IntelliJ Plug-in

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 »

Structure101 Supports Java 1.5

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 »