With advancements in technology and a global shift in the use of software in everyday lives, railways and other infrastructure are becoming increasingly dependent on digital solutions.
These solutions add ever-growing complexity and therefore a greater need to plan how and when to integrate systems, and to manage integration as an ongoing activity throughout both the entire project lifecycle and the life of the system.
Based on cross-industry best-practice approaches, this article explores the key characteristics of software-based systems and presents the value of employing an integration-focused approach for the development and delivery of digital solutions. The aim is to support organisations in developing and implementing their approach to delivery, to ensure the realisation of the unique advantages presented by software-based systems.
CHARACTERISTICS OF SOFTWARE-BASED SYSTEMS
A system that delivers its intended capability through software code executed on computing hardware can be defined as a software-based system. Such a system typically consists of multiple applications and configuration files along with the computing elements including processors and data storage. These elements enable the applications to run and provide the human-computer interfaces (HCI) that support user interaction.
Software-based systems now perform many of the functions that were previously delivered by mechanical and electrical systems—for example, signalling. Whilst they provide additional functionality and enhanced capabilities, software-based systems are in themselves complex. They require robust testing and assurance, and, as a result, it is essential for organisations to specify, design, and manage the delivery and integration of software-based systems to achieve the objectives of the given project or programme.
Software-based systems provide and require a high amount of interconnectivity. This level of interconnectivity is powerful, enabling vast amounts of data to be shared and utilised to create uniform capabilities shared across multiple systems whilst also offering greater resilience and redundancy.
For example, by creating modular solutions, a single asset-health-management system could be connected across multiple systems to gather and collate statuses, events, and faults into a single repository rather than, or in addition to, each system providing its own monitoring solution. This would allow the maintainer to monitor the whole system through a single tool to capture trends and diagnose complex cross-subsystem faults.
Even without such modularisation, subsystems can and do share large amounts of data across multiple networked interfaces, resulting in a highly interdependent system.
Utilising this interconnectivity efficiently requires a robust approach—first, to define and specify the intended capabilities and then to manage and control the interfaces. Without an integration-focused approach, many of the potential benefits may not be considered, and those that are will be hard to implement and will be costly to deliver.
MANY IMPLEMENTATION OPTIONS
There are many available implementation options including choice of hardware suppliers, operating systems and existing software packages, all of which can be configured to deliver the unique needs of the system. These choices will impact overall capability of the system and, due to the highly integrated nature of the system, these options need to be considered and managed early to realise the range of potential benefits. For example, employing a single sign-on option requires implementing a common operating system to simplify the security domain.
Most of the functionality of a software-based system is achieved in the execution of software code. With the evolution of virtualisation technology, some of the physical computing components (PCs and network switches) are being replaced by virtual machines, effectively enabling multiple computers to run on a single hardware node. This reduces the physical footprint, power requirements and maintenance costs whilst enhancing system resilience.
If properly managed, software-based systems offer significant time and cost savings. A systems integration approach enables the right implementation to be made and managed so that the potential benefits can be realised.
Software-based systems can provide cost-effective, flexible and scalable solutions. This is achieved by providing bespoke functionality through the configuration of commercially off-the-shelf (COTS) computing hardware and software solutions.
Core and additional functionality can be brought online, and emergent faults can be corrected through patches and updates, meaning the software is regularly changing and evolving. This is not limited to the design, development and implementation stages but continues to occur throughout the life of the overall system (through-life evolution).
The ability to update the system and the reliance on COTS solutions drives the need for integration to be considered and managed throughout the life of the system as it becomes necessary to implement critical security and functional patches to maintain and upgrade the software—as well as manage increased levels of component obsolescence.
Software changes need to be tested on a representative system before being deployed into the live system, to de-risk their impact and build confidence that there are no adverse effects. The approach to integrating the system informs the size and use of systems integration facilities to enable ongoing integration activities.
As a result, evolution of the system must be considered as part of both the initial system delivery and the ongoing activities required to maintain the operational system. This is to ensure the necessary scope, contracts and plans are in place as well as the necessary integration facilities.
Given the virtual nature of software-based systems (i.e. they are not physical assets), it is often hard to fully visualise how they work. In addition, while the outcome of the software operation is predictable, the exact order in which it executes likely varies each time it is run.
Furthermore, the visible impacts of a change or failure often manifest in a different part of the system—for example, changing the security requirements of one software element may result in the failure of an automated process running elsewhere in the system due to software access restrictions.
These characteristics make testing and assurance more challenging, requiring careful planning and integration to ensure it can be determined that the system software is predictable, secure and capable. This is particularly relevant in a safety-critical environment such as a railway.
INTEGRATING SOFTWARE-BASED SYSTEMS
Any complex system, by definition, is comprised of multiple elements that function together. Integration is the set of activities that combine these elements to produce one or more overall capabilities. Traditionally, individual elements or subsystems are brought together at a specific stage in the project or programme lifecycle once they have been designed and developed. Based on their unique characteristics, software-based systems provide significant integration challenges. As a result, integration of software-based systems needs to be conducted as an iterative activity as part of the overall system development to ensure capabilities can be delivered. This continuous approach to software integration is why mechanisms such as Agile have been developed. These mechanisms enable concurrent development of multiple parts of the system and the testing of key elements of functionality as part of building the whole system.
Therefore, the order in which elements of software-based systems are developed is key to delivering an integrated system. Planning, specifying and building the system around key capabilities and adding additional connected components in a considered order helps to detect issues, bugs and behaviours early and facilitates determination of their cause.
Failure to plan for and begin the actual integration of software-based systems early in the lifecycle will likely lead to an increase in time and cost, repeated rework and redevelopment and diminished end-system capability.