System Composer

Utility for software systems specifications

Decompose Systems

One single System Map is probably not enough when developing a complex system. Though functions can be arranged as a tree, it is not recommended to create one System Map that goes too deep into the functional details, rather one should create sub-specs that explain actors, features and integrations for the subsystems as well, not only the sub-functions.

Each sub-spec will be represented by a separate file, which makes it also very manageable in source code management systems such as Subversion.

System Composer provides great tools for the decomposition. It contains a tool called “explorer” which allows the inspection of the deep functional tree and supports very easy navigation between all the specs. And you can easily create a sub-spec for a function. You don’t have to initially think about when to split the system, you can move a function with all it’s contents to a sub-spec or re-merge the sub-spec contents into the main spec.

So let’s dive into the program.

We use the specification for Purple Box:


The toolbar contains the explorer button, which opens the function tree of all sub-specifications.

We can navigate between all the sub-specs very easily.

Let’s see how we can create such a structure.

A sub-spec is simply a linked file. Linked files can be anything such as images or spreadsheets, but if the linked file is a System Composer file, it can be inspected in the explorer:


To make the linking simpler, you can move a function to a sub-spec, where you can specify a file, which is saved and linked automatically. For existing links you can move the sub-function into the sub-spec or move the functions to the parent spec:


This technique scales up to large systems. It forces a very structured decomposition, which would maybe not achieved when simply programming tools are used.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: