回想软件技术发展的历史,最显著的趋向是软件变得愈来愈复杂,计算愈来愈繁琐,存储和处置的信息愈来愈多,软件危机就是用户关于软件功能的要求太多,导致于超出了软件技术能够满足的水平,从而使得软件产品在原有基础上陆续修改增需,软件变得愈来愈复杂,导致于开发组织愈来愈难。从起初的机器指令开始发展到面向对象再到如今新兴的云计算,目标都是让软件开发变得愈来愈简单,愈来愈能迎适用户的要求。
要说云计算对软件工程的影响,首先来了解了解云计算。云计算,用最简单的一句话来解释就是“客户端将运算任务交给服务器(云端),服务器运算完成以后,再将运算结果交还给客户端”。详细说,就是客户端(这里的客户端能够是个人也能够是企业)在某种情形下,当地的资源缺乏以赞同要进行的运算,就应用线上已有的成熟的资源和数据来为自己完成自己的需求。
这样的形式有三个利益,第一,因为不受当地资源的限制,客户端能够有更辽阔的资源库,能够说享有现有的一切品种的资源。
第二,关于做云计算的企业来讲伸缩性更好,假如市场需求大则投入更多,反之削减投入。
第三,pay as you go,也就是你取多少付多少,不再需求想为了一个简简单单的事情而专门买一个服务器。这里对云计算也就不再做深究,懂得云计算的基起源基础理和特点便可。
云计算,与其说是一项技术,不如说是一种服务,就像IT界的自来水公司一样,为来自五湖四海的应用提供自己能提供的服务,关于传统软件工程也是如此,云能够为传统软件工程提供更加普遍的资源。云计算对软件工程的详细影响以下。
1.软件系统构造化
与传统的软件工程对比,基于云计算的软件工程的系统构造变得更加构件化和开放性更大。在软件即服务(SaaS)形式下,云计算笼统了传统开发和集成中的低端任务,提供了标准化的、即装即用的处理方案。在云端,我们能够找到许多构件作为我们要开发的软件的一部分,而这些构件会在陆续的应用中改良,变得愈来愈成熟。同时,新开发出的软件能够作为今后要开发的更加复杂的软件的构件。这样,软件危机能够在必定水平上获得减缓。在这类软件开发形式下,软件的系统构造基本上是完全处于散布式的,一个软件由客户端、服务端、管理端、开发端、测试端等各个不一样的构件有机联合,也就是说,不一样的软件完全也许享有一起的构件,这也使得应用之间没有了严厉的物理界限。
2.软件更具多样性
前文中已经说过,云计算更多的是一种服务,关于各个云计算服务公司来讲,服务得更好,公司才能够生计。这也就保障了云端资源的质量。所以关于软件开发者,完全不需求担忧用于软件开发的构件质量问题。面临一个需求,软件开发者能够在云端茫茫的构件中选择能更好地满足需求的构件。在这样的要求下,便能够保障软件对象的多样性。
3.软件动态开发
与传统软件工程对比,基于云计算的软件工程不再是瀑布模型的,并发模型、多重螺旋模型将成为主流。在软件安排以后,每个阶段交付的都是中心版本,软件升级会变得愈来愈频仍。随之而来的,是软件开发过程的高度并发状态和高度动态性。因为软件开发所需的构件和资源都在云端,软件开发的过程变得更加灵巧,关于一个应用,软件安排、运转管理、保护和开发过程都是并发的,所以也便也许会出现这类情形:第一次软件安排也许只是一个很简单的功能,因为云计算大大下降了软件构件之间的耦合水平,在软件开发各个过程并发进行的情形下,软件也许在很短的时间只能便能够升级到能够完成很复杂的功能,并且这个发展方向的容错性很强。
4.更多人参加开发
微软公司《云应用开发》一书的前言中写到:“用户只需求在每个记账周期内致富自己在该周期内所应用的IT资源所产生的费用,云计算平台的运营商则负责管理和保护全部IT架构,这样,用户便能够集中一切经历,利用自己对核心领域专业知识的掌控来构建和安排自己的应用程序”。能够看到,基于云计算的软件开发让用户放弃了对应用程序的部分控制权和自治权,将这部分控制权和自治权交由云平台运营商来掌控,也就是说软件的组织管理不再仅仅是开发者的任务了。另外一方面,关于一个开源项目,得益于云端资源的共享性,对世界各地的开发者来讲,一个项目标开发过程是透明的,所以一个项目能够有来自不一样区域的开发者来参加开发,也许这只是出于对技术的酷爱,而不是对利益的寻求。
5.软件开发更加简单
在传统的软件开发过程当中,程序员的编程能力极其重要,只有很好的编程能力才能够对不一样需求提出处理方案。但在基于云计算的软件开发中,几乎一切处理方案都能够在云端找到,所以编程能力仿佛显得不是那么重要了,而更重要的是如何来更好的构建和安排自己所要开发的应用程序。用户、开发人员之间不再有明确的角色划分,在必定情形下,软件开发者、服务提供者和软件应用者能够是同一个人,而软件开发工具由云计算服务商提供,软件开发者只需求在开发周期外向服务商支付必定的软件服务费用便可。在这样的大环境下,人人都能够是开发人员。
6.资源虚拟化
Wiki对云计算的界说是:云计算是一种通过internet以服务的方法提供动态可伸缩的虚拟化资源的计算形式。能够看到,计算资源虚拟化是云计算技术的核心,通过虚拟化技术使得上层的软件应用和底层的软件完成分别,因为资源都在云端,用户能够随时随地拜访这些云端资源。现如今的软件开发,资源普通有人力资源、软件资源和硬件资源,在云资源高度虚拟化的情形下,通过云计算的三种形式IaaS(基础设施即服务)、PaaS(平台即服务)和SaaS(软件即服务),软件资源和硬件资源都能够通过云端轻松获得,关于软件开发者来讲,剩下要考虑的资源只剩下人力资源。
如今在云计算愈来愈普及的大环境下,软件开发形式必定要做出相应的转变,这类转变极也许会大大减缓软件危机,但是其实不能够完全杜绝软件危机,固然完全处理软件危机也是不大也许的。但能够确定的是,跟随云计算的发展,我信任软件开发会进入一个全新的时期。
参考文献:
[1] wiki百科,云计算词条
[1]《云计算之道》 邹恒明著 P44-P45
[2] [2] 张勇. 云计算环境下软件工程形式初探[A]. 太原: 北方自动控制技术研究所,2009
[3] 《物联网与智慧农业》-王玉洁著 P38-P39
End.
拥抱壮实,就比谁更会拉小提琴。这个优势是亚马逊没无方法跟它竞争的。
声明:本网转发此文章,旨在为读者提供更多信息资讯,所涉内容不构成投资、消费建议。文章事实如有疑问,请与有关方核实,文章观点非本网观点,仅供读者参考。