什么是软件开发生命周期?

什么是软件开发生命周期?

SDLC是管理创建和维护软件过程的一系列步骤。

SDLC定义:

SDLC代表软件开发生命周期。软件开发生命周期本质上是一系列步骤或阶段,它们为开发软件并在整个生命周期中管理软件提供框架。虽然没有特定的技术或单一方法来开发应用程序和软件组件,但组织使用已建立的方法,并遵循模型来应对不同的挑战和目标。这些方法和模型通常围绕标准,例如ISO / IEC 12207,该标准为软件系统的开发,获取和配置建立了指导。

软件开发方法

最常用的软件开发模型包括:

瀑布开发过程瀑布:这种技术将传统方法应用于软件开发。不同学科和单位的小组完成项目的整个阶段,然后再进入下一步或下一阶段。因此,业务结果是在单个阶段而不是在迭代框架中提供的。

敏捷开发流程敏捷:适应性规划,演化开发,快速交付,持续改进以及对外部因素的高度快速和灵活的响应都是敏捷方法的关键组成部分。开发人员依靠高度协作,跨职能的框架 - 具有明确的原则和目标 - 来加速开发过程。

精益软件开发精益软件开发(LSD):该方法依赖于精益制造环境中使用的技术和实践来建立更有效和快速的开发文化。这些技术和实践包括消除浪费,放大学习,在过程的最后阶段做出决策,快速交付,赋予团队权力,拥抱诚信以及尽可能广泛地查看开发。

DevOps软件开发DevOps:该技术结合了“开发”和“操作”功能,以构建专注于协作和通信的框架。它旨在实现流程自动化,并引入一个专注于持续发展的环境。了解Veracode如何实现DevOps。

迭代软件开发迭dai开发:顾名思义,迭代软件开发侧重于增量编码方法。该方法围绕较短的开发周期,通常涉及较小的开发。它还包含重复循环:初始化步骤,迭代步骤和项目控制列表。迭dai开发通常用于大型项目。

螺旋软件开发螺旋开发:该框架结合了不同的模型,基于在给定的开发过程或情况下最有效的模型。因此,对于不同的组件或适合同一软件开发计划的不同项目,它可能依赖于瀑布,敏捷或DevOps。Spiral使用基于风险的分析方法来确定特定情况的最佳选择。

V模型软件开发V模型开发:该方法被认为是瀑布式开发方法的扩展。它围绕测试方法展开,并使用专注于验证和验证的V形模型。

Veracode产品如何融入SDLC

查看交互式信息图

SDLC流程的阶段

健全的SDLC策略可提供更高质量的软件,更少的漏洞以及更少的时间和资源。它不仅有助于开发和维护软件,还可以在废弃代码时提供优势。Veracode可以将自动安全测试集成到SDLC流程中。以下是有效处理任务的方法:

第1步:计划

SDLC阶段的计划,50px.png

软件规划和要求

任何计划的第一步都是制定计划流程。在此阶段,组织必须确定发布主题,内容和时间表。这通常包括诸如收集最终用户要求,确定要包含在发布中的用户故事以及规划发布阶段和日期等活动。

此阶段的主要考虑因素包括:

确保应用程序满足业务需求。

参与威胁建模/安全设计。

选择在开发过程中使用的语言和库。

将测试用例映射到业务和功能需求。

您可以使用的工具

Veracode在线学习:该服务包括安全架构与设计和威胁建模课程。

你知道吗?

VER17_059_WebImages_SDLC_Charts_Step1A_v2.png

需求阶段的软件缺陷

64%的缺陷源于需求阶段。[1]

第2步:代码和构建

SDLC阶段码 - 构建 - 50px.png

代码和构建

此阶段包括应用程序的实际工程和编写 - 同时尝试满足规划阶段建立的所有要求。

此阶段的主要考虑因素包括:

培训开发人员安全编码。

在编写代码时查找并修复代码中的缺陷和安全漏洞。

以安全的方式使用开源组件。

减少开发人员等待测试结果所花费的非生产时间。

您可以使用的工具

Veracode Greenlight:在您的IDE中查找代码中的安全缺陷并查看上下文补救建议,以帮助您在几秒钟内解决问题。

Veracode开发人员沙箱:个人开发人员或开发团队根据所需的安全策略评估新代码 - 不影响当前生产中的应用程序版本的合规性报告,也不会影响将代码提交到主分支之前的报告。

你知道吗?

VER17_059_WebImages_SDLC_Charts_Step2A_v2.png

软件开发延迟了依赖性

80%的Dev和QA团队因依赖性而遇到延迟。[2]

VER17_059_WebImages_SDLC_Charts_Step2B.png

开发人员安全培训和电子学习

接受电子教学的开发人员修复了20%的漏洞。

VER17_059_WebImages_SDLC_Charts_Step2C.png

持续发展和整合

持续开发和构建可帮助团队以最快20倍的速度发布应用程序。[3]

第3步:测试

软件测试

在此阶段,团队根据要求测试代码,以确保产品正在解决问题并按预期执行。此阶段包括进行所有类型的性能,QA和功能测试,以及非功能测试,例如UX测试。虽然测试传统上是在开发阶段之后进行的,但采用最佳实践方法的组织正在转向整个SDLC的连续自动化测试。

此阶段的主要考虑因素包括:

使用多种测试方法测试应用程序的安全策略,包括静态,动态,软件组合分析和手动渗透测试。

使用与被测试系统相同的语言和协议,进行全面的性能,功能,单元和集成测试。

您可以使用的工具

Veracode静态分析:将单个打包应用程序上载到Veracode Application Security Platform以启动扫描并获得通过/失败结果。

你知道吗?

VER17_059_WebImages_SDLC_Charts_Step3A_v2.png

持续的软件测试

