4.2 软件开发的一般要求
4.2.1 软件开发方法
对软件开发的全部活动,开发方应采用文档化的系统方法。这些方法应在软件开发计划中给予描述或引用。
4.2.2 软件产品标准
开发方应使用表述需求、设计、编码、测试用例、测试规程和测试结果等的标准。这些标准应在软件开发计划中给予描述或引用。
4.2.3 可重用软件产品
4.2.3.1 采用可重用软件产品
开发方应标识和评价为满足合同要求而使用的可重用软件产品,并应按照软件开发计划的要求确定可重用软件产品的选择范围和评价准则。只要切实可行,就应采用满足准则的可重用软件产品。所采用的可重用软件产品还应满足合同中规定的有关权限的要求。
关于采用可重用软件产品需考虑的评价准则以及为采用可重用软件产品而对本标准所作的解释见附录B。
4.2.3.2 开发可重用软件产品
在履行合同期间,开发方应评估开发可重用软件产品的可行性、成本及可能产生的效益,并向需方说明费效比且与项目目标相一致的情况。
合同中也可以要求开发方专门开发可重用软件产品。
4.2.4 关键需求的处理
4.2.4.1 安全性保证
开发方应将其失效可能导致危险的系统状态(如导致意外死亡、伤害、财产损失或危害环境的状态) 的 CSCI 或其中的部分标识为安全关键的。如果有这种软件,开发方应制定安全性保证策略(包括测试和分析),以排除或最大限度地降低在这种软件的需求、设计、实现和操作规程中潜在的危险。该策略应包括软件安全性大纲,并纳入系统安全性大纲(若已有)中。开发方应在软件开发计划中记录该策略,实施该策略,并提供实施该策略的证据。实施该策略的证据应作为所要求的软件产品的一部分。
4.2.4.2 保密性保证
开发方应将其失效可能导致破坏系统保密性的 CSCI 或其中的部分标识为保密关键的。如果有这种软件,开发方应制定保密性保证策略,以排除或最大限度地降低这种软件的需求、设计、实现和操作规程所引起的破坏系统保密性的可能性。开发方应在软件开发计划中记录该策略,实施该策略,并提供实施该策略的证据。实施该策略的证据应作为所要求的软件产品的一部分。
4.2.4.3 其他关键需求的保证
如果一个系统依赖于软件来满足在合同和系统规格说明中认为是关键的其他需求,如可靠性,那么开发方应标识其失效可能导致违背这些关键需求的 CSCI 或其中的部分;制定策略,用来保证使所标识软件的需求、设计、实现和操作规程不会发生这种违背或使其可能性最小;开发方应在软件开发计划中记录该策略,实施该策略,并提供实施该策略的证据。实施该策略的证据应作为所要求的软件产品的一部分。
4.2.5 计算机硬件资源的利用
开发方应分析合同中关于计算机硬件资源利用方面的要求(如允许使用的最大处理器能力、内存容量、输入/输出设备能力、辅存设备能力和通信/网络设备能力)。开发方应在各 CSCI 之间分配计算机硬件资源,在合同期间监督这些资源的利用。必要时,为满足合同要求,应重新分配或标明需要的附加资源。
4.2.6 决策理由的记录
开发方应记录在软件需求分析、设计、实现和测试中作出重要决策的理由,这些记录对保障机构有用。决策理由应包括所考虑的折中情况、分析方法和决策所用的准则。这些理由应记录在文档、代码注释或其他将移交给保障机构的媒体中。
“重要决策”的含意应在软件开发计划中加以描述,作出这些决策的理由应在软件开发计划中指出。
4.2.7 便于需方评审
为了对合同所要求的软件产品及各项活动进行评审,开发方应为需方或其授权代表访问有关设施(如软件工程环境等)提供方便。