首页 > 代码库 > 云计算对传统软件工程的影响

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

  在计算机科学这个日新月异的领域,新技术的不断成熟和发展总是无时无刻不在向传统领域发起着挑战和冲击。云计算,这一名词自2006年初次提出起,短短十年内已经成为信息技术领域最重要的发展之一。在借鉴传统分布式计算思想的基础上,它融合了并行计算,虚拟化,互联网,大规模资源管理等一系列技术,实现了对软硬件资源的集中化,动态化和弹性化管控,建立了从硬件资源到软件应用的整合一体的全新服务模式。而作为传统领域且已经发展成为工业流水线格局的软件工程,在云计算掀起的这股浪潮中会受到怎样的影响呢?

  云计算采用计算机集群构成数据中心,并以服务的形式交付给用户,使得用户可以像使用水,电一样按需购买云计算资源。与其说云计算是“计算”,倒不如说是一种“模式”,一种资源付费共享,交互使用的模式。具体而言,云计算的核心服务可以分为三个子层:基础设施即服务层(IaaS),平台即服务层(PaaS),软件即服务层(SaaS)。IaaS提供硬件基础设施部署服务,为用户提供实体或虚拟的计算,存储和网络资源。PaaS是云计算应用程序运行环境,提供应用程序的部署与管理服务,而SaaS是基于云计算基础平台所开发的应用程序。综合来说,云计算具有以下特点:服务弹性化,资源池化,按需服务,服务可计费,泛在接入。正是因为云计算具有上述特性,使得用户只需连上互联网就可以源源不断地使用计算机资源。简而言之,云计算实现了“互联网即计算机”的构想。

  在云计算这一概念提出伊始,就是为了解决大数据时代计算能力与资源不匹配,成本高,且资源利用率低等这样一系列问题。在云计算不断成熟发展的今天,软件工程领域也因为这项新的技术的推动下不断改变,接下来笔者将从以下几个方面分析云计算对传统软件工程带来的影响。

  一.软件开发的抽象程度和开放程度不断提高

  云计算的服务架构由IaaS,PaaS和SaaS构成,其中的PaaS层通过标准架构体系的中间件,可以屏蔽不同操作系统间的差异性,在虚拟化硬件和操作系统上提供可靠的保障,在云计算的模式下,软件工程在面向对象的基础上进一步抽象化,提升到面向服务的层次。面向服务也就是将业务流整体分成子业务流,对子业务流级别的模块进行组织设计,并最终形成软件系统整体。基于云计算的开发平台,软件的开发将不再像往常一样,在面向服务这样更高层次的抽象基础上,开发人员可能只需要写很少甚至不写代码,对现有资源加以组织和设计就能完成业务流程。

  二.更高程度的软件复用

  云计算服务平台为软件开发人员提供了大量开放的,高成熟度的开发构件,随着软件构件的成熟度不断提高,软件复用也必将更为广泛。而软件复用一直是提高软件开发效率和克服软件危机的重要途径,软件复用的流行一方面帮助使用者提高了软件开发效率,降低了软件开发的时间成本开支,提高了软件开发的绩效,另一方面软件反复使用的过程也是一个对软件不断完善,不断改进的过程,软件出错的概率不断减小,软件的可信度也随之得到提高,就比如开源的linux在几十年的时间通过全世界的使用被反复修改,这才奠定了如今其在操作系统领域难以撼动的地位和可信度。

  三.开发面向应用,需求成为重点

  在软件开发的传统瀑布模型中,软件开发者需要一样花费大量的时间精力集中在建模和底层架构的实现,而迫于软件开发期限的压力,最终功能的实现很难与需求达到完美契合。在云计算基础上对于软件开发层次的进一步抽象下,开发人员不必再像往常一样在需求和设计之间协调,而可以腾出更多时间直面客户需求,软件开发将变为需求导向,需求在软件开发中将占据愈发重要的地位。

  四.开发人员大众化

  云计算和其提供的平台服务的出现,不仅仅极大地方便了软件开发人员,也在一定程度上降低了程序开发的门槛。云平台的普及使得软件的开发不仅仅由拥有高性能硬件设施的大公司和专业的技术人员组成,也使得业余甚至其他行业的从业人员,跨过硬件设施架构,环境配置等专业门槛,单单通过浏览器和简单的工具也能参与到软件的开发中来。云计算打破了开发者和用户之间的绝对壁垒,使得软件的开发变得更加平民化,大众化。特别是对一些大规模数据量和高密度信息量的项目工程,云计算带来的开发门槛降低使得项目的开发进度得以显著加快,开发成本得到降低。

  五.降低软件开发耦合程度

  软件发展的过程就是一个不断提高抽象程度的过程,在传统软件开发过程中,各个开发环节间的耦合程度虽然逐渐有所缓解,但仍旧因为耦合程度过高带来了不少麻烦和问题,相比于传统软件工程的全局控制的封闭流程,云计算带来的面向服务的体系结构的出现极大程度解决了这个问题。它能够将异构平台上应用程序不同的功能部件(服务)通过定义好的接口与规范,以松耦合的方式整合到一起。软件开发中的各个流程将向着更加独立,并发的形式逐渐转变。

  六.软件测试云端化

  传统软件测试是通过开发者的本地测试,运行环境配置复杂且受到硬件环境和软件环境的影响,各种配置参数的组合给测试人员添加繁复测试负担的同时,也带来了人力物力的极大耗费。云计算为软件的测试通过“云”搭建测试环境,提供各种测试工具。测试人员通过云测试平台,提交测试脚本即可展开测试,而软件和硬件环境的配置则可以交给服务商来完成,测试人员可以专注于软件自身的性能在不同环境下的测试,而不必与各种各样的测试环境配置和测试工具打交道。同时,云测试平台的共享化也会使测试结果和质量更为可信。

  七.云计算带来的信息安全问题

  云计算所使用的虚拟化技术,资源池技术导致计算环境内服务器,存储器等硬件设备被高度整合和共享,同时,大量的数据存储和计算操作都在云端进行,这就势必要进行用户原始数据的传输,且将在云端被保存,网络传输过程中数据是否安全,云端的数据如何防止恶意泄露和攻击,这些云计算带来的信息安全问题值得我们在软件开发过程中得到足够的重视和警惕。

  总结:云计算作为新兴的技术浪潮,势必会对传统软件工程领域带来冲击和影响,它在充分利用计算资源,降低开发成本等方面展现出了无可比拟的优势,但同时也带来了信息安全的问题。所以,传统的软件工程模式不可能一下子被完全推到,新旧交织,多元并存将会是未来软件工程发展的长期状态。毫无疑问,云计算的兴起为软件工程注入了新的血液,推动软件工程走向一个新的历史性转折点,但如何把这把锋利的武器用好,还需要我们未来不断小心的尝试和探索。

 

参考文献:

[1]史杰,谢丽君,史少华.论云计算对软件工程的影响[J].昆明学院学报,2011(06)

[2]罗军舟,金嘉晖,宋爱波,东方 .云计算:体系架构与关键技术[J].通信学报,2011(07)

[3]林 利,石文昌 .构建云计算平台的开源软件综述[J].计算机科学,2012(11)

[4]王伟军,姜毅,刘 蕤,Kari Smolander.云计算环境下软件测试研究进展.现代图书情报技术,2012(11)

  

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