For those of you who are following my work in The Handbook of Software Architecture, I'll be posting some updates later this week on the various systems I've been studying. Trying to cover a set of systems that's reasonably representative of the breadth of software-intensive systems is challenging mainly because of the embarrassment of richs that lay before me: there are so darned many interesting systems to study, I have to walk away from many more of them than I'll ever be able to study in a lifetime.
Grouping these systems into meaningful categories is a classic problem of classification, and there's clearly no right or perfect answer here For example, is Massive an artificial system or a content authoring system or both? Is content authoring even the proper collective name for text, audio, and image editing systems? My hypothesis is that there really are only a few distinct architectural patterns that shape every software-intensive system, but then the various shades of architecture are formed by the mixture of mechanisms (think design patterns) that weave through those architectural patterns. For example, Massive at its root looks sort of like a blackboard system but also has a considerable amount of plumbing necessary to push out scenes to other systems such as RenderMan.
Now that I think about it, it's increasingly difficult to find software-intensive systems that are completely isolated: every system seems to be connected to some others. As the world moves to continuously evolving systems being the norm, perhaps we'll find that every piece of software is only six degrees of separation from any other.
gbooch 120000P81R 774 Visits