Case Study

Using agile development to deliver an EN 50128-compliant safety-critical train communication system for a global tech company

The client needed help with telecommunications software development to ensure its safety-critical train-borne software system remained compliant with EN 50128 railway industry standards. Using agile methodologies, UST developed a robust train communication interface software stack that seamlessly integrated with existing hardware and software components, a service layer to manage critical time-based operations, and applications to manage a train’s core functionality.

OUR CLIENT

This technology company designs and manufactures smartphones, mobile devices, modems, networking devices, and industry-specific public safety telecommunications solutions. With a focus on innovation, it strives to provide intuitive products and services that help people connect with each other and make life easier. The company employs more than 20,000 people and generates nearly $10 billion in annual revenue from its global operations.

THE CHALLENGE

Developing safety-critical software for train control systems

To remain compliant with railway industry standards, the client faced several complex development and system integration challenges with its safety-critical train-borne software systems. To address these challenges, the tech company needed a partner skilled in safety-critical software development.

The company needed to ensure its software development processes met EN 50128 safety guidelines, particularly aligning with safety integrity level 2 (SIL 2), requiring stringent measures to develop and maintain safety-related train control systems. To ensure compliance, the IT team needed rigorous software testing, validation, and certification processes, all of which added significant development time and resource allocation.

Developers needed to follow the MISRA C++ compliance standard to guarantee code reliability, particularly for embedded systems, and adhere to strict coding guidelines to minimize errors and maintain system performance. These requirements introduced complexity in coding, code review, and debugging processes. The company lacked these skills.

The company also needed to create a reliable train communication interface software stack that seamlessly integrated with existing hardware and software components, ensuring operational efficiency. This effort called for real-time communication and data exchange across various devices as well as a hardware abstraction layer (HAL). To ensure precise, safe train operations, the HAL needed to abstract and unify communications with devices, like universal asynchronous receiver/transmitter, inter-integrated circuit, and Ethernet, while also supporting sensors and relays, such as temperature sensors and voltage current monitors.

Finally, the company needed to develop a service layer to manage critical time-based operations, like audio communications and system-event logging. Integrating the services to ensure scalability, performance, and reliability across diverse hardware platforms posed a significant challenge. To compound the complexity of the engagement, the company needed to develop higher-level applications to manage a train’s core functionality, monitor train health in real time, and alert operators to critical issues. Ensuring the efficient, reliable, low-latency applications seamlessly integrated with the company’s broader software and hardware ecosystem was crucial for maintaining application reliability and the operational safety of trains.

THE TRANSFORMATION

Leveraging agile methodologies to ensure MISRA C++ and EN 50128 compliance in software development

UST developed a VxWorks-based train-borne communication system following an agile development methodology for iterative, flexible application delivery. The robust VxWorks real-time operating system was built using a modular, adaptable software design. This adaptability was achieved by using a virtual layer in each module, abstracting the hardware details, and allowing the application to function independently of the underlying hardware. This future-ready approach will enable seamless hardware upgrades or module replacements without disrupting the system’s functionality.

To ensure a high-quality design with easy maintenance, UST employed C++ design patterns, such as factory, observer, singleton, and adapter, to streamline module interactions, improve scalability, and simplify future development. These configurable design patterns will minimize the need for future code changes in core modules, making the system adaptable to new requirements via configurations rather than code modifications. We maintained detailed design documentation using Doxygen, with UML diagrams and platform documents.

In terms of safety and quality standards, the solution complied with the MISRA C++ coding standard and EN 50128 safety guidelines, ensuring the software meets the highest levels of safety and reliability required for train operations. Compliance was rigorously verified using industry-leading analysis tools, like LDRA and Klocwork, validating that the software adheres to industry regulations and is free from critical vulnerabilities.

The solution underwent thorough testing, covering all modules and interactions, to ensure flawless functionality in real-world scenarios. Finally, the system was successfully integrated with the company's radio communications server, ensuring reliable communications for train control operations. This end-to-end approach provided a scalable, compliant, and adaptable solution for current and future business needs.

There were several unique aspects to the project, including:

THE IMPACT

Helping the client’s developers increase efficiencies, accelerate new feature delivery, and keep costs in check

The train-borne software platform enables the company to offer its rail operator customers a reliable train control communications solution validated with safety-critical software standards for the railway industry. As the company releases application updates and new features, the IT team can independently program and verify hardware using its new custom application testing tool. The tool streamlines the hardware validation process and doesn’t require external support, increasing operational efficiency, accelerating development cycles, and reducing costs. Additionally, the IT team can track, manage, and optimize system performance and software development more efficiently through integrated platform releases, HPET-based performance logging, and enhanced bug tracking using Jira.

Our dynamic team of embedded software engineers worked diligently to ensure the timely completion of milestones while reducing project risks. By following highly transparent, collaborative, agile development processes, we helped the client meet project deadlines efficiently and with greater confidence in the quality of the deliverables.

Click here to learn more about our software engineering services.

RESOURCES

https://www.ust.com/en/insights/is-your-network-compliant-ensure-peace-of-mind-with-emf-testing

https://www.ust.com/en/insights/gaining-real-world-benefits-from-ust-digital-twin-solutions-and-expertise

https://www.ust.com/en/insights/how-can-companies-capitalize-on-the-opportunities-of-software-defined-vehicles