Cybersecurity Awareness Month: Spotlight on ICS/OT Security
Believe it or not, Industrial Control Systems and Operational Technology (ICS/OT), the lifelines of our critical infrastructure, are seeing rising threats. Last year, more than
Home / Blog / Industrial Cybersecurity / Software Engineering for Cyber-Physical Systems
Cyber-physical systems (CPS) are engineered systems that integrate computation, networking, and physical process. CPS classifies in many ways, including their scale, embeddedness, and the nature of their physical processes. In this article, we consider CPS from a software engineering perspective, examining how software engineers conceptualize CPS and which established software engineering concepts may be relevant to the study of CPS.
We introduce a definition of CPS based on existing definitions but informed by our understanding of software development processes.
While many people use this term loosely, there are two main types of cyber-physical systems (CPSs): CPSs that use the software only and CPSs that also use hardware components (or physical devices).
“Cyber” comes from the Greek word for steersman or pilot. It refers to any system composed of software and hardware components that operate together to perform a goal or solve a problem. By combining these two separate areas, we can achieve great things! It means that if you have a physical device—be it an airplane wing or car engine—you could have it controlled by software instead of just physics alone!
While discussion of CPS is not new, the term has only recently entered the mainstream. In fact, it has been around since at least 2006, when it was coined by Helen Gill at the National Science Foundation in the United States. The definition of CPS is similar to “the use of software and information technology in physical devices that perform real-world tasks under control of computer programs.”
However, what if we take this definition one step further? Imagine a world where all of our cars drive themselves, or where we can use Google Search to direct us through traffic jams without having to focus on driving, or even imagine how it would be if our refrigerators knew when they needed restocking; before we did! These are all examples of cyber-physical systems (CPS).
A common theme throughout many definitions of cyber-physical systems is that these systems involve both computing hardware and real-world devices such as sensors and actuators. For example: “Cyber-physical systems consist of computational elements interacting with physical elements to sense events from their environment and actuate accordingly.”
The software engineering perspective on CPS is a rich conceptual framework for the study of CPS. It is because it provides several frameworks for thinking about the design and implementation of CPS, including:
As we have seen, the software engineering perspective on CPS brings about a new way of thinking about cyber-physical systems. From a software engineering point of view, CPS is not just a gadget. They can be viewed as complex systems composed of two layers:
The physical layer involves tangible objects and sensors which interact with their environment through actuators. In contrast, an information system consists of data processing devices that acquire information from their environment through sensors and send messages to each other using communication channels.
Software engineering is a well-established discipline with a rich conceptual framework, which provides a valuable perspective for the study of CPS. In particular, software engineering provides us with a framework for understanding what it means to build and maintain highly distributed and interconnected systems.
The primary concern of software engineering is the production of correct programs (or “correctness”). This definition excludes issues such as efficiency or usability—essential concerns in their own right when building large-scale software systems but generally less critical than correctness when dealing with cyber-physical systems.
In addition to the correctness, there are other aspects of software design that matter for CPS: robustness (how well does the system perform under stress conditions); reliability (how often does my system fail?); availability (how quickly can I respond to an interruption); maintainability; portability; testability; modifiability; extensibility; etc.
These characteristics emerge from careful consideration of all aspects of system design, including architecture and organizational structures within firms or institutions responsible for developing them.
This article presented the concept of cyber-physical systems and their importance in software engineering. We explained the definition and types of cyber-physical systems to make this concept clear. We also discussed their impact on software engineering. In addition, we gave a review of some relevant works related to the cyber-physical system.
Industrial Cybersecurity
September 28, 2023
Want always be up to date?
By subscribing to our mailing list, you will be enrolled to receive our new trainings, latest blog posts, product news, and more.
Transform your cybersecurity skills with CIP Cyber’s comprehensive training & course offerings
Believe it or not, Industrial Control Systems and Operational Technology (ICS/OT), the lifelines of our critical infrastructure, are seeing rising threats. Last year, more than
The energy sector’s importance is underscored by its designation as an “enabling function” across all critical infrastructure sectors, as per Presidential Policy Directive 21. Serving
Operational Technology (OT) systems, such as industrial control systems (ICS) and Supervisory Control and Data Acquisition Systems (SCADA), are critical components of modern infrastructure, powering
Want always be up to date?
By subscribing to our mailing list, you will be enrolled to receive our new trainings, latest blog posts, product news, and more.
Transform your cybersecurity skills with CIP Cyber’s comprehensive training & course offerings