Software engineering practices for control system reliability
S. Schaffner, Karen White · Proceedings of the 1999 Particle Accelerator Conference (Cat. No.99CH36366) · 2003
This paper discusses software engineering practices used to improve Control System reliability. We begin with a brief discussion of the Software Engineering Institute's Capability Maturity Model (CMM) which is a framework for evaluating and improving key practices used to enhance software development and maintenance capabilities. The software engineering processes developed and used by the Controls Group at the Thomas Jefferson National Accelerator Facility (Jefferson Lab), using the Experimental Physics and Industrial Control System (EPICS) for accelerator control, are described. Examples are given of how our procedures have been used to minimize control system downtime and improve reliability. While our examples are primarily drawn from our experience with EPICS, these practices are equally applicable to any control system. Specific issues addressed include resource allocation, developing reliable software lifecycle processes and risk management.