首页 > 代码库 > 云计算对传统软件工程的影响
云计算对传统软件工程的影响
云计算对传统软件工程的影响
140613 14231012 李旭
一、云计算定义、背景及特性介绍
- 定义
云计算(英语:Cloud Computing),是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机各种终端和其他设备。
- 背景
云计算是继1980年代大型计算机到客户端-服务器的大转变之后的又一种巨变。用户不再需要了解“云”中基础设施的细节,不必具有相应的专业知识,也无需直接进行控制。云计算描述了一种基于互联网的新的IT服务增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展而且经常是虚拟化的资源。
- 特性
a) 超大规模
b) 虚拟化
c) 高可靠性
d) 通用性
e) 高可扩展性
f) 按需服务
g) 极其廉价
h) 潜在危险性
二、传统软件工程的定义及特性
- 定义
创立与使用健全的工程原则,以便经济地获得可靠且高效率的软件。
- 特性
软件工程的基本目标是生产具有正确性、可用性及开销合宜(合算性)的产品.正确性意指软件产品达到预期功能的程度;可用性意指软件基本结构、实现及文档达到用户可用的程度;开销合宜意指软件开发、运行的整个开销满足用户的需求.以上目标的实现不论在理论上还是在实践中均存在很多问题有待解决,制约了对过程、过程模型及工程方法的选取.
三、云计算对传统软件工程的影响
软件的开发与计算模式和运行方式直接相关.一般而言,企业计算系统资源按照分层方式进行设计,体现在“应用―中间件/数据库―操作系统―硬件服务器”紧耦合的模式部署.这种资源架构是软件工程设计开发模式的先决条件.云计算的服务架构由IaaS,PaaS和SaaS构成.通过标准架构体系的中间件,屏蔽不同操作系统间的差异性,在虚拟化硬件和操作系统上提供可靠的稳定的业务保障,这也就是PaaS的核心.在云计算的模式下,软件工程在面向对象的基础上进一步抽象化,提升到面向服务的层次.面向服务也就是将业务流整体分成子业务流,对子业务流级别的模块进行组织设计,并最终形成软件系统整体.面向服务使软件在IT 系统结构层次结构系统中更加接近应用.面向服务的开发模式延伸出了云计算下的软件工程.其基本特性表现在以下方面:
1) 构件的成熟度提高,软件的可复用程度得到提升. 软件复用一直是提高软件开发效率克服软件危机的重要途径,而构件可以在更高抽象层次上实现大粒度的软件复用.软件复用程度的提高一方面可以运用成熟构件模块减少软件开发错误,提高软件的可信性; 另一方面则可以缩短开发时间,提高开发的绩效.根据国内著名PaaS 提供商800APP 提供的信息,云计算模式下开发时间可以缩减1 /3 ~ 1 /10.绩效与可靠的矛盾关系一直是软件危机的根源所在,云计算在这两方面同时具有的优势无疑为缓解软件危机带来了希望.
2) 开发者面向业务应用,需求工程成为重点.在PaaS 的平台中,开发者有可能写很少的代码甚至不需要代码,而只需按照业务流程对平台中提供的各类资源进行设计和组织即可.这种模式下,需求与开发具有了同等的语境,同时需求在软件工程中的地位也将更加重要.
3) 云计算下的软件工程打破了软件开发商与用户的二元格局,第三方云计算中心的作用更加重要.云计算模式下的软件开发和运行环境基本上都是由云计算中心来架构的,这些资源按照开发者的要求进行配置.在开发者一端省去了硬件设施架构、运行环境调试等工作,只需一个浏览器和一些简单的工具就可以实施开发.开发完成之后的测试以及运行和维护也全部由云计算中心负责.这种三足鼎立的关系是传统软件工程中所不曾有的,这既改变了工程业务链也改变了商业价值链.
云计算下软件工程也进一步显现出软件工程整体的发展趋势.从软件与硬件的关系上来看,早期信息系统主要是软硬件的结合.在后期的发展中,软件的独立化程度开始提高,这也成为了软件工程存在的一个重要标志,那就软件作为一种产品进行着工业化的生产和消费流程.当云计算将信息技术推入服务化模式中的时候,软件与硬件在以服务为共同指向的目标下,又重新走到了一起.这一过程是随着云计算的计算方式归集化而完成的.计算处理从用户终端归集到云计算中心,以此为基础的软硬件资源通过自下而上的虚拟化技术融合为整体,共同满足用户的业务需求.
云计算促成的软件工程的发展是否能成为破解软件危机的“银弹”尚不可知,但是它却在提高效率、降低成本等方面发挥出效力. 软件工程的传统开发模型以及有关技术势必将在云计算的广泛应用下随之产生变革,其丰富程度和复杂程度都将进一步加强.与此同时,更加多元化的软件工程开发模式和商业模式都将成为可能.
四、参考文献
[1] 维基百科
[2] 百度百科
[3] 杨芙清:软件工程技术发展思索,2005
[4] 史杰:论云计算对软件工程的影响,2011
云计算对传统软件工程的影响