Complex integrated control systems are involved in nearly every aspect of offshore drilling, safety, environmental protection and other aspects of vessel operation. Safety, reliability and productivity are expected from high specification control systems such as those found on offshore supply vessels, drilling and production platforms. The ability of a control system to perform as expected is dependent on the underlying software which should be conceptualized, engineered, programmed and verified to provide the required stability and performance. Undetected errors in the software can cause hesitation and doubt for the operator upon execution of subsequent actions, in normal and/or emergency situations. The operator, who should be focused on normal operations, now has to deal with the added complexities and confusion brought about by unexpected software behavior.
Traditionally, commissioning and sea trials are periods when there is increased effort to update the functionality of the control systems. Statistics indicate that updates done during traditional commissioning introduces a larger number of unintentional software defects than if the functionality issues were thoroughly vetted during the software development process. During the asset’s operational life, vendor software updates on existing systems should be coordinated to maintain or improve safety and productivity.
Software development should be managed to uncover issues early in the development process, where effective solutions can be discussed to resolve issues and manage risk using a number of risk mitigation methods. The software development should follow a process wherein participation is garnered from stakeholders and the operational philosophy is documented in a Functional Description or Concept of Operation document. These documents facilitate safety as well as environmental and project risk mitigation.
The challenge of the software development process is compounded by the fact that many different suppliers have diverse requirements and inherent limitations which necessitate the development of effective and specific solutions. Verification of software involves utilizing a number of test cases and exercising the software to uncover defects in the code. Testing the integration involves conducting test to verify proper communication and timeliness of the commands and data transfer between the different connected equipment in the integrated control system. Following an internationally recognized process for software development leads to reduced errors in the software, a more predictable control system and thereby, a safer and more productive asset. The methodology summarized in this paper has been created to assist developers, owners and users in software risk mitigation and is built upon industry best practices.