The value of codebase structure

Posted by & filed under Architecture, Structure.

Most experienced engineers would accept that there are attributes of a code base under the heading of “structure” or “architecture”, that make a substantial difference to the ease of development. However, since there is some cost to improving these attributes, I do get rightly asked asked for data that quantifies the benefit, usually from higher… Read more »

Disentangling .NET Namespaces

Posted by & filed under Architecture, Restructure101.

If architectural drift is addressed before monolithic code tangles have formed, the higher-level components can be disentangled by relatively low cost/risk relocation of classes between components. Otherwise more invasive class-level surgery is needed – this is possible with Restructure101, but this tutorial focuses on the simpler situation.

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 »

Structure101 3.1 – Software Architecture Sandboxing

Posted by & filed under Architecture, Architecture Diagrams, News, Structure101.

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

Spring 2.5 Architecture Diagrams

Posted by & filed under Architecture, Structure101.

I have updated the architecture diagrams for the just-released Spring 2.5. Any new or changed packages are highlighted (since 2.0.6). The diagrams are also online – if you pointed your IDE plugin at these after my previous entry, you will be seeing the updated diagrams in your IDE already, and any compile time messages about… Read more »

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 »

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 »