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

如今,云这种概念已经越来越深入人心,似乎云已经成了我们生活的一部分。那么,这种近几年兴起的技术,是否对我们传统的一些行业有所影响。

首先了解一下软件工程的概念。软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。工程是科学和数学的某种应用,通过这一应用,使自然界的物质和能源的特性能够通过各种结构、机器、产品、系统和过程,是以最短的时间和精而少的人力做出高效、可靠且对人类有用的东西。而软件工程作为一种工程,则是应用计算机科学、数学、逻辑学及管理科学等原理,开发软件的工程。

云计算,是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机各种终端和其他设备。云计算描述了一种基于互联网的新的IT服务增加、使用和交付模式。它是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。用最简单的一句话来解释就是“客户端将运算任务交给服务器(云端),服务器运算完成之后,再将运算结果交还给客户端”。

那么,云计算到底对传统软件工程有什么影响呢?或者说,将云计算与软件工程相结合,会有什么优势。根据所查的资料来看,有如下几个优势:

1、软件架构的开放性

云计算是分布式处理,并行处理,网格计算的发展,是一个具有连续性的软件开发的分布式模型,这种开放式的软件结构给了我们软件开发者一个崭新的多元软件开发环境。云计算提供了方便,对应需求的网络接口去共享一个可操作的资源池。云计算让消费者(用户或程序),一些开发者打开了未来网络以一种超级计算机的姿态出现,依赖于云计算的特点,比如资源池和虚拟化,按需服务和随处可取的接口。传统的数据中心模式的软件开发会给公司带来很多麻烦,不光是落后的栈式软件环境在更新一个软件库的时候就会导致整个系统的崩溃,这种复杂的结构也让很多开发模式只可以应用在拥有大量人力的大企业,小型企业难以保证数据中心的稳定性使得很多新公司难以展开进一步扩张。云计算改变了这个局势,不再受限于硬件环境的严格要求,企业可以自己使用网络上的资源,环境由资源提供者来自行解决,将生产和生产环境的难题剥离,塑造一个崭新的行业和技术。

2、软件对象的多样性

简而言之,就是可以将云计算应用于许多不同类型的软件。它能够使合作研究开发,电子商务,健康护理,网格应用,企业计算设施,军用应用和国家网络安全这样的大型分布式系统应用的快速发展成为可能。云计算更多的是一种服务,对于各个云计算服务公司来说,服务得更好,公司才能生存。这也就保证了云端资源的质量。所以对于软件开发者,完全不用担心用于软件开发的构件质量问题。面对一个需求,软件开发者可以在云端茫茫的构件中选择能更好地满足需求的构件。在这样的条件下,就可以保证软件对象的多样性。

3、软件过程的动态性

动态基础设施(Dynamic infrastructure)可以通过提供基础商业连续性和高可用性的需求加速了云计算和网格计算。以前,都是通过个人电脑进行管理。而这种技术,软件开发所需的构件和资源都在云端,软件开发的过程变得更加灵活,对于一个应用,软件部署、运行管理、维护和开发过程都是并发的,因此也就可能会出现这种情况:第一次软件部署可能只是一个很简单的功能,由于云计算大大降低了软件构件之间的耦合程度,在软件开发各个过程并发进行的情况下,软件可能在很短的时间只能就可以升级到可以实现很复杂的功能,而且这个发展方向的容错性很强。

4、开发组织的社会化

我们不再局限于传统开发几个人自己做自己的,再用移动硬盘互相拷贝的方式,有了云服务和云计算,我们可以利用云来分享,同样的,你的同伴也不再局限于你认识的人,感兴趣的人自然会投入进你的项目。基于云计算的软件开发让用户放弃了对应用程序的部分控制权和自治权,将这部分控制权和自治权交由云平台运营商来掌握,也就是说软件的组织管理不再仅仅是开发者的任务了。另一方面,对于一个开源项目,得益于云端资源的共享性,对世界各地的开发者来说,一个项目的开发过程是透明的,因此一个项目可以有来自不同区域的开发者来参与开发,可能这只是出于对技术的热爱,而不是对利益的追求。

5、开发人员的大众化

云的普及使开发者不再只是有工作的技术人员,业余爱好者或者其他行业的从业人员也可以参与自己感兴趣的项目的开发工作之中。最著名的例子就是github,在一个软件工程的实施过程中,不仅同组内的人员可以随时更新其他人负责部分的代码,如果这个项目很有价值,还会吸引各路大牛的挑错和指导。一些初学者的门槛也变低了,可以通过阅读其他人的代码来学习技巧,开发人员逐渐的平民化,大众化。

6、资源部署的虚拟化

现如今的软件开发,资源一般有人力资源、软件资源和硬件资源,在云资源高度虚拟化的情况下,通过云计算的三种模式IaaS(基础设施即服务)、PaaS(平台即服务)和SaaS(软件即服务),软件资源和硬件资源都可以通过云端轻松获得,对于软件开发者来说,剩下要考虑的资源只剩下人力资源。虽然虚拟化和云计算并非是捆绑技术,但二者可以通过优势互补为用户提供更优质的服务。云计算方案使用虚拟化技术使整个IT基础设施的 资源部署更灵活。反过来,虚拟化方案也可以引入云计算的理念,为用户提供按需使用的资源和服务。在一些特定业务中,云计算和虚拟化是分不开的,只有同时应 用两项技术,服务才能顺利开展。

总的来说,云计算服务器为开发人员提供了更加宽广的开发平台,在这之上开发人员可以更加高效地构建应用,而传统的软件工程行业则会受到诸多的限制使得开发过程没有现在这样高效便捷。云计算应用于软件工程,可以使得我们开发人员可以专注于业务的实现而从复杂的运行环境中抽身出来,使得软件变得更加可靠。

