Skip to main content

RTS May 2024

Page 6

TTC OPERATED BY ENSCO

Building and Maintaining Robust Software Systems in Rail Technology Software Resiliency Through Quality Controls Matthew Dick, P.E., Chief of Strategy & Development, ENSCO, Inc., Pueblo, CO

S

oftware has become such a massive part of the rail industry, permeating nearly all activities and operations. While cybersecurity is crucial for protecting software systems from external threats, ensuring software quality controls is equally vital to safeguard against internal issues. A recent example illustrating this occurred on August 28, 2023, when a Norfolk Southern network service interruption, attributed to a PTC outage caused by a software defect, disrupted operations.[1]. The software update was made to one system and then automatically copied to the other system allowing the defect to spread.[2] These types of incidents are not limited to the rail industry. Similarly, the January 11, 2023, FAA system outage, resulting from a mistake during a software update, grounded all departure f lights in the United States.[3] These incidents underscore the importance of robust software development and quality control measures within the rail industry. Software Development Software development encompasses a wide range of approaches, from individual efforts to large teams of software engineers operating within a structured framework. As projects scale, they necessitate increased process and organization to maintain coherence. An effective analogy is viewing software development as akin to multiple individuals writing different sections of a very large document, aiming for seamless integration, error-free content, and accurate conveyance of the authors’ intent. Common frameworks such as ISO 9001 – Quality Management Systems, along with the ISO 25000 family of standards, also

4 Railway Track & Structures // May 2024

SOFTWARE HAS BECOME SUCH A MASSIVE PART OF THE RAIL INDUSTRY, PERMEATING NEARLY ALL ACTIVITIES AND OPERATIONS. WHILE CYBERSECURITY IS CRUCIAL FOR PROTECTING SOFTWARE SYSTEMS FROM EXTERNAL THREATS, ENSURING SOFTWARE QUALITY CONTROLS IS EQUALLY VITAL TO SAFEGUARD AGAINST INTERNAL ISSUES. known as “System and Software Quality Requirements and Evaluation”, focus specifically on software quality assurance from the top-to-bottom. Additionally, IEEE 730 “Standard for Software Quality Assurance Processes,” is commonly used in the rail industry and provide a similar framework. Both standards provide essential structures for organizing large software development teams. There are two major philosophies for the management of software development. The first is called Waterfall. This method is linear and sequential, ideally suited for projects where requirements are well-defined and unlikely to change. In Waterfall, software development follows a rigid path of requirements gathering, design, implementation, verification, and maintenance. Often a specification is written at the beginning with a customer, subject matter expert, and software architect inputs and is used as the governing design throughout the implementation. Waterfall offers predictability that the end-product will be what the architect intended. However, this method has its drawbacks, notably its challenges with changing requirements or unexpected hurdles appearing during development. Contrasting sharply with Waterfall, Agile development emphasizing speed, f lexibility, and iterative progress through short development cycles called “sprints” often organized by a manger referred to as a “Scrum Master.” Sprints may be as short as two weeks and result in completed software code at each cycle. Requirements are often defined throughout the

development, as opposed to the Waterfall approach where it is all defined at the beginning. This model allows for continuous revision of a project’s direction, which is crucial for adapting to the fast-evolving scenarios. Additionally Agile provides a structured methodology to keep progressing development. However, Agile can have drawbacks where it can be so fast and f lexible, there is a risk that the end-product doesn’t meet the customer’s expectations if the customer wasn’t intimately involved in the sprints. Many times, a hybrid of Waterfall and Agile is used. This provides the best-of-both worlds with an overall vision capable of f lexibility and speed. After software code is written, another common practice to improve quality is code reviews. This is where the developer and their senior manager review the code together. By having multiple eyes on the software code, it improves the ability to identify bugs and implement high quality coding methods. This process is not much different than a student and teacher sitting side-by-side reviewing an essay assignment, sentence-by-sentence. It is important that software code be kept organized and tracked, so software repositories are considered standard practice. One of the most common software repository systems used is called Git. Software code must be compiled and deployed to be usable by customers. Historically this process was labor intensive for software teams, but over the last several years, automation server tools, such as Jenkins, have become commonplace to automatically compile and deploy software from its code. This rtands.com


Turn static files into dynamic content formats.

Create a flipbook
RTS May 2024 by Railway Track & Structures - Issuu