Building a Simple project: Alarm System

You are here:

In systems engineering it is common to model system functional behavior in order to define what a system has to be able to do. Let’s develop a few Function elements in order to create the simple alarm system behavior model shown below.

Alarm system functional model

Deleting and Adding nodes

We will use the default top-level nodes and delete the template nodes that we do not require for this project.

  • Identify the ‘Perform System Functions’ top-level node within the Function class.
  • In the ‘name’ field, rename it to ‘Perform alarm functions’.
  • Right-click Function 1.1 ‘Perform Mission System Functions’ and select ‘Delete node’. When the warning is displayed, click ‘OK’.

Now we will create the three alarm functions as children of Perform alarm functions.

  • Right-click ‘Perform alarm functions’ and choose ‘Add Node’.
  • Observe that Capability Architect adds a blank node and waits for you to give it a title. Name the new node ‘Monitor area’ and then press the Enter key.
  • Notice that the Name and Number properties are automatically entered.
  • Include the following Description: ‘The Alarm System will monitor defined zones within the protected building.’
  • Right-click ‘Perform alarm functions’ again and choose ‘Add Node’.
  • Name the new node ‘Check for intruders’.
  • Include the following Description: ‘The Alarm System will process surveillance data to identify the presence of an intruder.’.’
  • Add the final function, ‘Sound alarm’.

The Function class of your capability tree should look like this:

Alarm functions

Moving Nodes

Standard Drag and Drop

To move a node in the tree just click-and-drag the node to a new position and then drop it onto an existing node. The default behaviour is ‘when you drop Node 1 onto Node 2, it appears below Node 2 and at the same level as Node 2.

  • Move Function 1.3 ‘Sound alarm’ and drop it onto Function 1 ‘Perform alarm functions’.

The result is shown below. Notice that ‘Sound alarm’ is now at the same ‘level’ as ‘Perform alarm functions’, but below it in the list.

Figure 10
  • Drag ‘Sound alarm’ back to its original position by dropping onto 1.2 ‘Check for intruders’.

Drop as a Child

Sometimes you may want to drop Node 1 onto Node 2 but you may want Node 1 to become a child of Node 2 (one level lower) rather than the default behaviour of becoming a peer of Node 2. To drop as a child, simply hold the Control Key down while dropping the Node.

  • Control-drop ‘Sound Alarm’ onto 1.1 ‘Monitor area’. Notice that it has become a child of ‘Monitor area’, as shown in Figure 11.
Figure 11 – Control-drop a node
  • Return ‘Sound alarm’ back to its original position, as shown in Figure 10.

When performing functional analysis, we can define further child functions that more explicitly describe how the system will behave.

  • Right-click Function 1.2 ‘Check for intruders’, and add a child function: ‘Receive sensor signal’.
  • Right-click Function 1.2 again and add a second child Function: ‘Process sensor signal’.

Generating Functional Flow Block Diagrams

Capability Architect will generate Functional Flow Block Diagrams (FFBD) to mirror the functions you have created. To create an FFBD you first select the parent of the Functions you want to see in the diagram.

  • Right-click ‘Perform alarm functions’ and select ‘Show FFBD’. You should see your three functions in a line, as shown in Figure 12.
Figure 12 – Original FFBD

[NOTE] If the diagram is too small there are several ways to magnify it:

  • Use the mouse wheel to zoom in or out.
  • Choose Zoom In or Zoom Out from the Diagram menu
  • Use the keyboard short cuts Ctrl-Z (Zoom In) and Ctrl-A (Zoom Out)

Capability Architect allows you to insert several logic constructs in order to describe your system’s behaviour in time. In order to re-create Figure 8 we will start by adding in the Loop construct.

  • Right-click ‘Monitor Area’ and select ‘Insert Loop’. The default behaviour on a diagram is that an object is always inserted before the object that it is dropped on. The result is Figure 13.

Now we will click-and-drag each of the Functions onto the lower branch of the Loop.

  • Click-and-drag the last Function ‘Sound alarm’. When you drag the function onto the branch you will see the branch change to indicate it is ready to receive your drop.
Figure 13 – New Loop Construct
  • Drag-and-drop ‘Check for intruders’ onto ‘Sound alarm’. Notice that it drops in front of ‘Sound alarm’.
  • Drag-and-drop the last Function into the correct position. Your diagram should look like Figure 14.

[NOTE] Since the dropped object always goes in front, when moving multiple objects move the last one first.

Figure 14 – Functions in a loop

