回顾软件技术发展的历史,最明显的趋势是软件变得越来越复杂,计算越来越繁琐,存储和处理的信息越来越多,软件危机就是用户对于软件功能的要求太多,以至于超过了软件技术能够满足的程度,从而使得软件产品在原有基础上不断改动增需,软件变得越来越复杂,以至于开发组织越来越难。从最初的机器指令开始发展到面向对象再到如今新兴的云计算,目的都是让软件开发变得越来越简单,越来越能迎合用户的要求。

  要说云计算对软件工程的影响,首先来了解了解云计算。云计算,用最简单的一句话来解释就是“客户端将运算任务交给服务器(云端),服务器运算完成之后,再将运算结果交还给客户端”。具体说,就是客户端(这里的客户端可以是个人也可以是企业)在某种情况下,本地的资源不足以支持要进行的运算,就运用线上已有的成熟的资源和数据来为自己完成自己的需求。这样的模式有三个好处,第一,由于不受本地资源的限制,客户端可以有更广阔的资源库,可以说享有现有的所有种类的资源。第二,对于做云计算的企业来说伸缩性更好,如果市场需求大则投入更多,反之减少投入。第三,pay as you go,也就是你取多少付多少,再也不用想为了一个简简单单的事情而专门买一个服务器。这里对云计算也就不再做深究,理解云计算的基本原理和特征即可。

  云计算,与其说是一项技术,不如说是一种服务,就像IT界的自来水公司一样,为来自四面八方的运用提供自己能提供的服务,对于传统软件工程也是如此,云可以为传统软件工程提供更加广泛的资源。云计算对软件工程的具体影响如下。

  1.软件体系结构化

  与传统的软件工程相比,基于云计算的软件工程的体系结构变得更加构件化以及开放性更大。在软件即服务(SaaS)模式下,云计算抽象了传统开发和集成中的低端任务,提供了标准化的、即装即用的解决方案。在云端,我们可以找到很多构件作为我们要开发的软件的一部分,而这些构件会在不断的使用中改进,变得越来越成熟。同时,新开发出的软件可以作为以后要开发的更加复杂的软件的构件。这样,软件危机可以在一定程度上得到缓解。在这种软件开发模式下,软件的体系结构基本上是完全处于分布式的,一个软件由客户端、服务端、管理端、开发端、测试端等各个不同的构件有机结合,也就是说,不同的软件完全可能享有共同的构件,这也使得应用之间没有了严格的物理边界。

  2.软件更具多样性

  前文中已经说过,云计算更多的是一种服务,对于各个云计算服务公司来说,服务得更好,公司才能生存。这也就保证了云端资源的质量。所以对于软件开发者,完全不用担心用于软件开发的构件质量问题。面对一个需求,软件开发者可以在云端茫茫的构件中选择

网友评论