回顧軟件技術(shù)發(fā)展的歷史,最明顯的趨勢(shì)是軟件變得越來(lái)越復(fù)雜,計(jì)算越來(lái)越繁瑣,存儲(chǔ)和處理的信息越來(lái)越多,軟件危機(jī)就是用戶對(duì)于軟件功能的要求太多,以至于超過了軟件技術(shù)能夠滿足的程度,從而使得軟件產(chǎn)品在原有基礎(chǔ)上不斷改動(dòng)增需,軟件變得越來(lái)越復(fù)雜,以至于開發(fā)組織越來(lái)越難。從最初的機(jī)器指令開始發(fā)展到面向?qū)ο笤俚饺缃裥屡d的云計(jì)算,目的都是讓軟件開發(fā)變得越來(lái)越簡(jiǎn)單,越來(lái)越能迎合用戶的要求。

  要說云計(jì)算對(duì)軟件工程的影響,首先來(lái)了解了解云計(jì)算。云計(jì)算,用最簡(jiǎn)單的一句話來(lái)解釋就是“客戶端將運(yùn)算任務(wù)交給服務(wù)器(云端),服務(wù)器運(yùn)算完成之后,再將運(yùn)算結(jié)果交還給客戶端”。具體說,就是客戶端(這里的客戶端可以是個(gè)人也可以是企業(yè))在某種情況下,本地的資源不足以支持要進(jìn)行的運(yùn)算,就運(yùn)用線上已有的成熟的資源和數(shù)據(jù)來(lái)為自己完成自己的需求。這樣的模式有三個(gè)好處,第一,由于不受本地資源的限制,客戶端可以有更廣闊的資源庫(kù),可以說享有現(xiàn)有的所有種類的資源。第二,對(duì)于做云計(jì)算的企業(yè)來(lái)說伸縮性更好,如果市場(chǎng)需求大則投入更多,反之減少投入。第三,pay as you go,也就是你取多少付多少,再也不用想為了一個(gè)簡(jiǎn)簡(jiǎn)單單的事情而專門買一個(gè)服務(wù)器。這里對(duì)云計(jì)算也就不再做深究,理解云計(jì)算的基本原理和特征即可。

  云計(jì)算,與其說是一項(xiàng)技術(shù),不如說是一種服務(wù),就像IT界的自來(lái)水公司一樣,為來(lái)自四面八方的運(yùn)用提供自己能提供的服務(wù),對(duì)于傳統(tǒng)軟件工程也是如此,云可以為傳統(tǒng)軟件工程提供更加廣泛的資源。云計(jì)算對(duì)軟件工程的具體影響如下。

  1.軟件體系結(jié)構(gòu)化

  與傳統(tǒng)的軟件工程相比,基于云計(jì)算的軟件工程的體系結(jié)構(gòu)變得更加構(gòu)件化以及開放性更大。在軟件即服務(wù)(SaaS)模式下,云計(jì)算抽象了傳統(tǒng)開發(fā)和集成中的低端任務(wù),提供了標(biāo)準(zhǔn)化的、即裝即用的解決方案。在云端,我們可以找到很多構(gòu)件作為我們要開發(fā)的軟件的一部分,而這些構(gòu)件會(huì)在不斷的使用中改進(jìn),變得越來(lái)越成熟。同時(shí),新開發(fā)出的軟件可以作為以后要開發(fā)的更加復(fù)雜的軟件的構(gòu)件。這樣,軟件危機(jī)可以在一定程度上得到緩解。在這種軟件開發(fā)模式下,軟件的體系結(jié)構(gòu)基本上是完全處于分布式的,一個(gè)軟件由客戶端、服務(wù)端、管理端、開發(fā)端、測(cè)試端等各個(gè)不同的構(gòu)件有機(jī)結(jié)合,也就是說,不同的軟件完全可能享有共同的構(gòu)件,這也使得應(yīng)用之間沒有了嚴(yán)格的物理邊界。

  2.軟件更具多樣性

  前文中已經(jīng)說過,云計(jì)算更多的是一種服務(wù),對(duì)于各個(gè)云計(jì)算服務(wù)公司來(lái)說,服務(wù)得更好,公司才能生存。這也就保證了云端資源的質(zhì)量。所以對(duì)于軟件開發(fā)者,完全不用擔(dān)心用于軟件開發(fā)的構(gòu)件質(zhì)量問題。面對(duì)一個(gè)需求,軟件開發(fā)者可以在云端茫茫的構(gòu)件中選擇