The next step is to insert a two branch OR construct just in front of ‘Sound alarm’.

  • Right-click ‘Sound alarm’ and insert the OR from the context menu. Note that you can nominate the number of branches, but in this example we will accept the default number, which is two.
  • Drag ‘Sound alarm’ onto the upper branch of the OR.

Annotating Branches

  • Double-click the very start of the upper branch, on the horizontal branch line, and the Branch Annotation box will appear. [If nothing happens try again – some people have trouble finding the start of the branch the first time.]
  • Add the annotation ‘Intruder detected’.

Notice that the annotation is obscured behind the Function. To make the annotation visible we need to drag the Function to the right, further along the branch. To drag the Function along the branch to the right you need to Right-click and drag the function.

  • Right-click the Function and drag it to the right until the annotation is visible.

[NOTE] Left-Click is used for drag-and-drop activities. Right-click is used to drag along a branch.

  • Double-click the start of the lower branch and add the annotation ‘No detection’.

Drilling Down

When we look at an FFBD we may wish to consider what is happening at the next level of decomposition. Earlier, we defined two child functions under ‘Check for intruders’.

  • On the FFBD, Double-click Function 1.2 ‘Check for intruders’. Observe that a new FFBD opens to display the subordinate Functions.
  • Once you are satisfied, close all diagrams by clicking the Close “X” in the top right corner of each diagram window.

Inputs, Outputs and Triggers

An important part of defining system behaviour is to identify the various outputs from each function that the system performs. Often the output from one function becomes the input to another function; or perhaps a trigger for a subsequent function to commence. Within Capability Architect the Item class is used to describe the inputs, outputs and triggers within a system.

In this exercise, we will edit the properties of an Item and then we will edit the relationships between this Item and the Function elements we created previously in order to define which Functions generate, or consume, this Item.

Edit Properties

Properties are the amplifying characteristics that describe a particular element, such as the element name, description, number, etc. Within Capability Architect different types of element can have different properties. For example, a System Requirement may have a Priority, or a Risk Level; a Component may have a Manufacturer or Product Number; and an Item may have a trigger status.

  1. In the main screen locate the Item class in the tree and create an Item node called ‘Detection signal’.
  2. In the Properties pane, add a description of what this Item is. For example: “When the system identifies an intruder this signal is generated to start sounding the alarm.”

Since the alarm does not sound until it receives this signal, the Detection signal is a trigger.

  • Click the Trigger checkbox to show it is a trigger signal.

Edit Relationships

An essential part of systems engineering design is to maintain traceability between different design elements. In other words, we need to identify, maintain and manage the relationships between the various design elements. Capability Architect manages relationships using the Relationships Pane at the bottom of the main screen.

  • Select the ‘Detection signal’ Item.

Notice that an Item has five relationships defined on it: Comprises, Implements, Input to, Output from, and Transferred by. The two we are interested in now are ‘Input to [Function]’ and ‘Output from [Function]’.

  • Click on ‘Output from’ in the left-hand window. Immediately a list of all the available Functions appears in the right-hand window.

We want to record that the ‘Detection signal’ Item is ‘Output from’ Function 1.2 ‘Check for intruders’.

  • Double-click Function 1.2 in the right-hand window, and it immediately appears under ‘Output from’ in the left-hand window, as shown in Figure 15.
Recording relationships

[NOTE] Double-Click is used to add and remove relationships. To remove a relationship, double-click the relationship in the left-window and it will be deleted.

In our system. the ‘Detection signal’ is also an ‘Input to’ Function 1.3 ‘Sound alarm’.

  • Select ‘Input to’ in the left window and then double-click Sound alarm in the right window.

We have now recorded that this Item is generated by Function 1.2 and is an input to Function 1.3.

Finally,

  • Check the Trigger check box to show that the Sound Alarm function will not execute until this Item signal is received.

Viewing Inputs, Outputs and Triggers

Now that we have added additional behaviour information, this information will be automatically reflected in our behaviour diagram.

  • Re-open the ‘Perform alarm functions’ FFBD by right-clicking Function 1, ‘Perform alarm functions’, and selecting ‘Show FFBD’.
  • Re-size the diagram so it is comfortable to view.
  • On the Diagram menu select the item “Show Data Items”. Your new Item will appear as an output from Function 1.2 and an input to Function 1.3.
  • If the Item is in a poor position, click-and-drag it to a better location.

