Defining systems engineering
When considering systems engineering as a topic, it is important to understand exactly what is meant by the key terms that are being used. One aspect of all engineering (and all other professions for that matter) that will emerge from this book very quickly is that there is seldom a single, definitive definition for any term. This creates a potential problem as communication, as will be discussed later in this chapter, is key to successful systems engineering.
In order to address this potential problem, this chapter will introduce, discuss, and define specific concepts and their associated terminology that will be used throughout the book. This will enable a domain-specific language to be built up that will then be used consistently throughout this book. Wherever possible and appropriate, the terminology adopted will be based on international best practices, such as standards such as ISO 15288 (ISO 2015), to ensure the provenance of the information presented here.
Defining a system
The first concept that will be discussed is that of a system. A system will be defined in different ways by different people, depending on the nature of the system. So, first of all, some types of systems will be identified to illustrate some of the typical types of systems that may be encountered in systems engineering.
There are many different classifications, or taxonomies, of systems and one of the more widely accepted classifications is the one defined by Peter Checkland (Checkland, 1999), which is illustrated in the following diagram:
The diagram in Figure 1.1 shows Checkland's five types of generic systems, which are as follows:
- Natural systems, which represent open systems whose characteristics are beyond the control of humans. Such systems include weather systems, nature, the environment, time, and so on.
- Designed physical systems, which represent what most people would immediately think of when considering a system, such as smartphones, tablets, helicopters, cars, trains, planes, spaceships, boats, TVs, cameras, bridges, computer games, satellites, and even domestic appliances. The list is almost endless. The systems will typically consist of physical artifacts that represent the real-world manifestation of the system.
- Designed abstract systems, which represent systems that have no physical artifacts but that are used by people to understand or explain an idea or concept. Examples of such systems include models, equations, thought experiments, and so on.
- Human activity systems, which are people-based systems that can be seen or observed in the real world. These systems will typically consist of different sets of people interacting to achieve a common goal or purpose. Examples of such systems include a political system, social groups, people-based services, and so on.
- Transcendental systems, which are systems that go beyond our current understanding. Examples of such systems include deities, unknown problems, and Numberwang.
This is a good set of classifications that will be the one that is used as a reference in this book. These classifications are a good way to think about different types of systems, but the important point to understand here is that we can apply systems engineering to all five of these different categories of systems.
Also, it should be kept in mind that it is possible to have systems that actually fit into more than one of these categories. Imagine, for example, a transport system that would have to take into account: vehicles (designed physical systems), operating models (designed abstract systems), the environment (a natural system), and the governing political system (a human activity system). In real life, the complexity of systems is such that it is typical, rather than unusual, to encounter examples of these systems that can fit into multiple categories.
Characteristics of a system
The five different broad types of systems have been introduced, but there is also a common set of characteristics that may be associated with all of these types of systems. These characteristics allow the systems to be understood and developed. Let's explore these in the following sections.
System elements – characterizing system structure
Any system will have its own natural structure and may be thought of as a set of interacting system elements, as shown in the following diagram:
The diagram in Figure 1.2 shows that a system is made up of a set of system elements and that there are two types of systems: a system of interest and an enabling system. System of interest refers to a system that is under development, whereas enabling system refers to any system that has an interest in, or interacts with, a system of interest.
One point to note here is that the structure of the system is actually more complex than this as a system element itself may be broken down into lower-level system elements, which will lead to a system hierarchy of several levels being identified for a specific system. For the purposes of this initial discussion, the number of levels will be kept low in order to keep the explanations simple. Later in this book, when systems are discussed in more detail, examples of hierarchies that span multiple levels will be considered.
The next key point for discussion here is that system elements interact with other system elements. This is a key concept in understanding true systems and applying systems engineering. When considering any system, or system element, it is important to understand that they will interact with other system elements, rather than existing in isolation. In systems engineering, everything is connected to something else and so understanding the relationships between system elements, which form the basis of the interactions between them, is just as important as understanding the system elements themselves.
The interactions between system elements also allow interfaces to be identified and defined between them. Understanding interfaces between system elements is crucial to be able to specify and define all types of systems. As part of understanding interfaces, it is also necessary to understand the information or the material (anything that is not information) that flows across the interfaces.
System structures and interfaces will be discussed in far more detail in Chapter 3, Systems and Interfaces.
Stakeholders – characterizing who or what has an interest in the system
One of the key aspects of a system that it is essential to understand as part of any systems engineering endeavor is the stakeholders that are associated with the system, as shown in the following diagram:
The diagram in Figure 1.3 shows that a stakeholder has an interest in the system. Understanding stakeholders is key to successful systems engineering, and the definition of a stakeholder is the role of any person, organization, or thing that has an interest in the system.
There are a number of subtleties associated with understanding stakeholders:
- When considering stakeholders, it is the role of the stakeholder that is of interest, not the name of the person, organization, or thing that is associated with it. For example, consider a person, named Jon, who owns a car. The person, Jon, is not a stakeholder associated with the car, rather, the stakeholder is the role that Jon plays when interacting with the car. So, in this example, Jon will play a number of stakeholder roles, such as owner, driver, passenger, sponsor, maintainer, and so on. Each of these stakeholder roles will view the system of the car in different ways. It is important, therefore, that rather than thinking about Jon the person, that it is the stakeholder roles that Jon plays that are considered.
- Stakeholders are not necessarily people and can be many other things, such as organizations or just about anything. For example, when considering the system of the car, the stakeholder role of owner could be taken on by the person, Jon, but it may be a company car that is owned by a business, in which case it is the organization that takes on the stakeholder role, rather than the person. Equally, the law has an interest in the car, which means that the law is also a stakeholder.
- There is not a one-to-one correlation between stakeholders and the person, organization, or thing that takes on the role. For example, it has already been shown that a single person, Jon, may take on multiple stakeholder roles but, equally, it is possible for many people to take on the same stakeholder role. Consider the passengers that travel in the vehicle along with the driver. In this situation, we may have several people all taking on the same stakeholder role of passenger.
- Stakeholders lie outside the boundary of the system, as do enabling systems. With the definition of stakeholder being anything that has an interest in the system, then it follows that an enabling system is actually just a special type of stakeholder, as the basic definition is the same.
Identifying stakeholders is an essential part of systems engineering as stakeholders will each look at the same system in different ways, depending on the stakeholder role that they play. This leads to an important concept of context, which will be discussed in more detail later in this chapter.
Attributes – characterizing system properties
It is possible to describe the high-level properties of any given system by identifying a set of attributes, as shown in the following diagram:
The diagram in Figure 1.4 shows that attributes describe a system. Attributes are shown here as relating to the concept of the system but, bearing in mind that a system comprises a number of system elements, these attributes may also apply to the system elements.
These attributes will typically be represented as nouns that may take on a number of different values and be of a specific, pre-defined type, and may also have specific units. Examples of simple types of attributes could be as follows:
- Dimensions, such as length, width, and height, which would be typed as real numbers and may have units of millimeters associated with them.
- Weight, which would be typed as a real number and have the unit of kilograms associated with it.
- Element number, which may be of type integer and may not have a unit associated with it.
- Name, which may be of type character or text and may not have a unit associated with it.
Attributes may also take on more complex types; for example:
- Timestamp, which may be a set of simple types brought together to provide a more complex type. In this case, the timestamp may be a combination of day (an integer between 1 and 31), month (an integer between 1 and 12), year (an integer ranging from 0000 upwards), hour (an integer between 1 and 24), minute (an integer between 0 and 59), and second (an integer between 0 and 59).
- Data structures, which may represent an entire audio or video file that complies with a specific protocol, such as MP3, MP4, and so on.
The full set of possible attributes is almost limitless so the list provided here is intended to provide food for thought rather than be any sort of comprehensive list.
Boundaries – defining the scope of a system
Each system will have at least one boundary associated with it, which helps to explain the scope of the system, as shown in the following diagram:
The diagram in Figure 1.5 shows that the boundary defines the scope of the system.
There are many types of boundary that may exist, including the following:
- Physical boundary: This may be some sort of enclosure that surrounds the system and separates it from the outside world. This could be a cabinet that houses a number of system elements, such as the body of a car, a barrier that surrounds a piece of land, a wall and doors that define a room, and so on.
- Conceptual boundary: This is a non-physical boundary that can be imagined but not necessarily observed. An example of this is the boundary between a car and the GPS satellite that it interacts with. In this case, where is the boundary of the system considered to be? Is it the transmitter and receiver in the car, the transmitter and receiver on the satellite, or is it the waves that are transmitted or the protocols that are used as part of the transmission?
- Stakeholder Boundary: Different stakeholders may look at the same system in different ways and, therefore, where they perceive the boundary of the system to be may change depending on the stakeholder. Consider again two different stakeholders for a car. A passenger may consider the boundary of the car as being the physical body, or the shell of the car, whereas the maintainer of the car may also consider the conceptual boundary of the link between the car and the satellite as the boundary.
The boundary of a system allows a number of key aspects of the system to be understood:
- What is inside the boundary: It is important to understand which system elements are considered to be inside the boundary of the system and which are considered to be outside the boundary of the system. System elements that are considered inside the boundary of the system will help to define exactly what the scope of the system is.
- What is outside the boundary: In the same way that understanding what is inside the boundary is important, in terms of system elements, it is also important to understand what lies outside the boundary of the system. Things that exist outside the boundary of the system are considered to be either stakeholders or enabling systems, or as was discussed previously, both.
- Where key interfaces exist: Every time an interaction occurs across the boundary of a system, it identifies an interface to that system. Identifying interfaces is an important part of systems engineering and a boundary can be used to identify all interfaces between a system and the outside world.
Bearing in mind these discussion points, defining the boundary of a given system may not be as simple as it first appears as different stakeholders may identify different boundaries. This is not necessarily a problem but it is important to bear this in mind and to ensure that no conflicts occur because of these differences.
Needs: the purpose of the system
Each system must have a purpose and this purpose is expressed by defining a set of needs, as shown in the following diagram:
The diagram in Figure 1.6 shows that needs describe the purpose of the system. A need describes the concept of something that is described about the System. The diagram also shows that there are different types of needs, three of which are listed here:
- Requirement: A requirement represents a statement of something that it is desirable for the system to do. These are often related to the desired specific functionality of the system. For example, a requirement for a car may be that the driver must be able to slow the car down using the brake pedal, the car must have seat belts, or the car must travel at a top speed of at least 1,000 miles per hour.
- Feature: A feature represents a higher-level need of the system that does not necessarily relate to a specific function but may relate to a collection of functions. An example of a feature may be that the car must have adaptive cruise control, the car must self-park, or the car must have crash prevention capabilities.
- Goal: A goal is a very high-level need that represents a need of the overall system. An example of this may be to transport a driver and three passengers over a distance of 300 miles on a single charge.
It should be stressed here that there are many different terms used for all aspects of needs that differ vastly from organization to organization and from industry to industry. For example, the term "capability" is often used in the aerospace and defense industries whereas the term "feature" is more typically used in transport industries, such as automotive and rail. In a way, it does not matter which terminology is adopted, providing that it is adopted consistently.
Constraints: limiting the realization of the system
All systems will be limited in some way in terms of how they can be realized and these limitations are referred to as constraints, as shown in the following diagram:
The diagram in Figure 1.7 shows that constraints limit the realization of the system. All systems will have constraints associated with them that will limit how the system may be realized and these are often grouped into a number of categories, examples of which are as follows:
- Quality constraints: In almost all systems, there will be constraints that relate to best practice sources, such as standards. It is typical for a number of standards to be identified that the development approach used to deliver the system must comply with. These standards will typically relate to the development processes used to describe the overall systems engineering approach. For example, a standard that is often used for cars in the automotive industry is ISO 26262.
- Implementation constraints: These constraints will limit the way that the system can be built. This may limit the materials that are used; for example, a car may be limited to being made out of aluminum rather than steel.
- Environmental constraints: All systems must be deployed somewhere and many systems will be defined in a natural environment, which may lead to certain constraints coming into play. For example, a car may be limited in its emissions in order to minimize the impact on the environment.
- Safety constraints: Almost all systems will have constraints placed on them that ensure that the system can operate in a safe manner, particularly if things go wrong. For example, a car may be required to have functions in place that will protect the driver and passengers in the event of a crash.
The preceding list provides a broad set of categories for different types of constraints but it is by no means exhaustive.
It should also be kept in mind that these constraints can be complex themselves and actually belong to more than one of these categories. For example, a car may have a limitation that all of the materials used must be recyclable, which could place it in both the environmental and implementation categories.
It should also be pointed out that some of these constraints lend themselves to different stages of the system life cycle. The system life cycle is an important concept that will be discussed in more detail later in this book.
Constraints are also often described as special types of needs as they are often represented as being related to specific needs rather than directly to the system itself. This will be discussed in more detail in Chapter 6, Needs and Requirements, which focuses specifically on needs.
Summary of system concepts
All of the concepts that have been introduced and discussed in this section may now be brought together to provide an overview of how they relate to the concept of a system:
The diagram here shows a summary of the key concepts associated with systems that will be used throughout this book. It is important that these are all well understood as they will all be used from this point forward.
Defining systems engineering
There are many definitions of the term systems engineering, and there are various publications that discuss many of these and compare and contrast them (Holt and Perry 2019) (INCOSE 2018). For the purposes of this book, the main definition that will be used is taken from ISO 15288 (ISO 2015), which, in turn, is used in the INCOSE Systems Engineering Handbook (INCOSE 108), which defines systems engineering as:
This is shown pictorially in the following diagram:
The diagram in Figure 1.9 shows the basic definition of systems engineering. This diagram may seem trivial but it will enable the general term to be related to all of the other concepts that are discussed consequently in this chapter.
This is a simple but effective definition of the term, but there are a few factors that must be kept in mind when reading this description:
- Systems engineering is a multidisciplinary approach that takes into account all areas of engineering, including mechanical, electrical, civil, software, and so on. Crucially, however, it should also be recognized that systems engineering is not just limited to engineering disciplines, but includes many other diverse areas, such as management, mathematics, physics, psychology, and just about any other area!
- Systems engineering is applied across the entire life cycle of a system and is not restricted to any single stage. This means that systems engineering is considered right from the point in time that the very first idea for the system is conceived until the system is ultimately retired. Even when working on a single stage, it is important that all stages of the life cycle are considered.
- Systems engineering does not remove the need for intelligence, as systems engineers must never blindly follow instructions, and requires a healthy dose of common sense in order to be effective.
With these considerations in mind, the initial definition may be expanded upon to be redefined as (Holt & Perry 2007):
Now the definitions have been established, it is necessary to understand why systems engineering is needed in the first instance.