Freeform Dynamics和CA Technologies进行的2017年研究发现,49%的IT和测试专业人​​员认为持续测试对于满足不断变化的业务需求和期望非常重要。

VER17_059_WebImages_SDLC_Charts_Step3B.png

开发人员沙箱经常扫描

在检查完成的代码之前,经常在开发人员沙箱中进行扫描,使开发人员能够比仅进行策略扫描修复多48%的缺陷。

第4步:阶段

软件升级

在发布阶段,团队将软件部署到生产服务器上。这包括在各种环境(包括私有数据中心和云)以及公共云资源中打包,管理和部署多个复杂版本。

此阶段的主要考虑因素包括:

跟踪发布及其组件的进度。

从手动发布流程转移到自动化流程,其中发布软件基于业务决策。

添加安全测试作为最终质量检查的一部分。

你知道吗?

VER17_059_WebImages_SDLC_Charts_Step4A_v3.png

DevOps发布和自动化

72%的高级DevOps采用者完全使用发布自动化工具,但令人震惊的是,83%的IT专业人士表示他们仍然使用电子表格作为处理版本的主要方式。[4]

第5步:部署和监控

软件部署和监控

在此阶段,产品正在生产中并被客户使用。监控应用程序的性能和用户体验对于持续改进至关重要。组织建立反馈循环以确保开发人员和测试人员可以使用操作数据。

此阶段的主要考虑因素包括:

继续测试和监控生产中的应用程序。

在更新或更改应用程序时重新评估应用程序的性能,安全性和用户体验。

您可以使用的工具

Veracode动态分析(发现和动态测试):查找,保护和监控所有Web应用程序 - 而不仅仅是您了解的应用程序。

Veracode手动穿透测试:笔式测试人员进行模拟攻击以获得完整的保证。

你知道吗?

VER17_059_WebImages_SDLC_Charts_Step5A_v2.png

识别问题会影响软件交付

80%的解决时间用于识别问题。[5]

VER17_059_WebImages_SDLC_Charts_Step5B.png

过多的软件返工

表现较差的人在过度返工时花费的时间高达22%。[6]

建立强大的软件开发过程的好处

当今日益复杂的软件开发环境需要优雅而全面的解决方案。开发人员必须兼顾众多工具和技术,同时生成在数字业务级别执行的代码。团队必须解决一系列问题,包括API,移动和云环境的编码。太多的工具缺乏开发人员所需的灵活性,而且许多工具也具有陡峭的学习曲线。

采用能够检测应用程序安全漏洞并以自动方式集成风险数据和指标的工具至关重要。引入集成安全方法并在SDLC中构建保护的组织能够降低风险,降低成本并加快开发速度。他们能够开发新的应用程序并不断更新现有软件而不会牺牲安全性。Veracode平台提供全套工具和API,以确保组织实现最佳保护级别。

将安全测试嵌入您的SDLC

有效的AppSec计划是将关键保护策略纳入SDLC方法的计划。这些包括:

单元测试

安全单位测试

所有对安全性敏感的代码都应该有一个相应的测试套件,用于验证每个安全决策的每个结果是否正常工作。虽然这种方法需要付出很多努力,但它可以极大地提高在漏洞出现之前捕获漏洞的可能性。一个有效的程序可以识别一些事情:编码中的任何变化都不会太小而不能忽视,任何漏洞都可能导致灾难性故障,并且在将任何软件投入生产之前始终运行整个测试套件至关重要。更重要的是,必须协调单元测试,并且还必须解决第三方漏洞和风险。

黑盒测试

黑盒测试/动态测试

这种方法也称为动态分析安全测试(DAST),是应用程序安全性的关键组件 - 它是SDLC框架的一个组成部分。该技术可以查找攻击者在应用程序在生产环境中运行时可能利用的漏洞。它实时运行并完成任务,无需实际访问代码,也无需了解应用程序的底层结构。简单地说:它会显示漏洞 - 包括输入/​​输出验证问题,服务器配置错误或错误以及其他特定于应用程序的问题 - 正如攻击者所看到的那样。Veracode的DAST解决方案提供从开始到生产的全面扫描应用程序。该黑匣子分析 在调试代码,目录,剩余源代码和资源文件中搜索,以查找SQL字符串,ODBC连接器,隐藏密码或用户名以及恶意个人可用于破解应用程序的其他敏感信息。

白盒测试

白盒测试/静态分析

及时发现和修复编码漏洞的能力至关重要。Veracode的白盒测试解决方案使用静态分析来发现常见缺陷,而无需实际执行软件。实际上,该解决方案分析所有代码 - 包括所有主要框架中的第三方组件和库 - 以确保最高级别的保护。白盒测试工具可以快速扩展以满足激进的最后期限,并且可以轻松无缝地融入软件开发生命周期,同时满足合规性要求。

整理来源:分销系统开发  紫隆科技

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • 测试现在被普遍认为“保证产品质量”这个笼统的说法下,而测试本身是什么呢?今天我们就测试本身跟大家一起讨论。 测试是...
    西边人阅读 4,582评论 2 52
  • 文章来自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鹏阅读 9,187评论 2 126
  • 1.测试与软件模型 软件开发生命周期模型指的是软件开发全过程、活动和任务的结构性框架。软件项目的开发包括:需求、设...
    宇文臭臭阅读 6,709评论 5 100
  • 我知道 当初你把他嫩嫩的小脚 轻轻地放在手心 向他传递你爱的信息 我知道 当初你用硬硬的胡茬 故意在他的小脸上,脖...
    石溪隐者阅读 261评论 0 0
  • 作者 / 七妟 我强烈建议女生找个可爱的男孩子谈恋爱。 他们可能比较宅,没什么生活情趣,重要的纪念日总是不记得,好...
    七妟阅读 579评论 1 2