Note that the input arrow (to Function 1.3) has a double head. In Capability Architect this indicates that this Item is a trigger.

  • Switch back to the main screen and un-check the Trigger box in the property pane of the ‘Detection signal’ item.
  • Switch back to the diagram, and refresh the diagram by choosing Refresh Diagram from the Diagram menu. Note that the double headed arrow is now replaced with a single head arrow, indicating a standard input.

 [NOTE] When making changes that affect open diagrams choose Diagram|Refresh Diagram to see the updates.

Adding Items Visually

We can also add Data Items directly to the FFBD diagram.

  • Click to select the ‘Monitor area’ Function.
  • Now Control-click the ‘Check for intruders’ Function. Notice that both Functions are now highlighted.
  • Right-click to see the context menu and select ‘Create Item’. The new Item dialog box appears, as shown in  Figure 16.
Figure 16 – Create new items dialog box
  1. Add the name ‘Sweep data’ for the Item
  2. Add the description ‘Unprocessed surveillance data.’
  3. Click ‘Create’.

Note that the Item appears on the diagram, as shown in Figure 17 and is also created in the Item class in the capability tree in the main form.

Figure 17 – Adding item visually

Generating Hierarchy Diagrams

Sometimes it is helpful to view tree nodes as a hierarchy, since this type of diagram clearly shows the different levels into which the engineering elements have been grouped.

  • Right-click  ‘Perform alarm functions’ and select Show Hierarchy. You should see your functions grouped under the context function, as illustrated in Figure 18.

In a complex project the number of levels in a hierarchy can grow such that the diagram becomes a little difficult to manage, so it is possible to restrict the number of levels displayed.

  • From the ‘Levels’ menu choose ‘Levels | 2’ and the third level is removed, displaying only the top two levels of the hierarchy diagram.

Sometimes it is preferable to examine only a lower portion of the hierarchy.

  • Close the current hierarchy diagram.
  • Right-click Function 1.2 ‘Check for intruders’, selecting ‘Show Hierarchy’. Notice that the top of the hierarchy is now Function 1.2.
Figure 18 – Hierarchy diagram

Physical Design

Once we understand what the system must do, we can turn our attention to how the system might deliver that Function. The process of design involves allocating the Functions we have developed on a specific physical solution that comprises multiple Components. For this example we will design a system that will be built from three core Components.

  • We can remove the template nodes that we do not need:
    • Right-click the default ‘Mission System’ node and select ‘Delete Node’.
    • Right-click the default ‘Support System’ node and select ‘Delete Node’.
    • Right-click the default ‘External System’ node and select ‘Delete Node’.
    • Right-click the default ‘Existing System’ node and select ‘Delete Node’.
  • Create three child nodes under ‘Alarm System’ called: Sensor, Processor, and Siren. Your Component class should look like Figure 19.
Figure 19 – Component Class
  • Include a Description of each Component.
  • Right-click the ‘Alarm System’ and select ‘Show Hierarchy’ to generate a diagram of the system breakdown structure.
  • Close the diagram.

Allocate Functions

A key step in the design process is to allocate system functions onto the proposed physical solution. For this simple example we will have a one-to-one mapping of the three functions we have defined onto the three components in our high-level architecture.

  • Click Component 1.1.1 ‘Sensor.
  • In the Relationships Pane click ‘Performs [Function]’. Note that all available Functions appear in the right-pane.
  • Double-click ‘Monitor area’. Note that it now appears under ‘Performs [Function]’ in the right-hand pane.
  • Repeat to map:
    • ‘Check for intruders’ to the ‘Processor’ Component.
    • ‘Sound alarm’ to the ‘Siren’ Component.

Create Interfaces

1.1.1.1  Adding Interfaces manually

In Section 2.6.6 we decided that if the Check for intruders functionidentifies an intruder then it generates a signal that triggers the Sound alarm function. Given we have mapped these functions to the Processor and Siren respectively, to implement this behaviour our design requires a physical interface between the Processor and the Siren. In Capability Architect an interface is modelled using the Link class.

  • Create a new Link node called ‘Processor-Siren’.
  • In the Description field (in the Properties Pane of Capability Architect) of your Link node write a short description of the interface and what it is used for.
  • In the Relationships Pane, select the ‘Connects’ relationship. Notice that the list of Components appears in the right-hand pane.
  • Double-click the ‘Processor’ and then the ‘Siren’, so that both nodes are listed under the ‘Connects’ relationship in the left-hand pane. We have now defined the Processor-Siren interface to connect the Processor and the Siren.
  • Select the ‘Transfers’ relationship and the list of Items will appear in the right-hand pane.
  • Double-click ‘Detection Signal’ to identify that this interface transfers that signal.

