6 Unusual Lessons Found While Exploring Architecture Definitions

6 Unusual Lessons Found While Exploring Architecture Definitions

Is it Time to Redefine Architecture?

System engineering is a process of information management. I’ve described this before at The Information Side of System Engineering. In order to perform information management properly, an SE model must be focused on proper definition of terms, elements, and precise relationships between elements. This focus is also an important, but little discussed, factor in digital threads.

Lately I’ve been caught in an ongoing debate over a definition, that is, “what is a logical architecture?” The original purpose of discussing logical architectures was to distinguish them from physical architectures when creating SysML-based models of subsystems. Initially, there were two SysML model examples we were examining that looked very different, but a rigorous criteria over what made one logical and the other physical eluded us. 

The amount of debate was time-consuming enough I posed the question, “Why do we need these terms?” How does defining the two actually improve our ability to engineer a system? How does it change our process of decomposition and derivation from top-level concepts down to an architecture that can be passed on to other disciplines for implementation? I would argue it does not. That leads us to our first lessons:

Lesson 1: If you’re using a term that you cannot define adequately, then you should drop that term entirely; it cannot help you and will only create confusion later on. Find a better concept.

Lesson 2: Be ready to lose some arguments

Having lost that argument, we pushed forward with a definition. In fact, since we needed to distinguish between logical and physical architectures, I realized we needed two definitions, one for each. Let’s start with logical architectures.

My enterprising colleagues did some searching and found a formal definition of “logical architecture” at the System Engineering Body of Knowledge (SEBoK): 

“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. “

System Engineering Body of Knowledge (SEBoK)

That reads pretty impressively, until you dig a little deeper. What does it mean to support logical operations? Which technical concepts and principles are used? Ultimately it comes down to this: does that definition help you understand what a logical architecture is? I would argue it does not, but it’s a good try.

This leads to three more lessons:

Lesson 3: A definition that includes elements of the term being defined is a bad definition. (in this case, “logical” remains undefined.)

Lesson 4: System engineers seem to be terrible at writing definitions.

Lesson 5: The whole comprises its parts; the parts compose the whole. (grammar/usage)

I think we can do better.

Let’s start from scratch.

Architecture

Since we need to define both logical and physical architectures, let’s start with the common term: architecture. Architecture has several definitions that seem to suit the system engineering context:

  • formation or construction resulting from or as if from a conscious act
  • a unifying or coherent form or structure
  • the manner in which the components of a computer or computer system are organized and integrated

Lesson 6: Dictionaries, online or printed, are very useful resources.

From this, I have derived my own alternate definition of architecture suitable for system engineers:

“Architecture is a unifying or coherent form or structure describing the manner in which a system is consciously organized and integrated.”

vmcse.com

In simpler terms, architecture is the form that describes the deliberate organization of system. The definition tells me I need to capture form and structure and demonstrate organization and integration. I can communicate an architecture in many ways, including words, pictures, databases, and specific MBSE tools that let me represent structure and organization. Now let’s look at the term logical and how it applies to architecture.

Logical Architecture

The word “logical” ultimately derives from “logos”, which refers to the use of (correct) reasoning by the use of words. A person’s logos is that person’s mechanism of thinking and explaining. Logic then can be described as the science of thinking, particularly in distinguishing true from false reasoning.

Bringing together logic and architecture, we then can consider this definition:

“Logical architecture is the unifying form or structure of a system, based on conscious thinking and describing the reasoning behind the system’s organization and structure.”

vmcse.com

In simpler terms, logical architecture is the form that communicates the reasoning behind the organization of the system. I can create a logical architecture in a variety of ways, using SysML, Core, Microsoft Word, Powerpoint, Visio and more tools. I can show architecture using elements from the IDEAS Ontology (the root of DoDAF and its variants), or basic elements such as systems, segments, elements, subsystems, configuration items, parts, use cases, activities, states, modes and more. Ideally, I would use MBSE tools and techniques in this day and age. 

But what about physical architecture?

Physical Architecture

Following the same derivation process, physical can be defined as

  • having material substance
  • of or relating to matter rather than form

Bringing together physical and architecture, we then can consider this derived definition:

“Physical architecture is the unifying or coherent material structure of a system describing the substance behind the system’s realization.”

vmcse.com

In simpler terms, physical architecture is the material form describing the system’s organization when it is made real. I can create a physical architecture using 3D modeling, 3D printing, mockups, breadboards, brassboards, prototypes and even software coding for a software intensive system. Yet I can’t create a physical model in SysML, because SysML and most MBSE tools deal with representations of the system and not the realization of the system.

Now wait just a minute…

In SysML I can create a view of the physical architecture using parts and ports connected with data transfers and everything typed with real world part numbers and data definitions. It’s practically a schematic diagram using parts and ports. That should be a physical architecture, right? I disagree. It is a view showing the structure and organization of the system that describes the reasoning behind connecting the parts together. It is a logical representation at the level of implementation.

Systems Engineers Don’t Realize Systems

I fully support using SysML to represent real world parts. ports, connections and information exchanges, but ultimately that’s still a logical view, a logical architecture of the system at the implementation level. After all, systems engineers generally operate on the left side of the system “V” in cooperation with the design and manufacturing engineers responsible for the realization of the system. Systems engineers generally do not need to create physical architectures, so there’s really no need to distinguish logical vs. physical.

Everything system engineers create are logical models. Perhaps conceptual architectures and implementation architectures are the two types of architectures we want to view.

Lesson 7: Be prepared to lose multiple arguments

Leave a reply

Your email address will not be published.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

This site uses Akismet to reduce spam. Learn how your comment data is processed.