购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1 目的和概述

【标准内容】

目的:

定义系统的详细设计,以满足整个安全相关系统的安全需求。

概述:

安全需求包括实现和确保功能安全的所有需求。在安全寿命周期内,在各层次级别上对安全需求进行详细的阐述和规定。图2.1列出了安全需求的不同层次。安全需求开发过程的完整表述见本书2.2节。为了对安全需求进行管理,建议使用恰当的需求管理工具。

图2.1 安全需求构建

GB/T38874.3—2020的附录A给出了AgPL = e时的功能安全评估示例。

索引:本节标准内容源自GB/T38874.3—2020的5.1节和5.2节。

【解析】

1.V模型

V模型是一种软件开发方法,它将软件开发过程中的各个阶段及相应的测试阶段组织成一个V字形结构,从而形成一种直观、清晰的软件开发过程模型。V模型的背景可以追溯到20世纪80年代,当时欧洲各国开始将软件质量标准纳入国家标准,V模型就是其中一种被广泛采用的软件开发过程模型。软件开发的V模型如图2.2所示。

图2.2 软件开发的V模型

V模型的特点是以测试为中心,测试是贯穿整个软件开发过程的,它将软件开发过程划分为左侧的需求分析、设计及编码和右侧的组件测试、集成测试、系统测试、验收测试等过程,形成一个V字形结构。在V模型中,每个阶段都有对应的测试活动,代表了系统需求的追踪性,从需求分析阶段到设计阶段、实现阶段,测试活动始终是最重要的活动之一。也就是说,V模型注重从需求分析到测试的完整性,并在后续阶段的测试中验证前一个阶段的结果。这种测试活动的交叉验证使得V模型具有更高的可靠性和质量保证,从而可以有效降低软件开发风险。

V模型包括以下几个阶段。

(1)需求分析阶段:在需求分析阶段,软件开发团队与客户进行沟通和协作,分析和确定软件需求。在这个阶段,软件开发团队需要制定详细的需求文档,以确保软件开发工作符合客户的要求。在V模型中,需求分析阶段需要进行需求验收测试,测试的目的是验证需求是否完整、准确、一致和可行。

(2)设计阶段:在设计阶段,软件开发团队需要根据需求文档进行详细的设计工作,包括系统功能设计、系统技术设计等。在V模型中,设计阶段需要进行系统测试、集成测试,测试的目的是验证软件设计是否满足需求,是否可行、正确和一致。

(3)编码阶段:在编码阶段,软件开发团队需要根据设计文档进行编码工作,实现软件的功能。在V模型中,编码阶段需要进行组件测试,测试的目的是验证软件的各个组件是否符合设计要求,是否能够正确地实现功能。

(4)集成测试阶段:在集成测试阶段,软件开发团队将不同的模块进行集成,并进行测试。在V模型中,集成测试阶段需要进行集成测试,测试的目的是验证软件集成后是否能够满足系统要求,是否稳定、可靠和可维护。

(5)系统测试阶段:在系统测试阶段,测试团队将对整个软件系统进行测试,并验证系统是否符合客户的要求。在V模型中,系统测试阶段需要进行系统测试,测试的目的是验证软件系统是否满足需求,是否符合用户的要求,是否具有高质量和可靠性。

(6)验收测试阶段:在验收测试阶段,客户或最终用户对软件进行验收测试,以验证软件是否能够满足其要求和需求。在V模型中,验收测试阶段需要进行验收测试,测试的目的是验证软件是否符合用户的要求,能否满足用户的期望,是否达到标准。

V模型是一种软件开发过程模型,具有以下特征。

(1)明确性和可控性:V模型以测试为中心,从需求分析到验收测试的每个阶段都有相应的测试活动,使软件开发过程更加明确和可控。V模型将软件开发过程划分为顶部和底部两个部分,顶部代表需求分析和设计阶段,底部代表实现阶段。这种明确的划分和测试活动贯穿整个软件开发过程,使软件开发过程更加可控和可预测。

(2)可追溯性:V模型中的中心轴代表系统需求的追踪性,可以确保所有的需求都得到理解和满足,也可以确保测试的完整性。在V模型中,每个阶段都有相应的测试活动,测试活动的结果可以反馈到前一个阶段,以确保整个软件开发过程具有可追溯性。

