云计算对于软件工程的影响


内容提要:

1、背景介绍:云计算的基本概念

2、传统软件工程介绍:流程、方式

3、云计算下软件工程的变化

4、总结,对比软件工程的改变

5、参考文献

 

一、背景介绍【1】

  云计算是以商业需要为出发点,将数量庞大的服务器集群整合成为分布式的资源池,通过虚拟化技术、Web2.0技术将资源池 强大的计算能力、存储能力和构建在其基础之上的各类应用以按需计费的形式从不同的层次(Infrastructure、Platform、 Application)租赁给用户的一种新型网络运营模式。图一展示了云计算平台的层级结构。由图可知,云计算基础架构位于云计算系统的底层,它为云计算系统的出色运营提供了有力的支持。

  图二展示了云计算基础架构:云计算基础架构主要由硬件资源(PC服务器、磁盘阵列、路由 器、交换机及相关配套设备)组成,通过虚 拟化技术、分布式并行技术整合形成的用以 直接对外提供存储、计算服务或作为基础设 施为上层云计算应用提供存储、计算能力支 撑的一种高效、可靠并且具有良好扩展性的 底层分布式系统。

 

 

  随着企业对于大容量存储和高性能计算需求的增加,通过传统的更新硬件设备来提高性能的方式已不太合适,特别是对于那些硬件配置和软件服务都不完善的中小型企业。因为它们没有足够的预算和资源。云计算则成为它们解决问题的一个最好办法。云计算强调按需使用、 动态调配、弹性扩展的理念,以用户的需求为原则进行资源的组织和交付.

  具体而言,云计算服务内容包括了 基础架构即服务( IaaS) 、平台即服务( PaaS) 和软件即服务( SaaS) 3 个部分. 3 个层次中基础架构即服 务为用户提供基本的计算和存储能力,通过虚拟化 和智能化技术自动为用户分配计算和存储资源. 平 台即服务和软件即服务则是面向软件资源,两者在 一定程度上存在着关联. 软件即服务是通过虚拟化 技术和多租户技术将单个的软件实例服务于多个用 户组织,多用户共享软件架构,这样就降低了每个客 户的资源消耗. 但是这种应用方式在对用户个性的 使用方面不可能有太多的涉及. 在这种条件下,一些 厂商开始逐渐将软件开发的 API 组件、开发工具、运 行环境等资源公开给用户使用,如 Google 的 App Engine 等. PaaS 平台为用户提供了更广泛的开发空 间,使软件的开发更多的面向业务流本身. 云计算的 从硬件到软件的 3 层服务体系创造了新的软件开发模式.【2】

二、传统软件工程的介绍:【2】

  软件的发展大体上经历了程序、软件产品和软件服务 3 个阶段.传统的软件工程属于前两个阶段,随着云计算平台的发展,逐渐步入第二个阶段

  早期的计算机系统以硬件为主,在硬件上搭配规模不大的程序,程序开发的流程较为简单,开发效率依赖于程序员的个人才智.随着计算机性能的提升和应用的扩展,软件的比重不断提高.无论是从规模还是从复杂程度上,都超越了个人的设计开发能力.工程化的设计思想及其相关的技术方法逐渐开始在开发中显得愈加重要.1968 年 “软件工程”的概念被首次提出.软件工程强调的可维护性和文档化以及对软件生命周期系统化的管理使软件成为一种产品.软件产品的出现使得软件与硬件分离,成为独立的研究体系.在软件开发方法上 逐渐形成了分析、设计、编码、运行、维护的一般流程.软件涉及的关系主体方面也基本形成了软件开发商与用户的二元格局.

