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

传统软件工程的概念

传统软件工程采用的一是结构化泛型,基本阶段按顺序如下:需求阶段、规格说明阶段、设计阶段、实现阶段、集成阶段、维护阶段、退役等,这是一种适用于代码量适中的传统软件开发方式。

而随着社会进步与技术发展,软件越来越复杂,计算越来越繁琐,代码量也越来越大,存储和处理的信息越来越多,软件规模也越来越大。而传统的结构化设计方法在大规模的软件的开发组织和维护方面困难重重,软件的复用性能也不好。于是发展出了云计算的概念。

云计算的概念

云计算是以数据为中心的一种数据密集型的超级计算,是分布式计算、并行计算、效用计算、网络存储、虚拟化、负载均值、热备份冗余等传统计算机和网络技术发展融合的产物,在数据存储,数据管理,编程模式,并发控制,系统管理等方面具有自身独特的技术。云计算基于互联网的相关服务的增加、使用、和交互模式,通过互联网来提供动态易扩展且经常是虚拟化的资源。这是一种按使用量付费的模式,提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池,这些资源能够被快速提供,而只需要投入很少的管理工作,或与服务供应商进行很少的交互。云计算是通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将与互联网更相似。这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统,这样的好处是由于不受本地资源的限制,客户端可以有更广阔的资源库。

云计算与其说是一项技术,不如说是一种服务,为来自四面八方的运用提供自己能提供的服务。云也可以为传统软件工程提供更加广泛的资源。

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

1.     软件架构的开放性

互联网时代,网络上的共享和开源达到前所未有的新高度。在此基础上,基于云计算开发的软件的开放性得到了极大的提高,软件结构的复用性也有了很大的提升。云计算可以提供成熟的软件体系,设计构架甚至开源代码,在分布式的计算模式下,可以被不同的“云下”开发者所使用,甚至是不同的软件开发团队之间。在软件即服务(SaaS)模式下,云计算抽象了传统开发和集成中的低端任务,提供了标准化的、即装即用的解决方案。在云端,我们可以找到很多构件作为我们要开发的软件的一部分,而这些构件会在不断的使用中改进,变得越来越成熟。同时,新开发出的软件可以作为以后要开发的更加复杂的软件的构件。

2.     软件对象的多样性

传统软件开发过程中,数据和方法是相互独立的。而目前最流行的面向对象开发方法却是将数据和方法结合,起来封装在一起。这种开发方法是从一开始人们在分析阶段就可以将对象提取出来,在设计阶段进行对比,从而进行程序实现,它的阶段之间的变化比结构化设计要平缓,从而减少了错误的数量,但是这样设计的对象存在不同开发者,不同软件之间的理解差异,实现方法低效而且有很大的局限性。云计算时代每个人都可以将自己构造的对象放到网络上,云计算提供商也可以提供成型的、多种多样的对象供开发者使用,不同的软件开发者对于对象的理解趋于统一,可以复用前人已有的经验,减少时间花费。

3.软件过程的动态性

软件开发过程中,项目所需的资源,比如开发人员、数据、设备和软件需求都可能是动态变化的。一个软件开发团队,可能会有正常的人事调动;软件的使用范围可能随着时间而不断扩大,甚至超出最初的设计;软件开发同时,设备也在更新换代。传统的软件开发需要一个严谨的流程,出现的变化可能对于开发产生巨大的负面影响,造成损失。而相比传统软件工程,基于云计算的软件工程不再是瀑布模型的,并发模型、多重螺旋模型将成为主流。在软件部署之后,每个阶段交付的都是中间版本,软件升级会变得越来越频繁。有任何变化,也可以随时改动,在下一版本更新或者上传到云里,软件开发的过程变得灵活。

4.开发组织的社会化

传统软件开发一般是一个开发团队,跟团队外的人交流很少,而且遇到人员资源的流动,通常是一个程序员走了,需要两个程序员去顶替他的位置,在开发者方面存在巨大的局限性。而在云计算模式中,人员流动并不存在影响,只要有一台能上网的电脑,就可以随时随地的开发并和团队交流,使得开发变得更加包容与开放。基于云计算的软件开发让用户放弃了对应用程序的部分控制权和自治权,将这部分控制权和自治权交由云平台运营商来掌握,这就意味着软件的组织管理不再仅仅是开发者的任务了,而是一个社会化团体的开发管理。

5.开发人员的大众化

软件公司的软件开发虽然具有优秀的组织管理机构,但是在开发人员上仍然有一定的局限性。一个公司的开发部门的人员,可能由于企业文化的影响等因素,存在一定的思想局限。而在云计算下,很多的模块设计可以从云计算提供商直接获得,只要筛选适合自己开发的模块就好。而不仅仅是一个公司的固定人员,他们也不用完成所有的任务,而可以在自己擅长的领域做出更大的成就。同时,软件开发的前期准备成本减小,人人都可以量力而行的租用云上的资源和设备,这使得商业化编程得到普及,人人都可以有一个安全稳定的开发环境实现自己的应用。

6.     资源部署的虚拟化

云计算是一种通过internet以服务的方式提供动态可伸缩的虚拟化资源的计算模式。计算资源虚拟化是云计算技术的核心,通过虚拟化技术使得上层的软件应用和底层的软件实现分离,由于资源都在云端,用户可以随时随地访问这些云端资源,而且是按照需求,用多少就买多少。这样就使得对资源的利用率达到了最大化,同时也使得程序能够永远保持在最高的运行效率。在云资源高度虚拟化的情况下,通过云计算的三种模式IaaS(基础设施即服务)、PaaS(平台即服务)和SaaS(软件即服务),软件资源和硬件资源都可以通过云端轻松获得。软件开发更多的是需要考虑人力资源。

