云计算对于传统软件工程的影响
云計算對傳統軟件工程的影響
傳統軟件工程的概念
傳統軟件工程采用的一是結構化泛型,基本階段按順序如下:需求階段、規格說明階段、設計階段、實現階段、集成階段、維護階段、退役等,這是一種適用于代碼量適中的傳統軟件開發方式。
而隨著社會進步與技術發展,軟件越來越復雜,計算越來越繁瑣,代碼量也越來越大,存儲和處理的信息越來越多,軟件規模也越來越大。而傳統的結構化設計方法在大規模的軟件的開發組織和維護方面困難重重,軟件的復用性能也不好。于是發展出了云計算的概念。
云計算的概念
云計算是以數據為中心的一種數據密集型的超級計算,是分布式計算、并行計算、效用計算、網絡存儲、虛擬化、負載均值、熱備份冗余等傳統計算機和網絡技術發展融合的產物,在數據存儲,數據管理,編程模式,并發控制,系統管理等方面具有自身獨特的技術。云計算基于互聯網的相關服務的增加、使用、和交互模式,通過互聯網來提供動態易擴展且經常是虛擬化的資源。這是一種按使用量付費的模式,提供可用的、便捷的、按需的網絡訪問,進入可配置的計算資源共享池,這些資源能夠被快速提供,而只需要投入很少的管理工作,或與服務供應商進行很少的交互。云計算是通過使計算分布在大量的分布式計算機上,而非本地計算機或遠程服務器中,企業數據中心的運行將與互聯網更相似。這使得企業能夠將資源切換到需要的應用上,根據需求訪問計算機和存儲系統,這樣的好處是由于不受本地資源的限制,客戶端可以有更廣闊的資源庫。
云計算與其說是一項技術,不如說是一種服務,為來自四面八方的運用提供自己能提供的服務。云也可以為傳統軟件工程提供更加廣泛的資源。
云計算對傳統軟件工程的影響
1.???? 軟件架構的開放性
互聯網時代,網絡上的共享和開源達到前所未有的新高度。在此基礎上,基于云計算開發的軟件的開放性得到了極大的提高,軟件結構的復用性也有了很大的提升。云計算可以提供成熟的軟件體系,設計構架甚至開源代碼,在分布式的計算模式下,可以被不同的“云下”開發者所使用,甚至是不同的軟件開發團隊之間。在軟件即服務(SaaS)模式下,云計算抽象了傳統開發和集成中的低端任務,提供了標準化的、即裝即用的解決方案。在云端,我們可以找到很多構件作為我們要開發的軟件的一部分,而這些構件會在不斷的使用中改進,變得越來越成熟。同時,新開發出的軟件可以作為以后要開發的更加復雜的軟件的構件。
2.???? 軟件對象的多樣性
傳統軟件開發過程中,數據和方法是相互獨立的。而目前最流行的面向對象開發方法卻是將數據和方法結合,起來封裝在一起。這種開發方法是從一開始人們在分析階段就可以將對象提取出來,在設計階段進行對比,從而進行程序實現,它的階段之間的變化比結構化設計要平緩,從而減少了錯誤的數量,但是這樣設計的對象存在不同開發者,不同軟件之間的理解差異,實現方法低效而且有很大的局限性。云計算時代每個人都可以將自己構造的對象放到網絡上,云計算提供商也可以提供成型的、多種多樣的對象供開發者使用,不同的軟件開發者對于對象的理解趨于統一,可以復用前人已有的經驗,減少時間花費。
3.軟件過程的動態性
軟件開發過程中,項目所需的資源,比如開發人員、數據、設備和軟件需求都可能是動態變化的。一個軟件開發團隊,可能會有正常的人事調動;軟件的使用范圍可能隨著時間而不斷擴大,甚至超出最初的設計;軟件開發同時,設備也在更新換代。傳統的軟件開發需要一個嚴謹的流程,出現的變化可能對于開發產生巨大的負面影響,造成損失。而相比傳統軟件工程,基于云計算的軟件工程不再是瀑布模型的,并發模型、多重螺旋模型將成為主流。在軟件部署之后,每個階段交付的都是中間版本,軟件升級會變得越來越頻繁。有任何變化,也可以隨時改動,在下一版本更新或者上傳到云里,軟件開發的過程變得靈活。
4.開發組織的社會化
傳統軟件開發一般是一個開發團隊,跟團隊外的人交流很少,而且遇到人員資源的流動,通常是一個程序員走了,需要兩個程序員去頂替他的位置,在開發者方面存在巨大的局限性。而在云計算模式中,人員流動并不存在影響,只要有一臺能上網的電腦,就可以隨時隨地的開發并和團隊交流,使得開發變得更加包容與開放?;谠朴嬎愕能浖_發讓用戶放棄了對應用程序的部分控制權和自治權,將這部分控制權和自治權交由云平臺運營商來掌握,這就意味著軟件的組織管理不再僅僅是開發者的任務了,而是一個社會化團體的開發管理。
5.開發人員的大眾化
軟件公司的軟件開發雖然具有優秀的組織管理機構,但是在開發人員上仍然有一定的局限性。一個公司的開發部門的人員,可能由于企業文化的影響等因素,存在一定的思想局限。而在云計算下,很多的模塊設計可以從云計算提供商直接獲得,只要篩選適合自己開發的模塊就好。而不僅僅是一個公司的固定人員,他們也不用完成所有的任務,而可以在自己擅長的領域做出更大的成就。同時,軟件開發的前期準備成本減小,人人都可以量力而行的租用云上的資源和設備,這使得商業化編程得到普及,人人都可以有一個安全穩定的開發環境實現自己的應用。
6.???? 資源部署的虛擬化
云計算是一種通過internet以服務的方式提供動態可伸縮的虛擬化資源的計算模式。計算資源虛擬化是云計算技術的核心,通過虛擬化技術使得上層的軟件應用和底層的軟件實現分離,由于資源都在云端,用戶可以隨時隨地訪問這些云端資源,而且是按照需求,用多少就買多少。這樣就使得對資源的利用率達到了最大化,同時也使得程序能夠永遠保持在最高的運行效率。在云資源高度虛擬化的情況下,通過云計算的三種模式IaaS(基礎設施即服務)、PaaS(平臺即服務)和SaaS(軟件即服務),軟件資源和硬件資源都可以通過云端輕松獲得。軟件開發更多的是需要考慮人力資源。
總結
云計算促成的軟件工程的發展是否能成為破解軟件危機的“銀彈”尚不可知,但是它卻在提高效率、降低成本等方面發揮出效力。雖然云計算技術還沒有非常成熟,但是越來越多的人已經意識到云計算的好處。在云計算越來越普及的大環境下,軟件開發模式必然要做出相應的改變。軟件工程的傳統開發模型以及有關技術勢必在云計算的廣泛應用下隨之變革,更加多元化的軟件工程開發模式和商業模式都將成為可能。云計算的發展,軟件開發會進入一個全新的時代。
轉載于:https://www.cnblogs.com/sumalefu/p/5991202.html
總結
以上是生活随笔為你收集整理的云计算对于传统软件工程的影响的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 20169207《Linux内核原理与分
- 下一篇: Java堆栈的应用2----------