Logical Structure And Software Architecture


Harrison Ainsworth

Software architecture is about articulating logical structure, but what does that mean more exactly?

Mere conciousness confers upon almost everything at least some logical properties. Almost everything can be seen and handled in some way discretely and measurably. This aspect is ubiquitous, although varied: Some things partake only superficially or nebulously, like a feeling (at least it has some name and existence), but others deeply and complexly, like physics.

That logical structure is the underlying realm of software architecture. Its focus is the region between vague and determinate, and its activity is to crystallise something for practical use, by means of software engineering. (The same underlying realm also belongs to software engineering, but its purview is the clear and determinate, and its task is to implement architecture.) Software architecture works to see and define useful new arrangements and expressions of logical structures. For example: the newsgroup/forum, the Wiki, the FPS game, music recommending/tracking, the windowing GUI.

With such an extensive domain, software architecture potentially has many kinds and specialisms. And also a variety of levels. Some will diverge, like building architecture and product design have for physical objects.

Its prospect of development is also large, ultimately open-ended, owing to its main dependencies: There is continuing enlargement of engineering capability, and an inexhaustible request, in human behaviour, for novel variations of uses for it.