(3)风险管理:通过V模型中的集成测试和系统测试等活动,软件开发团队可以在早期识别和处理问题,从而降低软件开发风险。在V模型中,测试活动的重要性得到了充分的体现,测试活动有助于软件开发团队识别和处理问题,从而降低软件开发风险。

(4)效率提升:V模型中的测试活动始终是最重要的活动之一,测试活动的效率和质量能够对整个软件开发过程产生积极的影响。在V模型中,测试活动的重要性得到了充分的体现,提高测试活动的效率和质量,能够帮助软件开发团队提高软件开发效率和质量,从而加快产品的上市。

(5)可重用性:V模型中的设计阶段和实现阶段可以产生可重用的设计及代码,从而提高软件开发效率和质量。在V模型中,设计阶段和实现阶段的重要性得到了充分的体现。

(6)质量保证:V模型通过测试活动和质量保证活动,可以确保开发出来的系统能够符合用户的要求、满足用户的期望,具有高质量和可靠性。在V模型中,测试活动和质量保证活动的重要性得到了充分的体现,测试活动可以确保开发出来的系统具有高质量和可靠性,质量保证活动可以确保软件开发过程的质量。

(7)适用性广泛:V模型适用于各种类型的软件开发项目,包括传统的瀑布式开发项目和敏捷式开发项目。在V模型中,需求分析和测试活动的重要性得到了充分的体现,这使得V模型特别适用于对软件质量和可靠性有较高要求的项目。

(8)便于管理和控制:V模型中的测试活动的重要性在各个阶段都得到了充分的体现,这使得项目经理和测试经理能够更加方便地管理、控制测试活动。通过V模型中的测试活动,测试经理可以及时发现和处理问题,从而确保项目能够按照计划进行。

(9)提高软件开发团队的沟通和协作能力:V模型中不同阶段之间的测试活动需要相关人员进行交互和沟通,这使得软件开发团队的沟通和协作能力得到提高。通过V模型中的测试活动,不同软件开发团队之间能够更加紧密地合作,从而提高软件开发效率和质量。

(10)降低测试成本和减少测试时间:通过V模型中的集成测试和系统测试等活动,软件开发团队可以在早期发现和处理问题,从而降低测试成本和减少测试时间。在V模型中,测试活动的重要性得到了充分的体现,测试活动可以帮助软件开发团队识别和处理问题,从而降低测试成本和减少测试时间。

总之,V模型是一种有效的软件开发过程模型,它将软件开发过程和测试过程结合起来,从而提高了软件开发过程的质量和可靠性,还提高了软件开发效率,使整个软件开发过程更加规范和有序。它可以帮助软件开发团队提高软件开发效率和质量,降低软件开发风险和测试成本,减少测试时间,提高软件开发团队的沟通和协作能力。

2.安全相关系统开发的V模型

安全相关系统开发的V模型是一种软件开发过程模型,它在传统V模型的基础上加入了针对安全性的特殊要求,包括系统安全规范、风险评估、安全需求、安全设计和测试等阶段。该模型强调在整个软件开发过程中将安全性纳入考虑,以保障系统的安全性。

安全相关系统开发的V模型包括以下几个阶段。

(1)安全规范阶段:在此阶段,系统开发团队将定义开发过程中需要遵循的安全规范和标准,以确保系统在设计和实现过程中具备足够高的安全性。

(2)风险评估阶段:在此阶段,系统开发团队将对系统进行风险评估,以识别潜在的安全威胁,并为后续的安全设计和测试活动提供依据。

(3)安全需求阶段:在此阶段,系统开发团队将定义系统的安全需求,包括安全功能、性能、可用性和可靠性等方面的需求,以满足系统安全性能要求。

(4)安全设计阶段:在此阶段,系统开发团队将设计系统的安全功能和架构,包括选择合适的安全机制、实现方案和技术等。

(5)安全测试阶段:在此阶段,系统开发团队将进行安全测试,包括对安全需求的验证、对安全机制的评估、对系统的渗透测试及安全漏洞的发现和修复等。

(6)系统集成测试阶段:在此阶段,系统开发团队将进行系统集成测试,包括对安全性进行测试和验证,以确保系统具备足够高的安全性。

(7)系统验收测试阶段:在此阶段,系统开发团队将进行系统验收测试,以确认系统符合预期的安全要求和功能需求,并且能够满足用户的期望和要求。

通过以上阶段,安全相关系统开发的V模型能够确保系统开发团队在整个开发过程中考虑了安全性,并采取了必要的措施来保护系统免受安全威胁。

