论云计算对传统软件工程的影响
如今,云這種概念已經越來越深入人心,似乎云已經成了我們生活的一部分。那么,這種近幾年興起的技術,是否對我們傳統的一些行業有所影響。
首先了解一下軟件工程的概念。軟件工程是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟件的學科。工程是科學和數學的某種應用,通過這一應用,使自然界的物質和能源的特性能夠通過各種結構、機器、產品、系統和過程,是以最短的時間和精而少的人力做出高效、可靠且對人類有用的東西。而軟件工程作為一種工程,則是應用計算機科學、數學、邏輯學及管理科學等原理,開發軟件的工程。
云計算,是一種基于互聯網的計算方式,通過這種方式,共享的軟硬件資源和信息可以按需求提供給計算機各種終端和其他設備。云計算描述了一種基于互聯網的新的IT服務增加、使用和交付模式。它是一種按使用量付費的模式,這種模式提供可用的、便捷的、按需的網絡訪問, 進入可配置的計算資源共享池(資源包括網絡,服務器,存儲,應用軟件,服務),這些資源能夠被快速提供,只需投入很少的管理工作,或與服務供應商進行很少的交互。用最簡單的一句話來解釋就是“客戶端將運算任務交給服務器(云端),服務器運算完成之后,再將運算結果交還給客戶端”。
那么,云計算到底對傳統軟件工程有什么影響呢?或者說,將云計算與軟件工程相結合,會有什么優勢。根據所查的資料來看,有如下幾個優勢:
1、軟件架構的開放性
云計算是分布式處理,并行處理,網格計算的發展,是一個具有連續性的軟件開發的分布式模型,這種開放式的軟件結構給了我們軟件開發者一個嶄新的多元軟件開發環境。云計算提供了方便,對應需求的網絡接口去共享一個可操作的資源池。云計算讓消費者(用戶或程序),一些開發者打開了未來網絡以一種超級計算機的姿態出現,依賴于云計算的特點,比如資源池和虛擬化,按需服務和隨處可取的接口。傳統的數據中心模式的軟件開發會給公司帶來很多麻煩,不光是落后的棧式軟件環境在更新一個軟件庫的時候就會導致整個系統的崩潰,這種復雜的結構也讓很多開發模式只可以應用在擁有大量人力的大企業,小型企業難以保證數據中心的穩定性使得很多新公司難以展開進一步擴張。云計算改變了這個局勢,不再受限于硬件環境的嚴格要求,企業可以自己使用網絡上的資源,環境由資源提供者來自行解決,將生產和生產環境的難題剝離,塑造一個嶄新的行業和技術。
2、軟件對象的多樣性
簡而言之,就是可以將云計算應用于許多不同類型的軟件。它能夠使合作研究開發,電子商務,健康護理,網格應用,企業計算設施,軍用應用和國家網絡安全這樣的大型分布式系統應用的快速發展成為可能。云計算更多的是一種服務,對于各個云計算服務公司來說,服務得更好,公司才能生存。這也就保證了云端資源的質量。所以對于軟件開發者,完全不用擔心用于軟件開發的構件質量問題。面對一個需求,軟件開發者可以在云端茫茫的構件中選擇能更好地滿足需求的構件。在這樣的條件下,就可以保證軟件對象的多樣性。
3、軟件過程的動態性
動態基礎設施(Dynamic infrastructure)可以通過提供基礎商業連續性和高可用性的需求加速了云計算和網格計算。以前,都是通過個人電腦進行管理。而這種技術,軟件開發所需的構件和資源都在云端,軟件開發的過程變得更加靈活,對于一個應用,軟件部署、運行管理、維護和開發過程都是并發的,因此也就可能會出現這種情況:第一次軟件部署可能只是一個很簡單的功能,由于云計算大大降低了軟件構件之間的耦合程度,在軟件開發各個過程并發進行的情況下,軟件可能在很短的時間只能就可以升級到可以實現很復雜的功能,而且這個發展方向的容錯性很強。
?
4、開發組織的社會化
我們不再局限于傳統開發幾個人自己做自己的,再用移動硬盤互相拷貝的方式,有了云服務和云計算,我們可以利用云來分享,同樣的,你的同伴也不再局限于你認識的人,感興趣的人自然會投入進你的項目。基于云計算的軟件開發讓用戶放棄了對應用程序的部分控制權和自治權,將這部分控制權和自治權交由云平臺運營商來掌握,也就是說軟件的組織管理不再僅僅是開發者的任務了。另一方面,對于一個開源項目,得益于云端資源的共享性,對世界各地的開發者來說,一個項目的開發過程是透明的,因此一個項目可以有來自不同區域的開發者來參與開發,可能這只是出于對技術的熱愛,而不是對利益的追求。
5、開發人員的大眾化
云的普及使開發者不再只是有工作的技術人員,業余愛好者或者其他行業的從業人員也可以參與自己感興趣的項目的開發工作之中。最著名的例子就是github,在一個軟件工程的實施過程中,不僅同組內的人員可以隨時更新其他人負責部分的代碼,如果這個項目很有價值,還會吸引各路大牛的挑錯和指導。一些初學者的門檻也變低了,可以通過閱讀其他人的代碼來學習技巧,開發人員逐漸的平民化,大眾化。
6、資源部署的虛擬化
現如今的軟件開發,資源一般有人力資源、軟件資源和硬件資源,在云資源高度虛擬化的情況下,通過云計算的三種模式IaaS(基礎設施即服務)、PaaS(平臺即服務)和SaaS(軟件即服務),軟件資源和硬件資源都可以通過云端輕松獲得,對于軟件開發者來說,剩下要考慮的資源只剩下人力資源。雖然虛擬化和云計算并非是捆綁技術,但二者可以通過優勢互補為用戶提供更優質的服務。云計算方案使用虛擬化技術使整個IT基礎設施的 資源部署更靈活。反過來,虛擬化方案也可以引入云計算的理念,為用戶提供按需使用的資源和服務。在一些特定業務中,云計算和虛擬化是分不開的,只有同時應 用兩項技術,服務才能順利開展。
總的來說,云計算服務器為開發人員提供了更加寬廣的開發平臺,在這之上開發人員可以更加高效地構建應用,而傳統的軟件工程行業則會受到諸多的限制使得開發過程沒有現在這樣高效便捷。云計算應用于軟件工程,可以使得我們開發人員可以專注于業務的實現而從復雜的運行環境中抽身出來,使得軟件變得更加可靠。
?
?
?
[1] wiki百科,云計算詞條
[2]《云計算之道》 鄒恒明著 P44-P45
[3] 張勇. 云計算環境下軟件工程模式初探[A]. 太原: 北方自動控制技術研究所,2009
轉載于:https://www.cnblogs.com/wqdbuaa/p/5982053.html
總結
以上是生活随笔為你收集整理的论云计算对传统软件工程的影响的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 装机、做系统必备:秒懂MBR和GPT分区
- 下一篇: bzoj1072: [SCOI2007]