云计算对传统软件工程的影响
Posted AmorFati
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云计算对传统软件工程的影响相关的知识,希望对你有一定的参考价值。
云计算对传统软件工程的影响
随着科技的发展以及人们需求的提高,软件变得愈加复杂多样,这无疑加深了软件开发、管理和维护的难度。人们一直为简化软件开发而不懈努力着,也取得了很大的成效。而互联网的飞速发展也为软件工程的发展提供了更多的可能,其中云计算就是很有代表性的一方面。接下来我将分六个方面来讨论云计算对传统软件工程的影响。
在讨论之前,我们要先了解什么是云计算。云计算这一概念最先在1997年由南加州大学一名教授提出,在2007年作为新名词被一些大型IT公司接受。云计算概念分为狭义和广义两种。狭义云计算指IT使用模式和基础设施的交付,是指通过网络以按需、易扩展的方式获得所需的资源;广义云计算是指使用模式和服务的交付,指通过网络以按需、易扩展的方式获得所需的服务[1]。“云”是指“计算”的载体和实现场所,“计算”是指计算机上提供的一切资源[2]。云计算理论上可以无限扩展,这也就为软件开发提供了更加优秀的技术资源,一些靠单处理器无法处理的难题也就有了解决的可能。云计算为软件工程提供了新的契机,下面就开始我们的讨论。
1. 软件架构的开放性
软件架构是指软件在组件,彼此间和与环境间的关系,引导设计发展原则中体现的系统的基本结构[3]。在传统软件工程中,软件架构是封闭的,一些大企业拥有大量优秀架构师,而刚刚起步的小企业可能就无法得到好的架构。而相比较于传统的软件架构,云计算的构件更加开放和成熟,软件的复用程度大大提高。大量架构师所编写的优秀架构就可以在“云”中共享,相互交流,补充各自的纰漏,提高代码的质量,同时这样也可以大大减少代码编写的工作量,软件工程中的部分需求就可以直接在“云”上寻找合适的优秀架构,结合具体的代码来实现,节省了很多时间和资源,提升了软件开发的效率。此外,一些小企业也可以通过支付一定费用的方式获得所需的架构,从而获得发展,提高竞争力,为软件产业提供新鲜的血液。
2. 软件对象的多样性
在如今面在如今面向对象编程广泛应用于软件开发的情况下,软件对象成为软件工程中一个十分重要的向对象编程广泛应用于软件开发的情况下,软件对象成为软件工程中一个十分重要的元素。传统的软件工程中,开发人员数量有限,根据需求能够分析设计出来的对象也是有限的。而在云计算这一开放平台上,开发者可以借鉴相似的软件中设计的对象来查缺补漏,同时也可以将自己设计的优秀的软件对象上传到“云”中,作为一种通货来交换所需的资源。由此云平台上将提供极多的对象选择,极大地提高了软件对象的多样性,使得软件工程质量更高更优秀。
3. 软件过程的动态性
在软件工程的学习中,我们了解到软件的开发是有详细且严格的时间计划、合理的人力资源和物质资源分配的,较为固定。严谨的计划带来的是低容错率,一旦某一个部分出问题,就会影响整体的进度。除此以外,如果软件开发中途提出某些需求或功能的改变,也会对整个软件工程造成较大的损失。而基于云计算的软件工程可以将这些问题带来的损失降到最低。首先,云平台上所提供的资源极其丰富,随时可以申请使用,按需分配,避免了资源分配不合理的情况;其次云计算可以根据用户开发软件的需求及时做出改变,比如传统的软件工程中,如果开发途中需要使用另一种语言,就要重新配置开发环境等等,而在云计算平台上编程则无需考虑这一点,可以节省大量的时间;最后,云计算的存在及资源按需分配的特点,使软件工程的计划更为宽松,划分在计划设计和文档编辑上的时间更少。以上归结起来,体现出了云计算使得软件开发的过程更动态,可以实时更新实时改变,这对于技术极速发展,信息爆炸传递的今天是很必须的。
4. 开发组织的社会化
由于云计算平台的开放性,开发者间的相互交流无疑会增加许多。传统的软件工程开发过程中,开发者只能和身边的人进行合作。而有了云计算,有相同兴趣目标的开发者可以不再受距离的限制,人员召集更加方便,软件开发也就更有效率。同一个项目可以由不同地域的人一起开发,集思广益,开发出来的产品也就更优秀,质量更高。我们现在使用的Github就是这样一个云平台,我们可以把自己的代码上传,同一个组的人可以随时在Github上查看、修改和注释,无论何时何地,只要有一台可以接入网络的设备、有互联网就可以进行网络开发。
5. 开发人员的大众化
随着开源软件的逐渐增加,普通人员也有了接触到代码的机会,从而进行学习,这降低了软件开发的门槛,一些并不是以编程为主要职业的业余开发者也有可能参与到开发中。而云计算平台上有许多软件项目部分功能的代码可以参考或是重复使用,有些代码无需了解其原理就可以直接使用,相当于黑箱一样,这也使得开发人员的任务更加简化,一些基础较为薄弱的程序员也可以参与到一些重大项目的开发中,降低了软件开发的门槛与资本,开发人员也会由于代码学习难度的降低而变得大众化,更多的人可以加入软件工程中。
6. 资源部署的虚拟化
云计算一个非常重要的特性就是虚拟化。传统的软件工程对硬件的要求很严格,软件开发只能在实体上进行,而且要配置各种环境并对硬件进行调试。基于云计算的软件工程则没有这种要求,只要有网络,用户可以从各种终端上进行开发,不用考虑具体的运行位置,而且开发环境可以随时切换[4]。一些个人或者是小型企业无法实现的功能,比如超级计算,也可以通过云计算达成[5]。资源部署的虚拟化将开发人员从复杂的硬件和开发环境中解放出来,不用考虑不同软件的开发环境间可能会发生的冲突,也不会在灵光一现的时候由于没有硬件资源而错失时机,让软件工开发不再局限于小小的办公室间,随时随地都可进行,更加便捷。
以上就是我认为云计算可能会对传统软件工程产生的积极影响,云计算的出现,降低了软件开发的成本,提高了开发效率。虽然如今的云计算还不是很成熟的技术,但我相信,软件工程必将在云计算逐渐广泛应用下产生革命性的改变。未来的软件其功能将更丰富,逻辑更复杂,云计算将是突破技术壁垒的关键,有了云计算的加持,软件开发将更高效更简洁。当然,云计算也有可能会产生一些负面影响,比如开放带来的版权问题、网络限制以及在线编程的响应速度等等,我相信,随着技术的不断发展,这些问题都将被解决。瑕不掩瑜,我们应该尽早将云计算与软件工程结合起来,打破传统的思维,争取在这方面走在世界的前列中。
参考文献:
[1] 程国江. 云计算简介及应用前景[J].中国新技术新产品. 2011
[2] 武佳杰. 云计算简介[J]. 通信设计与应用. 2016
[3] Peter Eeles.What is Software Architecture[Z]. Rational Edge. 2006
[4] 张勇. 云计算环境下软件工程模式初探[C]. 第三届全国软件测试会议与移动计算、栅格、智能化高级论坛论文集. 2009
[5] 史杰,解继丽,史少华. 论云计算对软件工程的影响[N].昆明学院学报. 2011.33(6)
以上是关于云计算对传统软件工程的影响的主要内容,如果未能解决你的问题,请参考以下文章