[NOTE] Every Item defined through the system functional behaviour will require a physical Link to transfer it between the Components that perform the Functions.

These physical relationships can be illustrated using the Interface Diagram.

  • Right-click the ‘Alarm System’ node in the Component class and select ‘Show Interfaces’.

The diagram shows all of the child Components and any interfaces we have defined between them. If the default positions obscure the interface just click and drag the objects until the diagram is easy to see, as shown in Figure 20.

Figure 20 – Interface diagram

Adding Interfaces Visually

We can also add Links directly to the Interface diagram.

  • Click to select the ‘Sensor’ Component.
  • Now Control-click the ‘Processor’ Component. Notice that both Components are now highlighted.
  • Right-click to see the context menu and select ‘Create Interface’. The new Entity dialog box appears, as shown in Figure 21.
Figure 20 – Create new Link dialog box
  • Add the name ‘Sensor-Processor’ for the Link.
  • Add the description ‘This interface transfers raw surveillance data.’
  • Click ‘Create’.

Note that the Item appears on the diagram, as shown in Figure 22, and is also created in the Link class in the capability tree in the main form.

Figure 22 – Adding Items visually

Return to the Capability Architect main screen.

  • Select the ‘Sweep Data’ node in the ‘Item’ class.
  • Click on ‘Transferred by [Link]’.
  • Double-click the new ‘Sensor-processor’ Link. This shows that the ‘Sweep data’ signals are transferred using our new physical Link.

External Interfaces

A similar approach is used to identify the interfaces external to the alarm system. In this example, we will create an external interface to the building power system.

  • Right-click the ‘Context’ node in the Component class and select ‘Add Node’.
  • Call it the ‘External Power System. In the Description field write ‘The building is fitted with 240 Volt 50 Hz AC electricity.’
  • Right-click the ‘Context’ node in the Component class and select ‘Show Interfaces’. Note that this view shows our System of Interest and the new External System.
  • Click to select the ‘Alarm System’ Component.
  • Now Control-click the ‘External Power System’ Component.
  • Right-click to see the context menu and select ‘Create Interface’.
  • ­Name the interface ‘EXT – Power’ and in the Description field write ‘The power interface will comply with AS 3000.’.
  • Close the interface diagram.

Generating Documents

Creating documents from a template

A key advantage of capturing the systems engineering data in a structured information environment is that we can exploit the structure to automate the generation of many of the engineering design documents. Capability Architect provides a Microsoft Word template that can be used to create key documents such as the Operational Concept Document, the Function and Performance Specification and the System Description Document. The template includes a set of macros that will automatically populate the documents from the information that has been recorded in the database.

The completeness of the documents will often depend on the stage of the project, but even in the early stages it is often useful to generate an early draft to circulate to stakeholders. When documents are incomplete it is often a prompt to review that section of the design and provide more detail.

For this tutorial, we have only entered a few functions, some components and an interface. Since the components are part of a solution, we will use an abbreviated System Description Document (SDD) to illustrate the mechanics of document generation.

Open the template file

  • In your Templates folder, open the Microsoft Word template file called ‘CA Document template’.

Configure your document – One-time process

  • Select the ‘Capability Architect’ tab on the ribbon. For a new document we need to run the ‘Template Setup’ script. Click ‘Template Setup’ and the Template window opens, as shown in Figure 23.
Figure 23 – Template setup window
  • Click ‘Connect to Access file…’ and navigate to your Templates folder. Select our tutorial database, ‘CA Tutorial 1’, and click ‘Open’.
  • Open the ‘Select system to report on..’ drop-down and select the ‘Alarm System’.
  • Open the ‘Select the document to generate..’ drop-down and select ‘Simple System Description Document’.
  • Press the ‘Write to properties’ button. The details are stored in the properties fields of the new Microsoft Word document.
  • Now, save the document into the Templates folder and call it: ‘System Description Document – Sample’.

Generate the Document

  • Choose the Capability Architect tab on the Microsoft Word ribbon and click the ‘Generate’ button.

You should observe that the blank template is now populated with a brief description of the Alarm System. The description includes the functional architecture and the physical architecture. Of course, it will only produce the information you have actually entered, so if you skipped over the Description fields then the sample SDD may look a little sparse. This is a good time to go back and fill in some of those Descriptions and then press the ‘Generate’ button again.

[NOTE] If you didn’t include Description Fields, or didn’t view the system breakdown hierarchy diagram, just go back into Capability Architect and add the missing elements now. You can then return to your SDD and press the Generate button again to update your document.

Building a Simple project: Alarm System