Design patterns

Table of Contents

Functions

Projects that perform functional analyses and develop functional specifications often include functions in their Systems Engineering (SE) model. Identifying which functions need to be fulfilled by the system’s objects helps formulate requirements based on the functions of these objects. Ultimately, this describes the system’s desired performance. For example, it is common practice for clients to develop specifications outlining the requirements of each object, part of which are called functional requirements. These functional requirements are related to specific functions and help the reader of the specification understand the desired outcome for each object.

Based on observations from projects, the basic model consists of a type element called Function, which includes properties to store the name and description.

Typically, the type property Name has a data type of Single line text (to hold a brief title for recognizing the function), while the type property Description has a data type of Text (to provide a more detailed description of the function).

Hierarchy

Projects often structure functions within a hierarchy called a Functional Breakdown Structure (FBS). When functions at lower levels in the hierarchy are fulfilled, this leads to the fulfillment of their parent functions, ultimately fulfilling the system function, which is the root function in the hierarchy.

In the model, a type relation called fulfills is often created for the Function element, which relates to itself. In most cases, the cardinality of this relation is set to Single. When each function has a maximum of one fulfilled parent function, the hierarchy is straightforward and easy for users to understand. By updating the type element Function with the setting Configuration set to Derived element, and the Origin relation set to the fulfills Function relation, the Hierarchical setting is automatically enabled. This makes the type element Function a hierarchical derived type element, which provides users with a tree view of functions in the functions overview.

Lifecycle

When tracking functions over time, it is often helpful to add a Status property to the model with a data type of List. Examples of list values include Actual and Rejected.

If certain functions are expected to become irrelevant over time, it is beneficial to configure the Status type property as a Life cycle property for the Function element. This can be done by setting the Life cycle property of the Function element to the Status type property. Additionally, by enabling the Auto archive setting and selecting relevant archive values (e.g., Rejected), only relevant functions will be displayed by default in the views.

TIP: Exercise caution when setting a lifecycle property for the Function element, particularly when used in combination with a hierarchy. Using Auto archive with a hierarchy may not be practical, as it can be difficult to interpret child functions of an archived parent function. Therefore, using a lifecycle property is more appropriate when there is no hierarchy or breakdown.

Result

The identified functions are often used as input to formulate system requirements and ultimately select a solution (i.e., the object). A system requirement specifies what the system should be able to do (i.e., the function) and how that function should be fulfilled (i.e., the object).

It is common practice to create a type relation called describes performance to fulfill in the model between the type elements System Requirement and Function. Typically, the cardinality of this relation is set to Multi, allowing for the reuse of more generically formulated system requirements.

Allocation

Ultimately, the object specified by the system requirement fulfills the function described by the system requirement. While you can indirectly determine from the system requirements which object fulfills a function, some projects prefer to directly relate an object to a function. For example, in addition to deriving functions from other functions, projects may also derive functions from the hierarchy of objects, known as the System Breakdown Structure (SBS). In such cases, a direct relation could be established for traceability.

TIP: Be cautious when using a direct relation between an object and a function in the model, as it can lead to redundancy and discrepancies with system requirements that link combinations of objects and functions.

To support this, it may be helpful to create a type relation called fulfills in the model between the type elements Object and Function. Typically, the cardinality of this relation is set to Multi, allowing for the reuse of solutions (i.e., objects) that fulfill multiple functions.

Relatics is the leading Model-Based Systems Engineering (MBSE) software application for construction projects. It is the comprehensive tool that gives professionals access to all project information and offers insight into the growing number of dependencies between all disciplines in today’s projects.

The aim of this article, part of a series of articles, is to provide you with basic knowledge about Systems Engineering elements and its application within the Relatics 6 software. Should you wish to proceed with Relatics 6 on your own projects and require assistance, please do not hesitate to contact us. Our consultants are ready to provide you with the support you need. If you miss an SE pattern in this series, please let us know.

Pioneers in Systems Engineering [book]
Insights from 50 professionals from the Dutch construction industry.

Download our free whitepaper with 7 success factors for implementing Systems Engineering on your project.

Download our free whitepaper to discover why construction projects still struggle with failure costs.

Request a demo

Fill in our form and one of our colleagues will contact you as soon as possible to schedule a demo.

Please enable JavaScript in your browser to complete this form.
Please enable JavaScript in your browser to complete this form.

Download the whitepaper

Please enable JavaScript in your browser to complete this form.
Addresss

Get in touch

Fill in our form and one of the Relatics members will contact you as soon as possible. Do you prefer contact by phone? Please call us at +31 180 413 047.
Please enable JavaScript in your browser to complete this form.