[1] wiki百科,云计算词条

  [2]《云计算之道》 邹恒明著 P44-P45

  [3] 张勇. 云计算环境下软件工程模式初探[A]. 太原: 北方自动控制技术研究所,2009

时间: 2024-10-18 00:16:05

论云计算对传统软件工程的影响的相关文章

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

云计算对传统软件工程的影响 传统软件工程的概念 传统软件工程采用的一是结构化泛型,基本阶段按顺序如下:需求阶段.规格说明阶段.设计阶段.实现阶段.集成阶段.维护阶段.退役等,这是一种适用于代码量适中的传统软件开发方式. 而随着社会进步与技术发展,软件越来越复杂,计算越来越繁琐,代码量也越来越大,存储和处理的信息越来越多,软件规模也越来越大.而传统的结构化设计方法在大规模的软件的开发组织和维护方面困难重重,软件的复用性能也不好.于是发展出了云计算的概念. 云计算的概念 云计算是以数据为中心的一种数

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

云计算是什么?美国国家标准与技术研究院(NIST)给出了定义:云计算是一种按使用量付费的模式,这种模式提供可用的.便捷的.按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互. 云计算是并行计算.分布式计算和网格计算的发展,或者说是这些计算科学概念的商业实现.[1]它具有三大形式分别为基础设施即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS).其中,基础设施即服务是

算对于传统软件工程的影响

说起云计算对于传统软件工程的影响,我们当然首先需要了解这两个概念. 一.传统软件工程 首先是传统软件工程,了解传统软件工程其实就是了解软件工程的历史,早期的计算机系统以硬件为主,程序员在早期的计算机上通过比较复杂的操作来运行比较简单的程序,程序的规模一般不会很大.但随着计算机硬件的不断发展,计算机系统的性能也越来越强,在上面运行的软件规模也就越来越大.到了上个世纪六十年代,"软件危机"这一事实逐渐被大家所认识,这其中的具体问题包括:软件生产难以满足用户日益增长的需求.软件开发者与用户交

云计算对软件工程的影响

云计算对传统软件工程的影响 什么是云计算: 云计算(cloud computing)是基于互联网的相关服务的增加.使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源.云是网络.互联网的一种比喻说法.对于云计算的定义现阶段广为接受的是美国国家标准与技术研究院(NIST)定义:云计算是一种按使用量付费的模式,这种模式提供可用的.便捷的.按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服

软件工程:传统软件工程 vs 敏捷软件开发

前言 软件工程(Software Engineering): 是一种层次化技术. 将系统化的.规范的.可量化的方法应用于软件的开发.运行和维护,即将工程化的方法应用于软件. 研究"建立和使用一套合理的工作原则,以便经济地获得可靠的.可以在实际机器上高效运行的软件"的方法. 敏捷软件开发(Agile software development): 一种应对快速变化的需求的一种软件开发方法.基于迭代和增量开发,通过自组织,跨团队,沟通协作完成开发工作. 一.传统软件工程 (一)产生背景 随着

敏捷软件开发 VS. 传统软件工程

敏捷软件开发 VS. 传统软件工程 软件工程这一术语1968年被提出,之后美国软件工程专家巴利·玻姆对十多年间研究软件工程的专家学者们提出的一些准则与信条,于1983年对提出软件工程的七条基本定理,将软件工程这一学科具体化,软件工程中开发与管理软件的方法也不断完备.而敏捷软件开发于2001年由Kent Beck和其他16位知名软件开发者提出,敏捷开发是人们对于传统软件开发方式的一种提出的新的挑战.本文将具体介绍软件传统工程与敏捷软件开发两种方法,并对两者进行对比分析. 一.传统软件工程 软件工程

小议敏捷软件开发与传统软件工程

敏捷软件开发与传统软件工程 一.前言 随着社会和科技的不断发展,信息产业己经和人们的生活息息相关,成为不可或缺的一部分.软件工程作为信息产业的核心部分发生了翻天覆地的变化.传统的软件工程思想己经越来越不适应快速变化的信息社会,为此一种新软件工程思想-----敏捷软件开发进入了我们的视野. 二.软件工程 (一)概述 Software engineering is the application of engineering to the design, development, implement

敏捷开发VS传统软件工程

在1960年代中期软件危机爆发之后,人们就在对软件的生产方式进行着不断地探索,以期找到更加高效,科学的软件开发方式,来提高软件的生产率,提升软件的质量.于是便有了随后提出的软件工程的概念.于是我们在现在的软件开发过程中,或者在软件工程课程老师的介绍中,就会看到这样的一种开发模式:在项目前期将调研工作尽可能做到面面俱到,客户的需求以合同的方式进行"冻结",在这些需求确定和调查的基础之上,可以开始进行初步的软件开发计划书的说明,随后进行需求分析,系统设计等等.开发过程中或许会有迭代,但通常

敏捷软件开发VS.传统软件工程

敏捷软件开发 VS. 传统软件工程 本文主要介绍敏捷软件开发与传统软件工程分别是什么,并讨论二者各自的优缺点. 一.传统软件工程 1.传统软件工程的由来 进入上个世纪60年代,人们开始逐渐认识到了确实存在着"软件危机" 这样一个事实.例如: ·软件生产不能满足日益增长的需要 ·软件开发成本和开发进度估计往往不准确 ·软件开发人员和用户之间信息交流不充分,用户对完成的软件满意度很低 ·软件价格昂贵,软件成本在整个计算机系统中所占的比例急剧上升,软件已成为许多计算机系统中花钱最多的项. ·