System of Systems

One of the core skills that any engineer needs to develop early in their career is systems analysis; the ability to differentiate between functional elements.  With the ability to break a complex system into individual components, one can distinguish between those processes and elements which exist to produce the desire effect, and those non-functional elements which exist merely to satiate the environmental requirements of the system.  A system may require structural elements like a load bearing beam, a series of air vents, or some lateral crossbracing for stability. None of these elements may be functional, as they merely exist to support the main function of the device,  to compute transaction volumes on a website.  Being able to distinguish between the non-functional elements (in our example the parts of the telco rack) from the functional elements (the application), allows the engineer to diagnose the nature of a problem, and make tradeoffs that make economic sense.  

The hardest things to see, once you've been trained to analyze systems, however, is that there only is One.  Every component in your system is imaginary, and exists only in your mental model of the world. The difference between functional and non-functional elements is a model for weighing the costs of trade offs. If given a choice between cutting corners on one or the other, a good engineer will always choose cost savings on the non-functional side.   But what this can obscure is that every non-functional element is a functional element of a larger system. 

Look at the exterior of a building, and odds are you will find decorative elements which serve no function in terms of providing shelter.  If the sole purpose of a building were to be defined by it's primary functional requirement within that scope, most buildings would look like nondescript boxes, with the occasional pitched roof in snowy climates. These boxes would provide adequate shelter from the elements and would be of minimal cost to produce.  From a rational economic policy basis, we would mass produce these boxes do that the average cost of home ownership would diminish to below the poverty line.   

But to say that shelter is a primary function of home, ignores the larger social system in which the home's occupants operate. For many the primary function of their home is to communicate to everyone else who they are and their status in society. Either the goal is to say "look at me, I'm normal just like you", as we see in rows of nearly identical suburban subdivisions, or to say "look at how important and wealthy I am" as in the country estates and town houses of the wealthy. Even the quaint historic Cape style bungalow says, "I'm so secure in my standing, I have no need for austentation.". All of architecture, from Greecian columns on a civic building, to modernist glass and steel, exists to communicate something about the builder and subsequent tenants to society at large. 

When we look at any complex system within a system, we can see patterns of behavior which mimic the patterns of the other level. Part of this is due to our brains. Ring primed to recognize patterns they already recognize, like faces, places, and things, but also because of intentional design, due to designers adopting a microcosm vs macrocosm world view. By applying a known functional pattern at multiple levels, we can minimize the cognative dissonance that comes with level shifting. If my mental model of some small component also serves to explain that component's function in the larger system, I can apply similar logic to describing the relationships between any two parts of the system that serve roughly equivalent ends. 

For example, I have an object oriented language which models all behavior as a sequence of message sends. I then can model the behavior of components constructed out of these objects as a sequence of message sends between components. Spanning multiple systems, I can then model the interactions between multiple applications built out of these components as simply being message sends between applications. Beyond that complex systems where multiple applications communicate over a messaging bus can also be modeled by message sends between applications. We can further model all user interaction and communication between our systems and those of 3rd parties as just a sequence of message sends.   We can go from individual machine instructions to modeling the requirements of a globalize  infrastructure by repeated application of a useful concept on each level of scale. 

When you look at global scale problems, you quickly see numbers like 7,000,000,000 as ordinary. If you need to track information on a humanity scale, provisioning on the scale of petabytes (kilobytes per human) is really insufficient. Exabyte storage (megabytes per human) is a little more realistic.  But this begs an interesting question, at what point can a system retain enough data to model the system of systems?  If you take for granted that any human derived model will use microcosm/macrocosm duality, and will appreciate that in nature much of the fine structure mirrors that in fractal geometries, and we assume that our model by necessity will be incomplete (ie it will not model itself recursively); at some point these repetitions of forms can be exploited to compress the greater volume. At some point a sufficiently large model may in fact require less space than a less developed one. We see this in computer images, audio, and video all of the time.  Does the system of systems have an upper bound on representational complexity?