总结

云计算促成的软件工程的发展是否能成为破解软件危机的“银弹”尚不可知,但是它却在提高效率、降低成本等方面发挥出效力。虽然云计算技术还没有非常成熟,但是越来越多的人已经意识到云计算的好处。在云计算越来越普及的大环境下,软件开发模式必然要做出相应的改变。软件工程的传统开发模型以及有关技术势必在云计算的广泛应用下随之变革,更加多元化的软件工程开发模式和商业模式都将成为可能。云计算的发展,软件开发会进入一个全新的时代。

转载于:https://www.cnblogs.com/sumalefu/p/5991202.html

云计算对于传统软件工程的影响相关推荐

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

    既然我们要讨论这个问题,那就先要明确两个概念"云计算","传统软件工程"和一个"影响作用". 首先是"传统软件工程",通 ...

  2. 从柯布-道格拉斯生产函数看云计算对传统软件工程的影响

    随着软件技术的不断发展,软件的功能变得越来越强大,软件的结构也变得越来越复杂,需要处理的数据变得越来越庞大,计算的复杂度也越来越高.如何开发能够应对这样日益增长的需求的软件便成为了亟待解决的问题. 2 ...

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

    如今,云这种概念已经越来越深入人心,似乎云已经成了我们生活的一部分.那么,这种近几年兴起的技术,是否对我们传统的一些行业有所影响. 首先了解一下软件工程的概念.软件工程是一门研究用工程化方法构建和维护 ...

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

    说起云计算对于传统软件工程的影响,我们当然首先需要了解这两个概念. 一.传统软件工程 首先是传统软件工程,了解传统软件工程其实就是了解软件工程的历史,早期的计算机系统以硬件为主,程序员在早期的计算机上 ...

  5. 云计算对软件工程的影响

    云计算对传统软件工程的影响 什么是云计算: 云计算(cloud computing)是基于互联网的相关服务的增加.使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源.云是网络.互联 ...

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

    内容提要: 1.背景介绍:云计算的基本概念 2.传统软件工程介绍:流程.方式 3.云计算下软件工程的变化 4.总结,对比软件工程的改变 5.参考文献   一.背景介绍[1] 云计算是以商业需要为出发点 ...

  7. 多元化时代敏捷软件开发的崛起与传统软件工程的延续

      多元化时代敏捷软件开发的崛起与传统软件工程的延续 1.传统软件开发模式 1.1瀑布模型 1.1.1概念 瀑布模型,顾名思义,软件开发的过程如同瀑布飞流一般,自上而下,逐级下落.瀑布模型的核心思想是 ...

  8. 浅析互联网金融对传统金融的影响

    金融领域的发展能够在较大程度上促进经济的增长,而国内金融领域对于经济的促进作用更为显著.伴随科技的创新与发展,互联网金融应运而生,使得传统金融受到了一定的影响,主要表现在以下几个方面:对经营思想的影响 ...

  9. 云计算助力传统安防智慧升级

    智慧安防是智慧城市建设中的重要部分,被誉为智慧城市中的隐形安全网.在面临着智慧城市更大更新的需求下,传统的安防需要融合新的技术来满足市场的需求,作为维护社会治安的有效手段,安防行业在近些年来结合现下大 ...

最新文章

  1. 剑指 Offer 37. 序列化二叉树
  2. windows--reg--向注册表中写入一些数据
  3. tensflow andaconda 方式的安装
  4. C# 二维码生成代码
  5. 企业内部网络的多出口相互冗余备份与负载均衡
  6. 1980-2018年中国及世界各国实际利率数据
  7. # [cs231n (五)神经网络part 1 构建架构 ][1]
  8. 表示学习(Representation Learning)之局部表示(Local Representation)与分布式表示(Distributed Representation)
  9. usercity 小程序_微信小程序API 用户信息 wx.getUserInfo(OBJECT)
  10. 小程序智能聊天机器人(二)
  11. 一周热图|黄晓明、刘亦菲走进瑞士天梭工厂;卡特彼勒牵手CBA联赛;爱马仕匠心工坊登陆西安...
  12. libtorrent java_[libtorrent] windows搭建 libtorrent 开发环境
  13. 英文个人简历中英文词汇对照大全
  14. 飞畅科技 POE供电交换机常见问题详解
  15. 买一台 iPhone X,还是创建一家未来的独角兽?
  16. 苹果发布会All In服务:Apple News+、Card、游戏商店、Apple TV+
  17. Python 安装包管理工具 pip
  18. 认证、授权、鉴权、权限控制
  19. 回顾历史,见证精彩|PostgresConf.CN2019大会三大分论坛
  20. 【第三章】 C语言之牛客网刷题笔记 【点进来保证让知识充实你一整天】

热门文章

  1. union 与 union all 及其他并集操作说明
  2. Android 4.0新增WiFiDirect功能
  3. 用C#实现仿Ruby的XML Builder
  4. dbus-glib-0.108 arm交叉编译
  5. android多语言编码格式,在Android中使用国家/地区代码以编程方式更改语言
  6. 叮咚!您收到一份2021知位停车新品发布会暨合作伙伴大会邀请函
  7. 机器物联网的四大价值流
  8. Pluto - iOS 上一个高性能的排版渲染引擎
  9. 剑与远征“超能力”玩家,恶魔瑟可斯上线第1天就被他拉满
  10. pyecharts第四节、漏斗图