软件开发的生命周期

软件开发的生命周期,第1张

软件生命周期(SDLC,Systems Development Life Cycle,SDLC)是软件的产生直到报废或停止使用的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。

但随着新的面向对象的设计方法和技术的成熟,早期软件生命周期设计方法的指导意义正在逐步减少或需要调整。

不过从另一种意义来说,面向对象本身也是一一种软件生命周期,传统的软件生命周期的概念仍是所有软件工程师非常重要的知识基础和工作指导。

生命周期法也称结构化系统开发方法,是目前国内外较流行的信息系统开发方法,在系统开发中得到了广泛的应用和推广,尤其在开发复杂的大系统时,显示了无比的优越性它也是迄今为止开发方法中应用最普遍最成熟的一种

1基本思想:将软件工程学和系统工程的理论和方法引入计算机系统的研制开发中,按照用户至上的原则,采用结构化、模块化自顶向下对系统进行分析和设计具体来说,它将整个信息系统开发过程划分为独立的六个阶段,包括系统分析、程序设计、系统测试、运行和维护以及系统评估这六个阶段构成信息系统的生命周期

2优缺点

生命周期法的突出优点是强调系统开发过程的整体性和全局性,强调在整体优化的前提下考虑具体的分析设计问题,即自顶向下的观点它从时间角度把软件开发和维护分解为若干阶段,每个阶段有各自相对独立的任务和目标降低了系统开发的复杂性,提高了可 *** 作性另外,每个阶段都对该阶段的成果进行严格的审批,发现问题及时反馈和纠正,保证了软件质量,特别是提高了软件的可维护性实践证明,生命周期法大大提高了软件开发的成功率

但是,生命周期法开发周期较长,因为开发顺序是线性的,各个阶段的工作不能同时进行,前阶段所犯的错误必然带入后一阶段,而且是越是前面犯的错误对后面的工作的影响越大,更正错误所花的工作量就越大而且,在功能经常要变化的情况下,难以适应变化要求,不支持反复开发

北京时间最新话题消息显示,微软公司Windows系统的开发,曾经在2002年2月也出现过中止的情况。早在90年代末和21世纪初,微软公司的软件产品,并没有今日这么好的名声。原因之一就是树大招风,而网络犯罪分子们又喜欢将Windows *** 作系统作为“重点关照对象”。在微软公司遇到的诸多“安全危机”中,2001年的“红色代码”,竟然在短短2周的时间内,感染了超过20万台Windows电脑。
2002年1月,微软联合创始人比尔·盖茨向所有员工发布了一份备忘录,其中提到了其所展望的“可信赖计算”(Trustworthy Computing)。当时盖茨认为,微软公司应该“努力让计算变得像电力、水利、以及电话服务一样地可用、可靠和安全”。而该备忘录的首要目的,就是让发布的产品尽可能地安全。
因此,就在本周,微软公司发表了其是如何向开发安全的软件和服务转变的。文章标题为“Life in the Digital Crosshires”,其中介绍了一些在早期、有关这一努力的鲜为人知的信息。一个有趣的“花絮”是,在2002年2月——即盖茨发表备忘录的1个月后——该公司决定暂时中止Windows的开发,转而让开发人员专注于软件安全。文章指出:“每个人都需要接受期望与优先级的培训大纲——威胁建模、代码审查、可用工具、渗透测试——所有的设计,都是为了让系统的默认行为更加地安全,微软简报中心的人数也增长到了950人”
不过该过程已经持续了两个月,但是微软公司并没有就此结束。2004年的时候,该公司提出了“安全开发生命周期”的概念——将安全作为首要任务的软件创建新流程。其它公司开发软件时采用过微软的SDL方案。

我认为,汽车软件客户端的安全防护措施主要有以下几点:

1客户端安全防护

移动应用往往基于通用架构进行开发设计,安全逆向技术成熟,常成为攻击者进行协议分析和发起网络攻击的突破口。在应用正式发布之前,对主配文件Android Manifestxml进行合理地配置,关闭Debuggable、allowBackup属性,同时关闭不需要与外界进行数据交互组件的exported属性,防止因为不合理地配置,造成移动应用安全风险。

同时,与国内外专业安全公司开展合作,通过代码混淆、字符串加密、变量名数字化、反调试等方式对车联网移动APP进行安全加固,防止移动应用被恶意破解、二次打包、逆向分析等。此外,在应用发布之前,邀请安全团队对车联网移动APP开展安全渗透测试,寻找漏洞并进行修复,借助安全厂商的力量提升车联网移动APP的安全。

2通信安全防护

车联网环境中的车辆不再是一个独立的机械个体,而是借助各种通信手段和对外接口实现与外部终端进行数据交互。因此保证车联网移动APP自身安全以及提供安全可靠的对外通信策略对车辆与外部终端的连接和通信安全至关重要。

在车联网移动APP与TSP服务平台通信的过程中,使用>

3 数据安全防护

车联网移动APP在使用的过程中,会在本地手机端存储部分用户敏感信息,例如手机号、登录密码、车辆Vin码等。采用加密的方式对移动端的文件、数据库等多种格式数据内容进行安全存储,以免数据在移动终端存储不当造成数据泄露。同时,防止密钥被泄露,避免将密钥硬编码到代码中,采用密钥分散技术和白盒密钥加密技术,提高密钥的安全性。

4业务安全防护

开发者应遵循移动应用的安全开发流程以及安全开发规范,将安全意识融入到软件开发生命周期的每个阶段。同时,开发人员应积极参加软件安全开发生命周期(S-SDLC)[6-7]培训,强化开发者的安全开发意识,严格按照安全开发规范进行开发。

软件安全切入点指指的是在软件开发生命周期中保障软件安全的一套最佳实际 *** 作方法。

软件安全(Software Security)就是使软件在受到恶意攻击的情形下依然能够继续正确运行及确保软件被在授权范围内合法使用的思想。

在国内,也有一些专家和学者将“Software Security”译作“软件确保”。软件安全-保护软件中的智力成果、知识产权不被非法使用,包括篡改及盗用等。研究的内容主要包括防止软件盗版、软件逆向工程、授权加密以及非法篡改等。

采用的技术包括软件水印(静态水印及动态水印)、代码混淆(源代码级别的混淆,目标代码级别的混淆等)、防篡改技术、授权加密技术以及虚拟机保护技术等。

软件安全信息系统和软件安全代码的有效安全项目往往依靠两种自动的安全测试:静态安全扫描测试和动态安全扫描测试。软件安全静态扫描一般在代码的开发期间进行。此过程借助威胁建模和分析,对静态代码进行扫描,从而发现安全漏洞。软件安全动态扫描是对工作环境中的实际代码进行的扫描,它在代码运行期间查找漏洞。

还有第三类软件安全测试,即人工渗透测试,它主要通过白帽分析进行人为干预。真正有效的应用程序安全项目利用所有的软件安全扫描测试,其中软件安全静态安全和软件安全动态安全扫描要深入到应用程序的开发过程中,并在必要时使用人工渗透测试。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/yw/13411553.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-31
下一篇 2023-07-31

发表评论

登录后才能评论

评论列表(0条)

保存