Quality Control, Testing and Deployment Results in NIF ICCS

John P. Woodruff,Drew D. Casavant,Barry D. Cline,Michael R. Gorvad
DOI: https://doi.org/10.48550/arXiv.cs/0111013
2001-11-07
Abstract:The strategy used to develop the NIF Integrated Computer Control System (ICCS) calls for incremental cycles of construction and formal test to deliver a total of 1 million lines of code. Each incremental release takes four to six months to implement specific functionality and culminates when offline tests conducted in the ICCS Integration and Test Facility verify functional, performance, and interface requirements. Tests are then repeated on line to confirm integrated operation in dedicated laser laboratories or ultimately in the NIF. Test incidents along with other change requests are recorded and tracked to closure by the software change control board (SCCB). Annual independent audits advise management on software process improvements. Extensive experience has been gained by integrating controls in the prototype laser preamplifier laboratory. The control system installed in the preamplifier lab contains five of the ten planned supervisory subsystems and seven of sixteen planned front-end processors (FEPs). Beam alignment, timing, diagnosis and laser pulse amplification up to 20 joules was tested through an automated series of shots. Other laboratories have provided integrated testing of six additional FEPs. Process measurements including earned-value, product size, and defect densities provide software project controls and generate confidence that the control system will be successfully deployed.
Software Engineering
What problem does this paper attempt to address?
The problem that this paper attempts to solve is: how to successfully deploy the Integrated Computer Control System (ICCS) in the National Ignition Facility (NIF) through iterative development and testing methods. Specifically, the paper focuses on how to ensure that the ICCS software with 1 million lines of code can be completed on time, with high quality, and can run stably in the actual environment. To this end, the researchers have taken the following measures: 1. **Incremental Development and Testing**: - Each development cycle takes approximately 4 to 6 months to implement specific functions. - After each incremental release, verification tests for functional, performance, and interface requirements are first carried out in an offline environment (ICCS Integration and Test Facility). - After the test is completed, online tests will be carried out in a dedicated laser laboratory or finally in NIF to confirm the correctness of the integrated operation. 2. **Change Management and Quality Control**: - Problems found during the test and other change requests will be recorded and tracked until they are closed. - The Software Change Control Board (SCCB) is responsible for managing all change requests. - The annual independent audit provides software process improvement suggestions for the management. 3. **Project Management and Resource Allocation**: - Through detailed planning and design reviews, ensure that the functional requirements of each development cycle are clear. - Use methods such as earned value accounting to monitor project progress and ensure that development activities make efficient use of personnel. 4. **Test Planning and Execution**: - The test team is responsible for confirming whether the delivered software correctly and robustly meets the incremental requirements. - Tests include offline tests and online tests. The former is used to comprehensively test software capabilities, and the latter is used to verify the performance of the integrated system. - Non - conformities are recorded and analyzed during the test process, and software defects are tracked to ensure that problems are repaired in a timely manner. 5. **Iterative Overlap and Flexibility**: - The development of basic subsystems is ahead of application development to prepare new functions in advance. - Make full use of cycle overlaps in the planning process so as to adjust subsequent increments according to the actual situation. Through these measures, the paper shows how to effectively manage and deploy a complex computer control system in a complex large - scale engineering project to ensure that it meets the requirements of high performance and high reliability.