许大禹,张本伟,刘婉婷,张家铭,李旭阳,杜佳璐
(1.大连海事大学信息科学技术学院 大连 116026; 2.中国船级社海工技术中心 北京 100007)
海上单元集成软件系统认证标准及其技术背景分析研究*
许大禹1,张本伟2,刘婉婷1,张家铭1,李旭阳1,杜佳璐1
(1.大连海事大学信息科学技术学院 大连 116026; 2.中国船级社海工技术中心 北京 100007)
随着计算机与网络技术的飞速发展及海洋油气开发设施的安全可靠性要求不断提高, 海上单元使用了越来越多的集成软件系统,软件质量直接影响集成软件系统的稳定性及运行能力,由集成软件系统故障或失灵造成的海上单元停机与事故带来了人员安全与经济损失的风险,已成为人们日益关注的焦点。针对上述现状,国际船级社协会、挪威船级社、美国船级社均制定了集成软件系统的相关认证标准。文章就集成软件系统的相关国际认证标准及其技术背景与使用效益进行了简要分析,旨在对我国制定海上单元集成软件系统的入级规范提供指导。
海上单元;集成软件系统;国际标准
现今,海上单元(船舶、钻井平台等)使用了越来越多的集成软件系统,如推进系统、管理与自动化系统、动力定位系统、集成舰桥系统等集成软件系统[1],海上单元的整体性能容易受到集成软件系统的影响。通常由软件故障引起的集成软件系统故障或失灵只有在海上单元实际运行时才能被检测出来,且操作者很难及时地发现软件故障、进而分析故障原因、直至最后排除故障。而系统故障或系统失灵会导致海上单元及附近的船舶、设施等发生重大事故,将会造成不可估量的人员伤亡、经济损失、环境破坏。另一方面,随着集成软件系统复杂度的增加和人员配备数量的减少导致的高风险,以及集成软件系统项目开发会受到时间和资金的限制。因此,系统开发商和集成商在软件研发期间应遵循严格的质量管理体系程序,检验方应根据质量管理体系程序制定合理的测试和验证范围,方可保证所开发的集成软件系统实现设计的功能要求,保障系统的可靠性和安全运行能力。目前,国际船级社协会、挪威船级社、美国船级社等相继制定了集成软件系统的相关国际认证指南/标准,而中国船级社还未制定相关认证标准。
本文就国际船级社协会、挪威船级社、美国船级社制定的集成软件系统的相关国际认证标准进行分析,同时表明使用相关的国际标准能够在实际中简化系统软件集成、缩短海上单元停机时间、降低风险以及改善系统管理,为我国完善海上单元集成软件系统的认证标准的制定奠定基础。
目前普遍的共识是,船厂试车时,只要海上单元的集成软件系统未出现问题,系统即可投入实际使用,这是因为简单地参照了硬件测试验收方法,只要硬件通过了船厂测试验收,系统就可以运行了[2];另一方面,在集成软件系统调试时,如果不同供应商之间的系统接口出现问题,问题的解决是十分耗费时间的,且是昂贵的,由于在系统开发的初始阶段,不同供应商在制定系统接口的初始规格时未能详尽考虑与其他供应商开发的系统间的通信问题,导致了产生接口问题。接口问题的出现会导致大量的返工,并且产生关于接口问题的责任由谁承担的争议。此外,实际运行时,海上单元有多个集成软件系统参与运行,海上单元出现问题时也很难界定是哪个供应商提供的系统出现了问题。
现阶段,海上单元系统集成商、所有者以及操作者都十分依赖各供应商,然而各供应商对完整的系统却没有总体认识,一些供应商只是负责一个或几个独立系统的设计与开发,开发结束后对所有者与操作者提供关于系统维护的培训较少,并且对所开发系统在实际运行时是否按设计运行,缺少跟进工作。另一方面,关键的集成软件系统含有大量软件代码,如动力定位与钻井控制系统各包含500 000行的代码;软件的修复与升级文档缺乏详细的变更内容、变更原因及对应的测试文档,同时缺乏软件版本控制,造成软件故障频发,导致海上单元停机时间的增加。海上单元停机是典型的不可接受的商业风险,例如,钻探设备由于停机造成的损失可能高达500 000美元/d[3]。因此,制定与使用集成软件系统的认证标准是必要的。
为了对集成软件系统的要求更加完善和标准化,2000年,国际船级社协会(International Association of Class Societies, IACS)出版了全面的管理指南,即《船用和可编程电子系统应用的统一要求》[4],这些要求为系统的硬件和软件测试及其集成测试补充了额外的详细标准。
2009年,挪威船级社DNV发布了推荐措施《集成软件系统(integrated software dependent systems ,ISDS)》[5],经过修订后,DNV于2012年将推荐措施升级为标准[6]。《ISDS》定义了集成软件系统的设计、建造、试车及运行期间的工作过程中的要求,是一个国际上针对集成软件依赖系统的可接受的标准。同时,可作为供应商与船东之间的合同参考文档,也可以作为系统设计者、供应商、船东及监管机构的指南。该标准旨在指导集成软件支持系统、能源和海洋产业的建设运营,所考虑的系统为海事设施和船舶运行涉及的系统。该标准适用于管理开发海上单元集成软件系统项目生命周期的进程,同时也适用于管理系统的新建、更新及优化。
2011年,美国船级社ABS制定了《集成软件质量管理(integrated software quality management,ISQM)》[7]指南。这些指南可用于海上单元的辅助控制系统和设备的验证与确认。2014年最新修订的《ISQM》指南包括对控制与自动化系统的软件的设计、开发、建设、验证和确认等各方面关于项目参与者的活动与责任的详细说明。《ISQM》为集成计算机控制系统的设计、建设与维护等过程的工程管理提供了最佳实践参考。
3.1 国际船级社协会指南
《船用和可编程电子系统应用的统一要求》根据系统故障后果的影响程度将系统分为:Ⅰ级系统、Ⅱ级系统、Ⅲ级系统。其中,Ⅰ级系统:系统产生的故障不会给人员、船舶带来危险,不会危害周围环境;Ⅱ级系统:系统产生的故障可能会给人员、船舶带来危险,可能会给周围环境带来威胁;Ⅲ级系统:系统一旦发生故障就会给人员、船舶带来危险,破坏周围环境。测试系统的级别决定了系统软硬件的测试程度和需要提交审核文档的数量。
3.2 挪威船级社标准《ISDS》及其参考标准
《ISDS》中,开发集成软件系统项目的生命周期共分为5个阶段:基础工程阶段、工程阶段、建设阶段、验收阶段、运行阶段。每个阶段结束后,DNV组织项目各方参加里程碑会议,以便项目进入下一阶段。《ISDS》将整个系统项目的要求作为具体活动分配给项目出资方、系统集成商、供应商以及独立验证方,项目阶段以及置信级,将活动按逻辑分组形成了11个过程域,分别是需求工程、设计、执行、采购、集成、验证与确认、RAMS(可靠性、可用性、可维护性和安全性)、项目管理、风险管理、过程与质量保证、配置管理等过程域,各个过程域横跨多个项目阶段。DNV对项目各方负责的活动进行评估验收,要求项目各方提交活动验收标准对应的文档,以便DNV进行审核,DNV对满足要求的系统授予入级符号。
挪威船级社在定制《ISDS》时参考了国家标准化组织(The International Organization for Standardization, ISO)、国际电工委员会 (the International Electrotechnical Commission, IEC)、电气与电子工程师协会(Institute of Electrical and Electronics Engineers, IEEE)等发布的关于系统与软件的相关标准。
3.2.1 ISO/IEC 15288 & IEEE 29148
《ISDS》中的集成软件系统项目的生命周期制定参考了ISO/IEC 15288《系统工程 -系统生命周期过程(systems engineering-system life cycle processes)》[8]。ISO/IEC 15288为系统生命周期建立了一通用的进程框架,定义了一系列进程以及系统整个生命周期的相关术语,包括概念、开发、产品、使用、支持以及报废。ISO/IEC 15288所定义的生命周期进程分别为协议过程、组织项目授权过程、项目过程以及技术过程,这4个过程又包含若干子过程;ISO/IEC 15288关注的是软件、硬件和系统更综合的过程。IEEE 29148《systems and software engineering-life cycle processes-requirements engineering 》[9]提供了执行ISO/IEC 15288所涉及需求工程的过程指南,涉及的过程包括利益相关者需求定义过程、需求分析过程、其他技术过程中的需求工程活动。IEEE 29148中第6节具体解释了上述过程包含的活动以及任务,6.1节为需求过程,6.2节为利益相关者需求定义过程,6.3节为需求分析过程,6.4节为其他技术过程中的需求工程活动。
3.2.2 IEC 61508 & ISO 17894
《ISDS》涉及的RAMS,与IEC 61508《电气/电子/可编程电子安全系统的功能安全(Functional safety of electrical /electronic /programmable electronic safety related systems)》[10]标准一致,《ISDS》提供了在有关海事与能源背景下RAMS要求的指南,IEC 61508中描述的详细的技术在《ISDS》中进行了适当使用。由于ISO 17894《船用可编程电子系统的开发与使用准则(general principles for the development and use of programmable electronic systems in marine applications)》[11]源自IEC 61508,《ISDS》涉及的RAMS也与ISO 17894保持一致。ISO 17894为船用可编程电子系统的开发与使用提供了一系列强制性原则、推荐标准以及相关指南,其中船用可编程电子系统的产品原则共有11条,船用可编程电子系统的生命周期原则共9条。涉及安全性的原则是原则1及原则2;涉及功能性的原则是原则3及原则4;涉及性能与可靠性的原则是原则5、原则6及原则7;涉及可操作性的原则是原则8、原则9及原则10。ISO 17894中的附录B对这些原则有具体的指导。
3.2.3 IEEE 828
《ISDS》中的配置活动参考了IEEE828《系统和软件工程的配置管理(IEEE standard for configuration management in systems and software engineering)》[12]。IEEE 828制定了用于系统与软件工程配置管理过程的最低要求,提出了配置管理活动的内容、发生在生命周期进程的哪个过程以及所需的计划和资源,描述了一个配置管理计划的内容区域。IEEE 828中附录D详细介绍了配置管理计划;配置管理用到的配置项的识别标准;影响配置管理计划的局限性和假设;配置管理的职责和权限;项目组织;配置管理责任;可适用的政策、指令和规程;计划的活动、时间表和资源以及配置管理计划的维护等方面的内容,《ISDS》开发集成软件系统项目的生命周期如图1所示。
图1 《ISDS》开发集成软件系统项目的生命周期
3.3 美国船级社指南《ISQM》及其参考标准
《ISQM》中,Systems Development Life Cycle(SDLC)是计算机控制系统软件从开发到报废的工程计划过程,包括概念阶段,需求和设计阶段,建设阶段、验证确认与移交阶段、运行与维护阶段。《ISQM》在SDLC的每一个阶段,指定给项目参与方要执行的活动,这些活动明确了在每个阶段中项目参与方需要担任的角色及应交付的成果。项目参与者包括启动系统所有者、系统集成商、供应商、系统用户、第三检验方以及独立审核组织。所有者是启动项目并提供资金的组织,所有者可以选择船舶建造集成商负责交付遵循《ISQM》的控制系统,也可以选择系统集成商验证集成系统,或者选择第三方来验证集成系统;系统集成商负责开发、设计集成系统;供应商是在系统集成商或船厂的协调下集成系统组件或提供软件;集成控制系统的用户是钻井公司或船员组织,在系统运行与维护阶段承担责任;第三检验方可能是系统集成商组织的一部分,也可能是独立的,具体由所有者指定,第三检验方使用闭环、软件在环、硬件在环或者这3种方法的组合来验证软件的开发与集成是否遵循软件需求说明书、软件设计说明书;独立审核组织负责监督各组织(包括供应商)遵循《ISQM》指南的情况,是独立于系统集成商的软件开发团队,在独立审核活动中协调ABS、所有者和集成商三者。ABS负责审核控制系统开发期间的文档,监督验证测试活动,对满足要求的系统授予入级符号,《ISQM》系统开发生命周期如图2所示。
图2 《ISQM》系统开发生命周期
美国船级社在定制《ISQM》时参考了国家标准化组织(ISO)、国际电工委员会(IEC)、电气与电子工程师协会(IEEE)等发布的关于系统与软件的相关标准。
3.3.1 IEEE 12207
《ISQM》中的SDLC的制定参考了IEEE 12207《系统与软件工程-软件生命周期过程(systems and software engineering-software life cycle processes)》[13]。IEEE 12207为软件生命周期过程的建立提供了基本框架,包括软件产品的供给、研发、操作、维护以及配置过程中适用的流程、活动和任务;标准IEEE 12207还规定了技术过程,包括系统架构设计过程、系统需求分析过程、利益相关者需求的定义过程等。系统架构设计过程的活动和任务包括架构的建立、评估。系统需求分析过程的活动和任务包括需求规范、需求评估。利益相关者需求的定义过程的活动和任务包括:利益相关者识别、需求识别、需求评估、需求批准和需求记录。
3.3.2 IEC 61508 & IEC 61511
《ISQM》中关于系统的可靠性、可用性、可维护性及安全性的要求参考了IEC 61508《电气/电子/可编程电子安全系统的功能安全(functional safety of electrical /electronic /programmable electronic safety related systems)》标准、IEC 61511《过程工业领域安全仪表系统的功能安全(functional safety-safety instrumented systems for the process industry sector)》[14]。IEC 61508为系统的所有安全生命周期活动提出了方法,为所有安全系统制定合理一致的方针。标准IEC 61508还为E/E/PE安全系统每一个安全功能的安全集成需求指定了安全集成等级,可用来衡量在规定的时间和条件下,E/E/PE安全系统圆满执行指定安全功能的可能性。共分4个等级,等级四为最高等级,等级一为最低等级,安全集成等级越高,安全系统执行指定安全功能失败的可能性越低。IEC 61511是作为IEC 61508在过程领域的实现而制定,给出了安全仪表系统的规范、设计、安装、运行和维护要求,这确保了该系统能把过程置于或保持在某个安全状态。IEC 61511共分为3部分:第一部分涉及支持部分中的规范性引用文件,定义和缩略语,符合性,功能安全管理,安全生命周期要求,验证,信息要求,差异,还包括技术要求中的指定整体安全要求(概念、范围定义、危险和风险评估),给仪表安全功能分配安全要求和指定安全要求规范,安全仪表系统设计阶段,安全仪表系统软件设计阶段,安全仪表系统的工厂验收测试、安装、调试运行和安全确认,安全仪表系统的运行和维护、修改和改型、停用或处理;第二部分属于支持部分,涉及IEC 61511的应用指南;第三部分属于支持部分,涉及确定所要求的安全完整性等级的指南。
3.3.3 IEEE 1074 & IEEE 14764
IEEE 1074《开发软件生命周期过程(developing software life cycle processes)》[15]补充了标准IEEE 12207中提出的生命周期过程的实施细节。IEEE 1074基于各组织的任务、目标和资源选择软件项目生命周期模型(software project life cycle model, SPLCM),并管理软件开发和维护过程。标准IEEE 1074为创建软件项目生命周期过程(software project life cycle process, SPLCP)提供流程,为软件生命周期建立普通框架,可以应用于:研发、操作和维护软件,管理、控制和改善流程。IEEE 14764《软件工程—软件生命周期过程—维护(software engineering-software life cycle processes-maintenance)》[16]提供了管理和执行软件维护活动的过程,定义了软件维护的活动和任务、维护活动的要求。在维护过程中强调以下方面:软件产品的可维护性、对维护服务模型的需要、对维护策略和计划的需要。
3.3.4 IEEE 730、IEEE 829 & IEEE 1016
《ISQM》中的计划文档、测试文档以及软件设计说明书的规范分别参考了IEEE 730《软件质量保证计划标准(IEEE standard for software quality assurance plans)》[17]、IEEE 829《软件与系统测试文档标准(standard for software and system test documentation)》[18]、IEEE 1016《信息技术—系统设计—软件设计说明书(standard for information technology-systems design-software design descriptions)》[19]。IEEE 730帮助决定软件质量保证计划(SQAP)的内容,并为这个计划的准备和评估提供一个标准。该标准为制订软件质量保证计划及软件的开发和维护提供依据。标准要求软件质量保证计划应该由软件开发单位负责软件质量保证的机构或个人制定。IEEE 829建立了能够支持软件生命周期进程中测试的进程、活动及任务的一般框架,定义了主测试计划文档、等级测试计划文档、与测试相关的其他文档等的内容与使用。IEEE 829的内容包括条款、图、表格及附录。IEEE 1016描述了软件设计以及一个软件设计说明书,它的第4章给出了设计观点、设计视图、设计原理等,第5章给出了设计视角,这个设计视角包括:背景、组成、逻辑、依赖关系、界面、结构、算法、来源等。
4.1 可简化软件集成
软件是海上单元系统运行的关键。在海洋工程中,对于钻井等生产系统而言,遵循相互独立的软件集成过程,可改善系统之间的可靠通信速度。本研究第1部分中的集成软件系统相关认证标准提供了一种在设计过程开始时就制定接口规范的方法,这样,在软件研发阶段就能够尽早发现软件问题,在开发阶段可以采取有效方案来解决该软件问题、管理项目和进度风险;另一方面,验证软件集成活动的计划、执行和维护是否是根据最佳实践过程实施的,能够进一步降低接口数量,简化软件集成。
4.2 可缩短停机时间
造成海洋工程设施停机的诸多原因中,集成软件系统中的软件漏洞和软件故障所占比重较大,在项目开发中使用相关认证标准,可以最大限度地降低软件漏洞对项目进度的影响,而且可以避免预算超支。另一方面,使用集成软件系统的相关认证标准还可使得软件的测试更加全面,能够保证在软件调试之前就可检测到软件漏洞,并加以修复;在系统运行过程中,可使软件升级变得方便,而且有助于缩短由于软件冲突导致的系统停机时间。
4.3 可降低风险
软件验证包括使用一系列测试用例和运行该软件来发现软件代码中的错误,由于不同的软件供应商有各种要求和内在的限制,这使得寻找修改代码错误的有效且具体的方案尤为必要。关于软件漏洞与错误的统计资料表明,相比软件开发过程中检测到的软件自身的功能性问题,调试期间的软件更新会引入更多不可预知的错误。遵循集成软件系统的相关认证标准有助于软件系统高效、无间断的运行,满足海上单元对于集成系统安全性、可靠性和运行效率的要求,从而可降低海上单元由软件故障造成的风险。
4.4 可改善系统管理
集成软件系统试运行期间软件质量的维护具有挑战性,由供应商制定的软件更新、软件补丁通常会将错误引入系统,并引起操作问题。集成软件系统的上述相关认证国际标准/指南为系统提供了一种供应商软件更新的管理方法,该方法可以根据集成软件系统的上述相关认证标准的要求开发文档,判断软件升级是否与其他集成系统存在潜在的冲突,进而降低软件质量管理的成本,同时可改善系统的管理。
集成软件系统在海上单元中的使用越来越普及,由软件故障导致的系统故障,进而造成的海上单元停机或其他事故已成为亟须解决的问题。本研究分别对国际船级社协会、挪威船级社、美国船级社发布的集成软件系统的相关标准进行了简要分析,表明了制定与使用相关集成软件系统的认证标准,能够帮助船厂、船东与供应商等,在系统软件设计、建设过程中及运行阶段,更好地对系统进行开发、测试与维护,对完善我国海上单元集成软件系统的入级规范具有一定的指导意义。
[1] SØRENSEN A J.A survey of dynamic positioning control systems[J]. Annual Reviews in Control,2011,35:123-136.
[2] SKJETNE R,EGELAND O, Hardware-in-the-loop testing of marine control system[J].Modeling, Identification and Control, 2006,27(4):239-258.
[3] LARSEN W.Dropping downtime [EB/OL ].(2010-10- 25) [2015-03-05].http://www.oedigital.com/technology/automation/item/222-dropping-downtime.
[4] MICHAEL J.Roa, Milton Korn ABS guides for integrated software quality management (ISQM) and systems verification (SV) [EB/OL] .(2013-05-28) [2015-03-05].http://www.navalengineers.org/ProceedingsDocs/IntelligentShips/ISSX/B1_Roa_Paper.pdf.
[5] 挪威船级社DNV. Integrated Software Dependent Systems[S].2012.
[6] 船级社动态.DNV推出新版ISDS标准[J].船舶标准化工程师, 2013(4):6.
[7] 美国船级社ABS.Integrated Software quality management[S].2012.
[8] 国际电工委员会.IEC 15288《系统工程 -系统生命周期过程(systems engineering-system life cycle processes)》[S].2008.
[9] 电气和电子工程师协会.IEEE 29148《系统与软件工程-生命周期过程-需求工程(systems and software engineering-life cycle processes-requirements engineering)》[S].2011.
[10] 国际电工委员会.IEC 61508《电气/电子/可编程电子安全系统的功能安全(functional safety of electrical/electronic/programmable electronic safety related systems)》[S].2010.
[11] 国际标准化组织.ISO 17894《船用可编程电子系统的开发与使用准则(general principles for the development and use of programmable electronic systems in marine applications)》[S].2011.
[12] 电气和电子工程师协会.IEEE 828《系统和软件工程的配置管理(IEEE standard for configuration management in systems and software engineering)》[S].2012.
[13] 电气和电子工程师协会.IEEE 12207《系统与软件工程-软件生命周期过程(systems and software engineering-software life cycle processes)》[S].2008.
[14] 国际电工委员会.IEC 61511《过程工业领域安全仪表系统的功能安全(functional safety-safety instrumented systems for the process industry sector)》[S].2009.
[15] 电气和电子工程师协会.IEEE 1074 《开发软件生命周期过程(eveloping software life cycle processes)》[S].2006.
[16] 电气和电子工程师协会.IEEE 14764《软件工程—软件生命周期过程—维护(software engineering-software life cycle processes—maintenance)》[S].2006.
[17] 电气和电子工程师协会.IEEE 730《软件质量保证计划标准(IEEE standard for software quality assurance plans)》[S].2002.
[18] 电气和电子工程师协会.IEEE 829《软件与系统测试文档标准(standard for software and system test documentation)》[S].2008.
[19] 电气和电子工程师协会.IEEE 1016《信息技术—系统设计—软件设计说明书(standard for information technology-systems design-software design descriptions)》[S].2009.
中央高校基本科研业务费专项基金资助项目(3132014332);工信部项目“海洋工程装备设计建造标准体系顶层研究”(工信部联装〔2012〕534号).
P75
A
1005-9857(2015)12-0068-06