Numbering Item Hierarchies

Cradle provides a lot of flexibility for numbering item hierarchies. This is helpful if you need many hierarchies of the same type of items.

Hierarchies of Items

Hierarchies are very common in requirements management and systems engineering. Some common examples are:

  • User requirements are typically structured as a hierarchy
  • System requirements are typically a hierarchy
  • A System Breakdown Structure (SBS) will be a hierarchy
  • A Work Breakdown Structure (WBS) will also be a hierarchy

It is also common to have several hierarchies of the same type of information. For example:

  • A hierarchy of subsystem requirements for each of a product’s subsystems
  • An as designed and an as built SBS

It is easy to join many hierarchies into one. You create a new, top-level item and then connect all of the hierarchies to it. This is usually a bad idea.


Because it helps if the numbers are different in each hierarchy. If each hierarchy is different to the others, it will be confusing if items in different hierarchies have the same number.


Hierarchical Number is Not the Identity

So what is a hierarchical number?

Every item in the database has an Identity. This is unique for the item type. Once the item has been created, its Identity does not change. Cross references use Identities to connect items to each other.

The hierarchical number of an item is NOT the Identity. Well, Cradle does allow identities to be the hierarchical attribute, but we DO NOT recommend it. We will ignore this from now on!

The hierarchical number describes an item’s position in the hierarchy. A simple hierarchical number is:

  • 4.1.2

    • This tells us that the item is at the third level in the hierarchy. It is the 2nd item below item 4.1, and is part of the 1st group of items below item 4.
    • Hierarchical numbers are most common in the numbering of sections and sub-sections in documents.
    • Hierarchical numbers are not fixed. They can change. You can reorganise a hierarchy, moving an item and its children from one part of the hierarchy to another. Cradle calls this reordering a hierarchy. When you reorder items, their hierarchical numbers will change. Their Identities will not change.
    • By default, Cradle will store hierarchical numbers in the attribute called Key. You can store it in a category, if you wish.

Hierarchical Numbers

A hierarchical number has two parts:

  • A prefix
  • A hierarchy part, which is zero or more of:
    • A hierarchical separator
    • A number

The hierarchical separator can be:

  • A dot or period (this is the default); .
  • A hyphen: –
  • A slash: /

So these are all hierarchical numbers if the separator is a dot:

  • 1
  • 1.2.3
  • fred
  • fred.3.1

and these are also correct if the separator is a hyphen:

  • sid
  • sid-3
  • sid-3-4

and these are also valid hierarchical numbers if the separator is a slash:

  • bert
  • bert/1
  • bert/1/2

The prefix can be anything that does not contain a hierarchical separator. So if the separator is dot, then the prefix could be:

  • <nothing>
  • fred
  • fred-23/A-2.1
  • sid-2

Numbering Item Hierarchies

It is easy to have many hierarchies of items of the same type.

We recommend that you give each hierarchy a different prefix. For example here are some SBSs for the different subsystems in a product:

A Collection of SBS Hierarchies

Each hierarchy has a unique prefix, such as:

  • Pwr for the power subsystem
  • Conn for the connectivity subsystem

and so on. This approach will ensure that:

  • Each item in every hierarchy has a unique hierarchical number
  • Each hierarchical number shows which subsystem it belongs to
  • The prefix for each hierarchy can be used in a query to find all items in that hierarchy
  • The hierarchical number shows the position of the item in its hierarchy

The simple recommendations for numbering item hierarchies are:

  • Use descriptive prefix strings in the hierarchical numbers of all items
  • Use a different prefix string for each hierarchy