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

云计算对软件工程的影响

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

         什么是云计算:

         云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。对于云计算的定义现阶段广为接受的是美国国家标准与技术研究院(NIST)定义:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。与网格计算相比(云计算更好地迎合了IT企业界的发展需求(它不仅是一种技术体系(同时也是一种商业模式,由于人类所掌握的物理规律的限制(单处理器所具有的信息处理能力已经不能再按摩尔定律无限制的增长(传统的软硬件产品提供商已经很难通过提高器件性能来发展其产品市场(而云计算的理念正好提供了新的利润增长点(微软IBM等跨国公司正在全球布点(构建为全社会提供公共信息服务的云服务系统,。

技术分享

 

 

 

 

         什么是软件工程:

软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。

在现代社会中,软件应用于多个方面。典型的软件有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,也提高了工作效率和生活效率 。

 

         软件的开发与运算模式与运行方式有着直接的关系,随着云计算技术的不断发展与推广,对传统软件工程产生了深远的影响,主要体现在以下几个方面:

 

         对软件架构的影响:

                   目前,软件系统都是基于C/S技术的3层架构,数据服务层(DataAccessLayer,DAL),业务逻辑层(BusinessLogicalLayer,BLL),表示层(UserInterface,UI)。数据服务层提供持久服务,主要用于软件系统数据的存储与管理;业务逻辑层是3层架构中至关重要的一层,它起到了连结数据服务层和表示层之间的桥梁作用,主要用于数据服务层与表示层之间的数据互操作;表示层采用Win-dows窗体或Web浏览器,用于实现软件系统与用户之间的交互,为用户提供一种交互式的操作界面。在这种的3层架构中,中小型软件数据服务层和数据库都是放在同一服务器之上,数据的存储通常都是采用DBMS(DataBase  Managemant  System)或XML文档两种方式。这样的模式很可能在服务器发生不可逆的错误之后(自然灾害或者服务器硬盘发生错误不可修复)导致数据丢失。

技术分享

 

         随着云计算技术的发展,可以将软件的数据服务层移植到云计算服务中,这样,本地的服务器就可以只存储XML文件而不需要再存储庞大的DBMS软件,实现了软件数据的分布式存储,解决了传统3层软件架构中数据存储和数据服务同时放在一个服务器上带来的潜在问题。同时也提升了软件的安全性。

         与此同时,业务逻辑层可以对本地服务器上的XML文档进行数据操作,也可以直接获取云计算服务中的数据服务,提升了软件架构的开放性。

 

         对软件对象的影响:

         云计算显著增加了软件对象的多样性,在云计算的架构下,数据服务层存储在云计算服务,而不再是存储在本地服务器的上,这意味着软件的对象不再依赖本地服务器的环境与形式而是由云计算服务所决定,这样就可以摆脱原有软件的束缚,而达到软件对象的多样性的目的。比如现在的研究方向之一的物联网,随着云计算的发展,软件的操作对象可以成为洗衣机也可以是冰箱,电视等等,可以是身边任意可以连上云服务的对象,让软件直接面对的对象大大丰富。

 

 

         对软件过程的影响:

在云计算的模式下,软件工程在面向对象的基础上进一步抽象化,提升到面向服务的层次。 面向服务也就是将业务流整体分成子业务流,对子业务流级别的模块进行组织设计,并最终形成软件系统整体。面向服务使软件在IT 系统结构层次结构系统中更加接近应用。

通俗的说,云计算将软件的分成各个功能,从功能的层次上开始构建软件的轮廓,使得软件过程进一步抽象化。与此同时,软件的可复用程度得到了提升,每个功能作为各个模块可以为别的软件所利用,提高了软件的可复用性。

         功能的模块化也提升了软件过程的动态性,根据不同的应用场景使用不同的软件功能模块,使得软件可以适用于多种不同的环境。在更新与修改程序功能时也可以直接通过更改相应功能的方式实现,提升了软件的灵活性。

 

 

         对开发组织的影响:

         在软件开发更趋向与面向功能的同时,软件的开发对于开发组织的要求会逐渐降低,趋于社会化。云计算将软件工程进一步抽象化,提升到面向服务的层次,软件的复用性显著增强,开发新软件的难度会显著降低。由大型的软件公司实现好各种可重用的功能,普通的开发者只需要根据自己的需要使用这些功能就可以按照自己的想法开发出适合自己的新软件,降低了软件开发的门槛,使得软件的开发组织逐渐社会化。社会组织诸如学校,政府,机构可以根据不同的需求而开发出适合的软件,让软件进一步普及,同时拥有更好的适应性。

 

         对开发人员的影响:

         正如上面所言,云计算将软件进一步抽象,提升到面向服务的层次,对于开发者而言会显著降低难度,开发者甚至不需要写很多的代码,只需要将自己需要的功能串联起来就可以形成自己需要的软件。这会使得软件的开发难度大大降低,开发者不需要太高的编程水平就可以编写出自己需要的程序,显然,开发人员会逐渐大众化。

         有一点要注意的是,开发人员的大众化并不是说对于所有程序员而说,所需要的技能降低,门槛降低了。只是对一般人而说开发程序变得现实,变得触手可及,自己需要的软件可以实现。而对于开发这些功能模块的程序员而说,要求反而是提高了。如何提高程序功能的可复用性,可拓展性,将会给这些开发功能模块的程序员更大的挑战。

 

 

         对于资源部署的影响:
         在云计算的影响,软件的数据服务层逐渐向云计算服务上迁移,同时软件对象也逐渐多样化,这意味着,对于资源的管理会趋于虚拟化,这是适应云计算框架的必然趋势。

 

 

        

         总结:云计算由于其虚拟性,开放性对软件开发产生了深远的影响,将软件进一步抽象至面向功能的层次,降低了软件开发的难度,使得开发人员逐渐大众化,同时也因为其先进的资源管理机制使得软件更具开放,合理,安全。

 

 

引用:

1:Wikipedia软件工程,云计算 词条

2:百度百科 软件工程,云计算词条

3:《论云计算对软件工程的影响》     史杰,解继丽,史少华

4:《云计算环境下软件工程模式初探》   张勇

5:《云计算的软件架构研究》   章 俊,魏继伟,林和平

云计算对软件工程的影响