软件开发安全1

  • A+
所属分类:安全开发

1. 瀑布模型

  • 概念定义

  • 功能需求确定

  • 控制规范的开发设计审查

  • 代码审查走查

  • 用户验收测试

瀑布模型中,维护和变更管理只准许开发人员后退一个阶段。瀑布模型并没有对开发周期后期发现错误做出相应规定。


软件开发安全1

1.1 概念定义 System Requirement

  • 系统开发的概念定义阶段涉及为系统创建基本的概念声明。简而言之,是由所有利益相关方(开发人员、客户和管理人员)协商的简单声明,规定了项目用途以及系统大体需求。

  • 概念定义是一份非常高级的用途声明,概念声明是一个摘要或简介,它使得外行可以在短时间内对项目具有高度概括性的理解。(项目章程

  • 简单地定期读概念声明能够帮助开发团队重新瞄准自己的目标。

1.2 功能需求确定Software requirement

  • 一旦所有的利益相关方都同意概念声明,那么开发团队就该着手开始功能需求确定过程。在这个阶段,具体的系统功能会被列出来,并且开发人员开始考虑系统的这些部分应当如何互相协作以便满足功能需求。从这个阶段得出的是功能需求文档,它们列出了具体的系统需求。

  • 确保所有利益相关方都同意功能需求文档是十分重要的。

  • 在最后的测试和评估阶段,项目管理者应当使用这份文档作为核对清单,确保所有功能需求得到满足。

1.3 控制规范的开发

  • 树立起安全意识的组织还会确保从最早的开发阶段开始就将怡当的控制设计到所有系统中。在生命周期模型中,具有控制规范的开发阶段常常是非常有用的。这个阶段在功能需求开发阶段后不久开始,并且往往在设计和审核阶段继续进行。

  • 恰当的访问控制必须被设计到所有的系统中,从而确保只有授权的用户被准许访问系统,并且不允许他们超出授权级别。

  • 系统必须通过使用正确的加密和数据保护技术来维护关键数据的机密性。

  • 系统不仅应当提供审计跟踪来强制实施个人的可问责性,而且应当提供对非法活动的检测机制。最后根据系统的危险程度,必须解决可用性和容错问题。


1.4设计评审

  • 设计人员要正确地确定系统的不同部分将如何相互操作以及如何布置模块化的系统结构。在这个阶段,设计管理团队通常为不同的团队设置具体的任务,并且布置编码里程碑的初步完成时间。

  • 设计团队完成正式的设计文档后应当与利益相关方召开评审会议,确保每个人都同意此过程在按部就班地进行,在向着成功开发具有所期望功能的系统的方向迈进。


1.5代码审查

  • 一旦利益相关方为软件设计提供了支持,那么软件开发人员就可以开始编写代码。在编码过程的不同里程碑,项目经理应该安排几次代码审查走查会议。这些技术性会议通常只涉及开发人员,他们根据特定模块的代码副本进行走查寻找逻辑流中的问题或其他设计/安全性缺陷。这些会议有助于确保不同开发团队开发的代码依据规范执行。

    软件开发安全1


1.6 用户验收测试(User Acceptance Tests)

  • 现在要进入的是系统测试复审阶段。最初,大多数组织由开发人员执行系统的初始测试,从而找出一些明显的错误。

  • 一旦这个阶段完成,代码可能会转移到部署。与任何关键的开发过程一样,保存一份书面的测试计划和测试结果是非常重要的,可供将来审查

软件开发安全1

1.7 维护和变更管理

一旦系统可以操作,面对操作、数据处理、存储和环境需求的改变,为了确保持续运作,有必要进行多样的维护工作。

任何代码的变更都要通过正式的变更管理流程来进行。


2. V模型

软件开发安全1

  • V模型在软件开发过程中不再按照平面的线性方法,而是遵循V型格式的步骤,这种模型强调产品在每个阶段进行验证和确认,并为每个编码阶段实施提供了正式的开发测试计划。

  • V模型部署了执行过程的顺序步骤。在下一阶段开始前,之前的每个阶段必须完成。但由于形模型需要在整个开发阶段不断进行测试,而不仅是等到项目结束时才开展,所以它比瀑布模型有更高的成功率。

3. 原型法

  • 快速原型的特点是让开发团队快速设计原型(样品),进而验证当前对项目需求理解的正确性。

  • 演化原型开发的目标是渐进式改进。原型将持续改进,直至达到最后的产品阶段。每个开发阶段获得到的反馈都用来改进原型,逐渐实现客户的需求。

  • 运行原型是演化原型方法的延伸。当收集到更多的反馈数据时,使用这两个模型(运行型与演化型)方法都能提高原型的质量,但是运行原型被设计为微调后即可安装在生产环境中。

  • 快速原型的开发是为了能够快速理解建议性的解决方案,演化型原型是在实验室环境中创建和改进的,而运行型原型是在生产环境中开发和改进的。

4. 增量模型

如果一个开发团队遵循增量模型,这能让他们在一个软件开发的全过程进行多个开发周期。这类似于“多个瀑布”周期出现在同一个软件上,在开发阶段不断走向成熟。在第一次迭代时创建了一个版本的软件,然后它会经历下一次迭代的每个过程(需求分析、设计、编码、测试和实施)。该软件将在迭代阶段继续,直到获得满意的产品。展示了该模型的原理。

软件开发安全1

6.螺旋模型

  • 螺旋模型使用了一个迭代方法来开发软件并把重点放在风险分析上。该模型由4个主要阶段组成:计划、风险分析、开发和测试、评估。

  • 你获取初步认识和项目需求,设计开发说明书映射这些需求,开展风险分析,构建原型说明书,验证你的说明书,建立一个开发计划,整合新获取的信息,使用新信息开展新的风险分析,创建原型,测试原型,集成结果数据到过程中等。采集到更多的项目信息时,就会将它集成到风险分析过程中,改进原型,测试原型,让每一步更加细化,直到有一个完整的产品。

软件开发安全1


7. 快速应用开发

  • 快速应用开发模型结合了原型化方法和以加速软件开发过程为宗旨的法代开发方法。为帮助定义软件要实现的最终结果,开发过程从创建数据模型和业务流程模型开始。

  • RAD模型的主要的原因是,如果遵照其他模型,在软件彻底开发完毕时,需求往往发生了变化,开发人员不得不回到图板重新开始。RAD模型允许客户在开发阶段参与其中,目的在于最终结果能以更现实的方式满足他们的需求。

软件开发安全1


本文始发于微信公众号(网络安全等保测评):软件开发安全1

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: