码迷,mamicode.com
首页 > 其他好文 > 详细

云计算对传统软件工程的影响

时间:2016-10-23 21:09:32      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:环境   虚拟机   自己的   硬件   集成   微软   可靠性   模拟   位置   

云计算对传统软件工程的影响

软件工程的起源:

上个世纪60年代末到70年代初开始,由于“软件危机”的出现,逐渐发展起一组总称为软件工程的技术。这些技术把软件作为一个工程产品来处理:它需要计划、分析、设计、实现、测试以及维护。软件工程主要研究软件结构、软件设计方法论、软件工具、软件工程标准和规范,以及与软件工程有关的理论等。软件产业的逐步建立,也带动了软件工程这门学科的发展。同时,软件生产的系列化。产品化、工程化和标准化形成了软件产业的标志。

什么是云计算:

云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。因此,云计算甚至可以让用户体验每秒10万亿次的运算能力,拥有这么强大的计算能力可以模拟核爆炸、预测气候变化和市场发展趋势。用户通过电脑、笔记本、手机等方式接入数据中心,按自己的需求进行运算。 (1)

被普遍接受的云计算特点如下:

(1) 超大规模

“云”具有相当的规模,Google云计算已经拥有100多万台服务器, Amazon、IBM、微软、Yahoo等的“云”均拥有几十万台服务器。企业私有云一般拥有数百上千台服务器。“云”能赋予用户前所未有的计算能力。

(2) 虚拟化

云计算支持用户在任意位置、使用各种终端获取应用服务。所请求的资源来自“云”,而不是固定的有形的实体。应用在“云”中某处运行,但实际上用户无需了解、也不用担心应用运行的具体位置。只需要一台笔记本或者一个手机,就可以通过网络服务来实现我们需要的一切,甚至包括超级计算这样的任务。

(3) 高可靠性

“云”使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性,使用云计算比使用本地计算机可靠。

(4) 通用性

云计算不针对特定的应用,在“云”的支撑下可以构造出千变万化的应用,同一个“云”可以同时支撑不同的应用运行。

(5) 高可扩展性

“云”的规模可以动态伸缩,满足应用和用户规模增长的需要。

(6) 按需服务

“云”是一个庞大的资源池,你按需购买;云可以像自来水,电,煤气那样计费。

(7) 极其廉价

由于“云”的特殊容错措施可以采用极其廉价的节点来构成云,“云”的自动化集中式管理使大量企业无需负担日益高昂的数据中心管理成本,“云”的通用性使资源的利用率较之传统系统大幅提升,因此用户可以充分享受“云”的低成本优势,经常只要花费几百美元、几天时间就能完成以前需要数万美元、数月时间才能完成的任务。

而云计算对于传统软件工程的影响,可以从以下几个方面来分析:

一、软件架构的开放性

基于云计算的计算机,在软件实验管理过程中,是通过数据中心对区域的数据进行管理和控制的,这样的过程不仅会让整体变得更加方便,而且还能够提高整体的安全性,在需要的时候从数据库中提取,而在平时的时候可以更好地保存、管理。不仅仅如此,这些数据即便是在实验的结束之后,依旧可以作为云计算的数据进行重复的使用。 (2)

云计算可以根据不同情况下的不同种类的要求,来完成多个计算机集群系统的构建。很多时候软件架构的过程中需要某个部分的模板,一次做好以后重复使用比每次重新制作更加方便,出错率也更低。

二、软件对象的多样性

云计算可以提供很多接口。在进行面向对象编程的过程中,这些接口可以被程序使用,这些接口经过开发人员的使用和添加新的功能,就可以节省大量的成本。这些接口不只局限于可供单一程序使用,它的普遍适用性可以使他适应不同的对象。只要注释好规格,软件工程的开发会更加方便。

三、软件过程的动态性

从生命周期特点看,传统的软件生命周期模型是串行的,本质都是瀑布模型的变形,这样的生命周期模型更易于控制,可以保证在确定时间有确定的结果。但在云计算环境下,软件开发生命周期模型;并发模型、多重螺旋模型将成为主流,瀑布模型、迭代模型的使用越来越少,在软件部署后,交付的都是中间版,软件升级成为常态。

软件开发不再是一个封闭的、全局控制的流程,而是存在多个并发和自治的流程,在一个项目中,自底向上、自顶向下有机集成。

在软件开发的各个基本阶段,需求阶段将占据较大的工作量比例,架构设计基本可以从已有的成熟架构模式中选型确定,详细设计可以借用大量的成熟构件和代码,随着软件复用程度的提高,软件测试的工作量将大大降低,而软件质量则得到有效提升。开发过程中,用户、开发人员之间不再有明确的角色划分,通常情况下,在不同阶段,软件开发者、服务提供者、软件使用者多种角色是同一个人软件开发工具由云计算服务商统一提供,开发组织无需购买永久性的软件许可,只需在开发周期内按需租用云服务商的软件许可,这样可以大大降低软件工具费用。 (3)

四、开发组织的社会化

社会化是个体在特定的社会文化环境中,学习和掌握知识、技能、语言、规范、价值观等社会行为方式和人格特征,适应社会并积极作用于社会、创造新文化的过程。它是人和社会相互作用的结果。通过社会化,个体学习社会中的标准、规范,价值和所期望的行为。

云计算让软件开发变成不只是几个程序员的工作,它可以让社会上更多的人加入进开发过程中,这样对最后软件的可用性有了很大的帮助,更加符合人们的需求以及更加人性化。

五、开发人员的大众化

有了云计算这个云端的工具,软件开发的硬件限制就没有那么重要了,甚至普通人在自己的家里用pc也可以进行软件工程的开发。软件工程开发变得更加大众化。

六、资源部署的虚拟化

云计算的技术核心其实是虚拟化技术,使用虚拟化技术可以在内部建立多个虚拟机,对于软件系统的构建有着非常巨大的帮助。不仅仅如此,它还在联网的情况下,可以在物理机和虚拟机之间相互操作,在方便实行管理的同时,大大降低管理的成本,可以使之更好地得到利用和升华。

总结:云计算的发展毫无疑问是有益的,即便是面对不断的质疑,它还是展现出来它强大的一面。随着云计算的发展,更好地计算机软件系统构建和更加安全的软件数据保存也会变成现实。

引用作品

1、  百度文库:http://baike.baidu.com/view/1316082.htm

2、  贾昆霖,《云计算发展对软件工程构建系统的影响分析》

3、  张勇,《云计算环境下软件工程模式初探》

云计算对传统软件工程的影响

标签:环境   虚拟机   自己的   硬件   集成   微软   可靠性   模拟   位置   

原文地址:http://www.cnblogs.com/yyyjq/p/5990763.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!