3.安全需求及安全需求阶段

系统的安全需求是指对系统安全性能、特征、功能、接口、限制、要求等进行描述和定义,以确保系统在操作、使用、存储和传输信息的过程中,具备相应的安全保障措施,能够防范和应对各种安全威胁与攻击。系统的安全需求的必要性主要体现在防范和应对各种安全威胁与攻击、保障数据安全、提高系统的可靠性和可用性、遵循相关法律法规、降低安全风险等方面。系统的安全需求能够提前识别和防范安全风险,从而降低安全风险,避免或减少潜在损失。系统的安全需求对于确保系统的安全性、稳定性和可用性具有重要意义,是软件开发中必不可少的一环。

在安全相关系统开发的V模型中,安全需求阶段是非常关键的一个环节。在此阶段,系统开发团队需要识别和定义系统的安全需求,包括安全功能、性能、可用性和可靠性等方面的需求,以满足系统安全性能要求。安全需求阶段的主要活动包括以下几方面。

(1)确定系统的安全需求:系统开发团队与系统所有利益相关者一起讨论,以确定系统的安全需求。这些需求包括但不限于身份验证和授权、加密、安全审计等。假设我们正在开发一个医疗健康领域的系统,需要确保该系统能够保护患者的隐私和数据安全。此时,系统开发团队将与所有系统利益相关者一起讨论,以确定该系统的安全需求。以下是一些可能的需求。

· 身份验证和授权:系统需要对用户进行身份验证和授权,以确保只有授权用户才能访问患者的敏感信息。

· 加密:系统需要对敏感信息进行加密,以防止未经授权的用户访问患者的个人数据。

· 安全审计:系统需要记录所有的访问和操作,并在需要时提供审计日志。

· 安全性能:系统需要保证在大量用户同时访问时的安全性能,以确保系统能够快速响应用户的请求并提供可靠的服务。

· 数据备份和恢复:系统需要定期备份数据,并确保在灾难性事件发生时能够对数据进行恢复。

(2)制定安全需求文档:系统开发团队要制定一份安全需求文档,用于记录系统的所有安全需求。该文档应该包括详细的安全功能需求、性能要求、可用性和可靠性要求等信息,以便后续的开发和测试团队使用。例如,系统开发团队可以编写一份安全需求规范,其中包括系统的安全功能需求、性能要求、可用性和可靠性要求等信息。

(3)审核和验证安全需求文档:系统开发团队要对安全需求文档进行审核和验证,以确保所有的安全需求都得到了充分的考虑和确认。例如,系统开发团队可以与管理团队和用户讨论,以确保自己正确地理解了系统的安全需求,并且自己的解决方案符合他们的要求和期望。

(4)更新和维护安全需求文档:在安全相关系统开发的后续过程中,如果安全需求发生变化,系统开发团队应该及时更新和维护安全需求文档。例如,系统开发团队发现系统需要满足更严格的数据隐私法规,则应该更新安全需求文档以确保自己的解决方案能够满足这些法规的要求。

安全需求阶段是安全相关系统开发过程中非常重要的一环。通过对系统的安全需求进行识别、定义、审核和验证,可以确保系统能够满足用户的要求和期望,提高系统的安全性和可靠性,从而降低安全风险和减小损失。

4.安全寿命周期

安全寿命周期是由微软公司于2004年提出的一种软件安全管理方法,其目的是在软件开发的全过程中,不断地考虑和实施相应的安全措施,以确保软件具备必要的安全功能和性能。安全寿命周期是一种综合性的、全方位的软件安全管理方法,旨在提高软件的安全性、稳定性和可靠性,降低软件开发和维护过程中的安全风险和成本。

安全寿命周期的定义包括以下几方面。

(1)安全寿命周期用于在软件开发过程中,将安全设计、开发、测试、部署、维护等环节贯穿其中,以确保软件具备必要的安全功能和性能。

(2)安全寿命周期是一种综合性的、全方位的软件安全管理方法,它将安全性纳入软件开发和维护的全过程,以确保软件的安全性、稳定性和可靠性。

(3)安全寿命周期的实施需要遵循一系列安全标准,以确保软件的安全性、稳定性和可靠性。 xPaYJApY4gMqOff8ays9wa0WdwE0qbugMyuN5jZf3t/z/i2EotXFs7GdeprO9Pjq

点击中间区域
呼出菜单
上一章
目录
下一章
×