Our Resources

As a first port of call to learn more about Structure101 and software architecture management in general we recommend you take the Tour and/or visit the language-specific pages for Java, C/C++ or our generic version Structure101g. You might also want to check out our blog where Headway CEO, Chris Chedgey, ruminates on the world of software and structure.

In addition, here are a few documents that you are free to download, use and share.

Structure101 for Java Evaluator's Guide - Comprehensive Structure101 walkthrough to make your evaluation quicker and simpler.

Structure101 Product Datasheet - A 2-page summary of the product benefits and features.

Measuring Structural Over-Complexity - A white paper describing the Structure101 XS measurement framework

Structure101 PowerPoint Presentation - A high-level overview of the product family and features.

Controlling Architecture with Structure101 - A white paper describing how Structure101, IDE plug-ins and web application allow you to define, communicate and control the target architecture for a project.

Other Resources

There is also a wealth of independent information available on the 'whys' and 'hows' of managing software architecture. We encourage you to browse at your leisure, and contact us if you are aware of further interesting and relevant materials.

Re-architecting a Large Codebase - A presentation by Sakonnet's Tim High from Dr Dobb's 2008 Architecture and Design World where Tim discusses how Sakonnet used Structure101 to refactor the architecture of over 2m lines of Java code.

Controlling your Architecture - From Jfokus 2009, Magnus Robertsson of Jayway shows how to control the code architecture manually, statically and dynamically in order to avoid an architectural drift leading to a big-ball-of-mud. For that, he recommends ways to enforce the reference architecture through peer review, code analysis, and zero tolerance to warnings and errors.

Guidelines for Successful Acquisition and Management of Software Intensive Systems - A landmark study by The Software Technology Support Center and The Mitre Corporation concluding, among other things, that well-structured code is 2x easy to change and 8x less prone to defects.

Software Engineering Radio: Episode 115: Architecture Analysis - During Evolution of a software system, it becomes more and more difficult to understand the originally planned software architecture. Often an architectural degeneration happens because of various reasons during the development phases. In this session we will be looking how to avoid such architectural decay and degeneration and how continuous monitoring can improve the situation (and avoid architectural violations). In addition we will look at "refactoring in the large" and how refactoring can be simulated. A new family of "lint like tools for software architectures" is currently emerging in the marketplace I will show some examples and how they scale and support you in real world projects.

IEEE Paper: Structural Epochs in the Complexity of Software over Time A case study using a new complexity measurement framework called Structure 101 tracked the structural complexity of three open source software products through their different releases. The analysis found that, as these software products evolved, a large proportion of structural complexity in early releases at the application-code level progressively migrated to higher-level design and architectural elements in subsequent releases, or vice-versa.

Architectural Visualization Key to Code Reuse - From Gwyn Fisher, CTO at Klocwork, writing for Military Embedded Systems magazine - What can developers of military and avionics software systems do to take advantage of software reuse while ensuring that software is as bug-free and secure as possible?

Taming the complexity: The need for Program Understanding in Software Engineering - Detailed description from Prof. Raghu Sangwan of Penn State Uni, highlighting the need and the practice of program understanding and design-level refactoring using real world open source examples. One of the objectives of the program understanding course is to help porfessional software designers and developers become more effective in doing design and code reviews, and introduce software architects to techniques and strategies for architecture reconstruction and for monitoring systems for architectural conformance.

Stop the Software Architecture Erosion - Presentation by Bernie Merkle from ACCU 2009.

Domain-Driven Design Using Naked Objects - A book written by Dan Haywood on using the Naked Objects open source Java framework. The book includes a chapter on keeping the model maintainable using Structure101.

Complexity kills. It sucks the life out of developers, it makes products difficult to plan, build and test ... Each of us should ... explore and embrace techniques to reduce complexity.
Ray Ozzie, CTO, Microsoft

Sometimes the developers manage to maintain this purity of design through the initial development and into the first release. More often something goes wrong. The software starts to rot like a piece of bad meat.
Uncle Bob Martin

As systems become larger and more complicated, architecture assumes a more important role than has traditionally been the case. Exactly how organizations make use of architecture is an important indicator of their success in developing complex systems that meet their requirements in a cost efficient manner.
Software Engineering Institute, Carnegie Mellon University