Over the years, I have seen and heard the word “architecture” used countless numbers of times and ways. Typically, the discussion is from the standpoint of talking about the structure of something. The word “architecture” always seems to be preceded by an adjective like system, electrical, software, or product. While I can think of many more, the purpose of placing the descriptor in front of architecture is to bring more clarity to the specifics of what is being described by a particular architecture.
More recently, it seems that the use of the word “logical” in reference to architecture is becoming more common. I find this to be counterintuitive. Logical as a descriptor for architecture does not bring clarity or specificity to the discussion. It brings ambiguity and misinterpretation.
Clarity or Ambiguity?
Let me start with some standard definitions. (I am using as my source reference Merriem-Webster.)
1. a. of, relating to, involving, or being in accordance with logic; b. skilled in logic
2. formally true or valid
In definition 1, you see there are six different uses of the word logical (of logic, relating to logic, involving logic, in accordance to logic, skilled in logic, and formally true). Herein lies one reason I think logical is a bad word to use and can lead to misinterpretation. The word in itself needs more context to convey the specifics of its application.
Let’s look at the word “architecture.” The second definition in Merriem Webster is as follows:
2. a. formation or construction resulting from or as if from a conscious act; b. a unifying or coherent form or structure
I chose this definition specifically because it was the only one that did not state a specific use (buildings, computers, etc.). I will center on the premise of a coherent structure and point to the definition of coherent.
1. a. logically or aesthetically ordered or integrated; b. having clarity or intelligibility
If I look at architecture as coherent, then it is inherently logical. So, all architectures are logically ordered. Now why would I call something a logical architecture or, using the definitions, a logical logically ordered structure? That seems redundant. In fact it is not, because there are two different uses of the word logical in that definition.
Logical Architecture Defined
The real interpretation is a logically ordered structure relating to logic. This is supported by the Guide to the Systems Engineering Body of Knowledge (SEBoK) definition, as follows.
The logical architecture of a system is composed of a set of related technical concepts and principles that support the logical operation of the system. It includes a functional architecture, a behavioral architecture, and a temporal architecture.
I am not sure exactly what they mean by logical operation. If I look up the definition of logical operation (an operation that follows the rules of symbolic logic), I do not believe that they intend for it to be limited by symbolic logic. I think what they are really getting at is the behavior of the system.
Logically Correct?
While the structure of logical architecture is broken down into functional, behavioral, and temporal architectures, I believe this was done because these are valuable perspectives of a systems behavior. From where I stand, we might more appropriately call this a “logical view architecture.” If you look at the definitions of functional, behavioral, and temporal architectures in the logical architecture definition, you will find there are overlaps of content in them. The behavioral architecture appears to be the most descriptive. The functional and temporal architectures are subsets or alternate views of the behavior. Now, this may only be true if you have a truly integrated behavioral model, but that is why I call them views and would not call them an architecture.
Another problem with logical is that I have also seen it used in reference to physical architecture (i.e., logical physical architecture). Using the same method to break this down, I can rewrite this as a logically ordered structure of logical physical pieces. Now I have even more ambiguity! Is this definition then a logically ordered structure of physical pieces relating to logic? Or, is it a logically ordered structure of physical pieces that follows some logic? Or, does it mean that the logically ordered structure of physical pieces is valid? My interpretation of the use of “logical physical architecture” does not align to any of these. I see it as a logically ordered structure of the physical domain of a system that does not necessarily align to the literal implemented architecture. This is otherwise known as a conceptual or abstract architecture.
Proposal
I propose that we use the following terminology when referring to architecture.
Abstract System Architecture: A logically ordered structure of a system that is independent of any one physical instantiation.
Instantiated System Architecture: A logically ordered structure of a system that aligns with a specific implementation.
I would not use this terminology standing alone, but rather for explaining the relative concepts of an abstract or instantiated architecture. I would use the words “abstract” and “instantiated” with other descriptors to make the context of the architecture discussion clearer.
One last definition. For this, I am taking the third definition of “system” found in SEBoK.
3. A system is an arrangement of parts or elements that together exhibit behavior or meaning that the individual constituents do not. (INCOSE Fellows, 2019)
From this definition, I see the system from two viewpoints. The first is “a system is.” This is the physical representation of the system. The second is “a system does.” This is the behavioral representation. We represent these in system architecture as a physical architecture and a behavioral architecture.
I think we can add our terminology of abstract and instantiated primarily to the physical architecture to bring about more clarity to the situation we may be talking about. System boundaries, both in an abstract nature and in an instantiated nature, need to be analyzed. As we consider the interfaces in the abstract architecture, we may not contemplate all the interfaces and their influences in the instantiated architecture, so we need to ensure that we build resilient systems by considering both.
Takeaway
Architecting is truly complicated and complex. We need to focus on engineering the systems correctly. Let’s be sure that we have a defined terminology for the architecture and that we maintain the common understanding. Know your audience and their terminology. If in doubt, clarify. While I may not agree with the use of the terminology “logical architecture,” if it makes sense in your context, use it. Just be sure that your audience is using it the same way.
To learn more about architecture, see this blog post, The Importance of Architecting Our Modeling Environment, and this page on our website.
To make matters worse, the French word “Logiciel” literally means “software” so some use the term for the abstract architecture for software only. Any term can be used for anything as long as you define your terms.
I find the SEBoK definition of “functional architecture” (and behavioural, physical etc.) being a shortened version of the “functional view of the system architecture” resonates well with myself personally. Maybe it would make more sense to refer to these as views instead of architectures (one architecture, many views)?