Systems Thinking in SysML

1 month ago 2

Lucas Orman

For the sake of this post we will say that systems thinking is the process of thinking in systemic components or relationships. With that definition we can see that systems are everywhere and in everything. So why do some businesses and people want to be more systemic thinkers? I believe, there is a draw towards system thinking because of the lack of traditional boundaries. This allows you to blob out from one domain to another.

Press enter or click to view image in full size

Photo by Logan Voss on Unsplash

So, we have this system thinking muscle, how do we work it? I would argue one of the most effective ways to work with systemic thinking is through a tool called SysML. SysML stands for Systems Modeling Language, and they have recently updated it from version 1 to 2. With this change it has changed from just being pictures, to being pictures and text.

The reason it is a big deal that we can use text now with SysML is that we can now tap into some of the tools that programmers use. For example, version control allows you to save variations of a thing in a step like branching fashion. This means that one person can work on some SysML, drop it off somewhere like GitHub, and someone else can pick it up (at a different place/time) without the typical problem of vendor lock-in.

Example

The best place to start, in my opinion, is to talk about how we see and describe the world. So take the sentence, “The computer computed.” We can restate the sentence showing what is what. We have a thing called a computer, that did something called computed. There is plenty of philosophy on something called ontologies. You can dive into it if you wanted to understand how we see things and what reality is.

Press enter or click to view image in full size

Photo by Christopher Gower on Unsplash

From this basic example, we have something like a template of how we can break up things we see. Something to note is that both the thing and action the computer did will likely have smaller things. The computer is a system of systems, and a computation usually has many actions happening.

How can we use SysML to describe the sentence and try to start work our systems thinking muscle?

It is usual to call a thing an ‘item’ in SysML, but because this thing is doing something ‘item’ is not the right term. Since we are talking about the physical computer in a context, and not the idea of one removed from any context. We should use ‘part’ to describe the computer. We should avoid using the keyword ‘def’ like in ‘part def’. There is a ‘def’ for the ‘part’ by SysML, even if we don’t write one ourselves.

Next we have that the computer is doing something called computed. In SysML we can call processes that take over time an ‘occurrence’. When we have a relationship between a thing and an action we can create a relationship between the two in SysML. In this case we can nest the two like so:

part Computer{
occurrence Computed;
}

Now we can see how the part Computer is having an occurrence of Computed. With this taste of SysML you can start learning and applying more on your own! The literature on SysML V2 is a bit sparse, but here are some links:

Reference: https://www.omg.org/spec/SysML/2.0/Beta4/Language/PDF

Reference/Tutorial: https://sim4edu.com/reading/kerml-sysml/

I want to hear from you!

What are some problems you are facing in the management of projects? Let me know in the comments below!

Read Entire Article