GJB2786A2018.09军用软件开发通用要求提纲第1章范围第2章引用文件第3章术语、定义和缩略语第4章一般要求第5章详细要求附录7个附录适用范围适用于需方和开发方获取、开发及维护军用软件(含固件中的软件)。系统分两类:对于硬件---软件系统,标标准适用于其中的软件元素;对于软件系统,标准适用于整个系统。引用文件GB/T11457软件工程术语GJB438B-2009军用软件开发文档使用要求术语、定义行为设计构建版计算机软件配置项(CSCI)测度测量度量合格性测试再工程•可重塑软件产品•软件•软件开发•软件产品•软件保障•软件移交•软件单元略缩语一般要求软件开发过程软件开发一般要求软件开发过程4.1---软件开发过程开发方应建立一个与合同要求一致的软件开发过程。软件开发过程可包括下列活动:c~n为软件开发的基本活动;o~t为软件开发的支持活动;其余为软件开发管理活动。可重叠可迭代可裁剪软件开发一般要求4.2.1---软件开发方法软件开发的全部活动,开发方应采用文档化的系统方法。这些方法应在软件开发计划中给与描述或引用;软件开发一般要求4.2.2---软件产品标准开发方应使用标书需求、设计、编码、测试用例、测试规程和测试结果的标准;这些标准应在软件开发计划中给予描述或引用。软件开发一般要求4.2.3---可重用软件产品采用可重用软件产品开发方应标识和评价为满足合同要求而使用的可重用软件产品;只要切实可行,就应该采用满足准则的可重用软件产品;开发可重用软件产品合同期间,开发方应评估开发可重用软件产品的可行性、成本及可能产生的效益,并向需方说明费效比且与项目目标相一致的情况合同中也可以按要求开发专门开发可重用软件产品软件开发一般要求4.2.4---关键需求处理安全性保证开发方应将其失效可能导致危险的系统状态的CSCI或其中的部分标识为安全关键的;开发方应制定安全性保证策略(包括测试和分析),以排除或最大限度地降低在这种软件的需求、设计、实现和操作规程中潜在的危险;该策略应包括软件安全性大纲,并纳入系统安全性大纲(若已有)中;开发方应在软件开发计划中记录该策略,实施该策略,并提供实施该策略的证据;实施该策略的证据应作为所要求的软件产品的一部分。保密性保证开发方应将其失效可能导致破坏系统保密性的CSCI或其中的部分标识为保密关键的;开发方应制定保密性保证策略,以排除或最大限度地降低这种软件的需求、设计、实现和操作规程所引起的破坏系统保密性的可能性;开发方应在软件开发计划中记录该策略,实施该策略,并提供实施该策略的证据;实施该策略的证据应作为所需求的软件产品的一部分。其它关键需求的保证如果一个系统依赖于软件来满足在合同和系统规格说明中认为是关键的其它需求,那么开发方应标识其失效可能导致违背这些关键需求的CSCI或其中的部分;制定策略,用来保证使所标识软件的需求、设计、实现和操作不会发生这种违背或使其可能性最小。软件开发一般要求4.2.5---计算机硬件资源利用开发方应分析合同中关于计算机硬件资源利用方面的要求;开发方应在个CSCI之间分配计算机硬件资源;在合同期间监督这些资源的利用;必要时,为满足合同需求,应重新分配或标明需要的附加资源。软件开发一般要求4.2.6---决策理由的记录开发方应记录在软件需求分析、设计、实现和测试中作出重要决策的理由,这些记录对保障机构有用;决策理由应包括所考虑的折中情况、分析方法和决策所用的准则;这些理由应记录在文档、代码注释或其他将移交给保障机构的媒体中;“重要决策”的含意应在软件开发计划中加以描述,作出这些决策的理由应在软件开发计划中指出。软件开发一般要求4.2.6---便于需方评审开发方应为需方或其授权代表访问有关设施提供方便5、详细要求概述项目策划和监控软件开发环境建立软件需求分析软件设计软件实现和单元测试单元集成和测试CSCI合格性测试CSCI/HWCI集成测试系统合格性测试软件使用准备软件移交准备软件验收支持•软件配置管理•软件产品评价•软件质量保证•纠正措施•联合评审•测量和分析•风险管理•保密性有关活动•分承制方管理•与软件独立验证和确认机构联系•与相关开发方协调•项目过程改进详细要求5.1---概述软件开发过程包括5.2~5.27规定的26项活动,描述顺序并不表示活动执行的顺序,活动执行顺序依赖于所选择的生存周期模型;要求开发方参与软件所在系统层面的活动;项目策划和监管5.2.1---软件开发策划开发方应为实施本标准所要求的活动和合同中其他有关软件需求的各项活动制定计划;该策划应与系统级策划一直,并应包括GJB438-2009中软件开发计划规定的全部适用项;计划的一些部分可以分开单独装订或维护;关于项目策划的进一步要求,参见GJB5000A-2008中6.4项目策划过程域。项目策划和监管5.2.2---CSCI测试策划开发方应制定CSCI合格性测试计划。该计划应包括GJB438B-2009中软件测试计划规定的全部适用项;项目策划和监管5.2.3---系统测试策划开发方应参与制定系统合格性测试计划。对软件系统而言,该计划应包括GJB438B-2009软件测试计划规定的所有适用项;项目策划和监管5.2.4---软件安装策划开发方应制定在合同规定的用户现场进行软件安装和培训的计划。该计划应包括GJB438B-2009中软件安装计划规定的全部适用项。项目策划和监管5.2.5---软件移交策划开发方应指明保障机构为完成合同规定的保障工作所需的全部软件开发资源;开发方应制定软件移交计划,以标识这些资源并说明向保障机构移交应交付项目所遵循的方法;该计划包括GJB438-2009中软件移交计划(STrP)规定的全部适用项。项目策划和监管5.2.6---计划的跟踪和修订在需方认可了5.2.1~5.2.5中的计划后,开发方应根据计划进行相关活动;开发方的管理者应按照软件开发计划规定的时间间隔检查软件开发过程;计划的修订都应得到需方的认可。软件开发环境建立5.3.1---软件工程环境开发方应建立、控制和维护软件工程环境(包括测试环境)。开发方应确保该环境的各组成部分都能执行其预定的功能;软件开发环境建立5.3.2---软件开发资料库开发方应建立、控制和维护一个软件开发资料库,用来管理软件、文档、其他中间的和最终的软件产品,以及相关的用以促进软件的有序开发和后续保障的工具和方法;在合同期内,开发方应维护软件开发资料库。软件开发环境建立5.3.3---软件开发文件开发方应为每个软件单元和每个CSCI建立、控制并维护软件开发文件;开发方应将有关软件开发的信息记录在相应的SDF中,并应在合同期内维护这些软件开发文件(SDF)。软件开发环境建立5.3.4---非交付软件开发方在交付软件的开发中可以使用非交付软件,但应保证交付软件在交付给需方后的运行和保障中不依颇于这些非交付软件,或能确保需方拥有或者可以得到同样的软件;开发方应确保用于项目的全部非交付软件执行其预定的功能。系统需求分析5.4.1---用户要求分析开发方应参与分析需方提供的用户要求,以了解用户需要。用户要求可以采取如下形式:系统需求分析5.4.2---运行方案开发方应参与定义和记录系统运行方案,其结果应包括GIB438B-2009中运行方案说明(OCD)规定的全部适用项。系统需求分析5.4.3---系统需求开发方应参与定义和记录系统要满足的需求以及保证每项需求得以满足所使用的方法;这些需求包括所要求的状态和方式、能力、外部接口、内部接口、内部数据、适应性、安全性、保密’性、环境、计算机资源、质量因素、设计和构造的约束、合格性、需求可追踪性等方面;其结果应包括GJB438B一2009中系统/子系统规格说明(SSS)规定的全部适用项系统设计5.5.1---系统级设计决策开发方应参与定义和记录系统级设计决策,其结果应包括GJB438B-2009中系统/子系统设计说明(SSDD)内有关系统级设计部分中全部适用项;有关接口设计可以包含在SSDD中,也可以包含在接口设计说明(IDD)中;有关数据库的设计可以包含在SSDD中,也可以包含在数据库设计说明中。系统设计5.5.2---系统体系结构设计开发方应参与定义和记录系统的体系结构设计(标识系统部件,包括硬件、软件、人工操作项及其接口,以及它们之间的执行的方案)以及系统部件与系统需求之间的可追踪性;其结果应包括GJB438B-2009中系统/子系统设计说明(SSDD)内有关体系结构设计和可追踪性方面全部适用项;其结果还应包括GJB438B~2009中软件研制任务书(SDTD)规定的全部适用项;有关接口设计可以包含在SSDD中,也可以包含在接口设计说明(IDD)中。软件需求分析5.6---系统需求分析开发方应定义和记录每个CSCI要满足的软件需求、保证每项需求得以满足所使用的方法以及CSCI需求与系统需求之间的可追踪性;软件需求包括要求的状态和方式、能力、外部接口、内部接口、内部数据、适应性、安全性、保密性、环境、计算机资源、质量因素、设计和实现约束、合格性、需求可追踪性等方面;软件需求分析的结果应包括GIB438B-2009中软件需求规格说明(SRS)规定的全部适用项;有关CSCI接口的需求可以包含在软件需求规格说明(SRS)中,也可以包含在接口需求规格说明(IRS)中。软件设计5.7.1---CSCI级设计决策开发方应定义和记录CSCI级设计决策(即关于CSCI行为设计的决策和其他对组成CSCI的软件单元的选择和设计有影响的决策),其结果应包括GIB4388-2009中软件设计说明(SOD)内有关CSCI级设计方面的全部适用项;有关接口的设计可以包含在SDD中,也可以包含在接口设计说明中;有关数据库的设计可以包含在SDD中,也可以包含在数据库设计说明中。软件设计5.7.2---CSCI体系结构设计开发方应定义和记录每个CSCI的体系结构设计(标识组成该CSCI的软件单元及接口,它们之间的执行的方案)和软件单元与CSCI需求之间的可追踪性;其结果应包括GIB438B一2009中软件设计说明(SDD)内有关体系结构设计和可追踪性方面的全部适用项;有关接口的设计可以包含在SDD中,也可以包含在接口设计说明中。软件设计5.7.3---CSCI详细设计开发方应编写和记录每个软件单元的说明F包括每个软件单元的设计决策和约束、接口和数据库的详细设计说明,其详细程度应达到能够根据说明进行软件实现;其结果应包括GIB438B-2009中软件设计说明(SDD)内有关详细设计方面全部适用工;有关接口的设计可以包含在SDD中,也可以包含在接口设计说明中;本身是数据库的软件单元或者是访问或操作数据库的软件单元的设计可以包含在SDD中,也可以包含在数据库设计说明(DBDD)中。软件实现和单元测试5.8.1---软件实现开发方应开发和记录与CSCI设计中每个软件单元相对应的程序;适用时,这项工作应包含下列活动:对计算机指令和数据定义进行编码,建立数据库,将数据值填入数据库和其他数据文件中,以及其他为实现设计所需的活动;对于需交付的软件,开发方如要采用非合同规定的程序设计语言,应经需方批准。软件实现和单元测试5.8.2---单元测试的准备开发方应为与每个软件单元相对应的软件制定测试计划(包括规定测试需求和进度)、准备测试用例(按照输入、预期的结果和评价准则进行描述)、测试规程和测试数据;测试用例应覆盖该单元详细设计的所有方面;开发方应在相应的软件开发文件(SDF)中记录这些信息。软件实现和单元测试5.8.3---单元测试的执行开发方应测试与每一个软件单元相对应的程序,测试应按照单元测试计划、用例和规程进行。软件实现和单元测试5.8.4---修改和回归测试开发方应根据单元测试的结果对软件进行必要的修改,并