三、云计算下软件工程的变化

  云计算下,软件工程的变化主要体现在以下三个方面:

 1) 构件的成熟度提高,软件的可复用程度得到提升.

  软件复用一直是提高软件开发效率,克服软件危机的重要途径,而构件可以在更高抽象层次上实现大粒度的软件复用.软件复用程度的提高一方面可以运用成熟构件模块减少软件开发错误,提高软件的可信性; 另一方面则可以缩短开发时间,提高开发的绩效.根据国内著名 PaaS 提供商 800APP 提供的信息,云计算模式下开发时间可以缩 减 1 /3 ~1 /10.绩效与可靠的矛盾关系一直是软件危机的根源所在,云计算在这两方面同时具有的优势无疑为缓解软件危机带来了希望.

2) 开发者面向业务应用,需求工程成为重点.

  在SaaS应用中,有很多应用具有相似或相同的功能,例如,很多在线网店都会具有搜索商品的功能。根据软件工程中基于构件的软件开发的原则,我们可以对这些“功能”进行复用。因此开发者有可能写很少的代码甚至不需要代码,而只需按照业务流程对平台中提供的各类资源进行设计和组织即可.这种模式下,需求与开发具有了同等的语境,同时需求在软件工程中的地位也将更加重要.【4】

 

3) 云计算下的软件工程打破了软件开发商与用户的二元格局,第三方云计算中心的作用更加重要.

  云计算模式下的软件开发和运行环境基本上都是由云计算中心来架构的,这些资源按照开发者的要求进行配置. 在开发者一端省去了硬件设施架构、运行环 境调试等工作,只需一个浏览器和一些简单的工具 就可以实施开发.开发完成之后的测试以及运行和维护也全部由云计算中心负责.具体讲来,比如云计算下的软件测试就有很大的变化。【3】

 

 

 

  上图展示了云测试的基本结构框架,可以发现,云测试更多的利用了云计算平台的计算资源,更好的模拟实际应用中的场景,对软件进行测试.比如云计算环境下的压力测试,是指通过云平台的大规模计算能力,确定一个软件系统的性能瓶颈,获得系统能提供的最大服务级别。如此的测试,更加保证了软件的可靠性

四、总结

  通过上面的介绍,可以看出:云计算对于传统的软件工程产生了很大的影响。首先,云计算平台实现了更好的虚拟化,使得编程人员不用在硬件上话费大量的精力,可以高效的搭建软件。其次,云计算平台为用户提供了更好的代码复用(构建)和新的抽象方式,从面向对象转化为面向业务应用,开发人员可以把主要的精力放在需求分析上。最后,云计算的出现形成了下图的三元格局,提高了软件开发各个阶段的效率和可靠性

 

五、参考文献

【1】云计算基础架构综述 武警工程大学 冯昊 邹 涛 张龙军 陕西省警卫局 王伟 2012 09/电子世界

【2】论云计算对软件工程的影响 史杰1,解继丽2,史少华2 昆明学院学报 2011,33(6):67 ~ 68 CN 53 -1211/G4 ISSN 1674 -5639 Journal of Kunming University

【3】云计算环境下软件测试研究进展* 王伟军1 姜 毅1, 2 刘蕤1 Kari Smolander3 1( 华中师范大学信息管理学院 武汉 430079) 2( 浙江理工大学经济管理学院 杭州 310018) 3( 拉普兰塔理工大学软件工程实验室 拉普兰塔 53400)现代图书情报技 2012年 第11期

【4】PaaS平台中面向多租户SLA的可复用构件研究 张振超

http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=7&recid=&filename=1014310920.nh&dbname=CMFD201402&dbcode=CMFD&pr=&urlid=&yx=&uid=WEEvREcwSlJHSldRa1Fhb09jeVVYampMcC9iU09iTU1uc05zeVVjMEpITT0=$9A4hF_YAuvQ5obgVAqNKPCYcEjKensW4ggI8Fm4gTkoUKaID8j8gFw!!&v=MDE3NjlEaDFUM3FUcldNMUZyQ1VSTHllWitkbUZDcmtXcjNPVkYyNkdyQzVIdGpPcjVFYlBJUjhlWDFMdXhZUzc=。

转载于:https://www.cnblogs.com/auas666/p/5976228.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值