The concept of trustworthy systems combines safety and security considerations with the engineering of dependable, resilient solutions. This concept is essential when considering the design, implementation and operation of ‘smart’ applications, e.g. smart cities, smart transport, etc., where the consequences of failure could lead to significant harm to people and the environment.
Systems and software engineering disciplines are concerned with the application of theory, knowledge, and practice to effectively and efficiently build reliable digital systems that satisfy the requirements of customers, users, regulators and insurers. This discipline is applicable to small, medium, and large-scale systems. It encompasses all phases of the engineering lifecycle of a digital system, including requirements elicitation, analysis and specification; design; construction; verification and validation; deployment; and operation and maintenance. Whether small or large, following a traditional plan-driven development process, an agile approach, or some other method, software engineering is concerned with the best way to build good software systems. This module will look at systems and software engineering in the context of cyber security, applying frameworks such as the Trustworthy Software Framework when developing cyber-physical systems.