Author Archives: Ian Sutton

Holarchy 101

Herbert Simon’s parable of the watchmakers was constructed to convey his belief that complex systems will evolve from simple systems much more rapidly if there are stable intermediate forms present in that evolutionary process than if they are not present. … Read More

The parable of the two watchmakers

The parable of the two watchmakers was introduced by Nobel Prize winner Herbert Simon to describe the complex relationship of subsystems and their larger wholes. There once were two watchmakers, named Hora and Tempus, who made very fine watches. The … Read More

Travelin’ lite (the only way to fly)

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 … Read More

Identifying transitive closures with Structure101

Here an interesting use case. I am currently working on a reuse project. We have a large legacy Java application that we are trying to farm for implementations of some high level functions in a new application. To do this … Read More

Graphviz on steroids

We just released our new generic jobbie, Structure101g. If you already know Structure101 for Java or Structure101 for C/C++, you probably already have a good idea of what Structure101g might be. This is for those (and there are many, oh … Read More

Software erosion and package tangles

My recent post on architectural erosion in the findbugs code-base was generally well received, but there were some skeptical voices. In a comment, Emeric questioned whether cyclic dependencies at the package level are anything more than a smell (if that). … Read More

Software erosion in pictures – Findbugs

My particular area of interest in software these days is the importance of levels of abstraction above the raw code. In Java, the most natural place for these to manifest themselves is through the package structure (though this is certainly … Read More