算对于传统软件工程的影响
說起云計算對于傳統軟件工程的影響,我們當然首先需要了解這兩個概念。
一、傳統軟件工程
首先是傳統軟件工程,了解傳統軟件工程其實就是了解軟件工程的歷史,早期的計算機系統以硬件為主,程序員在早期的計算機上通過比較復雜的操作來運行比較簡單的程序,程序的規模一般不會很大。但隨著計算機硬件的不斷發展,計算機系統的性能也越來越強,在上面運行的軟件規模也就越來越大。到了上個世紀六十年代,“軟件危機”這一事實逐漸被大家所認識,這其中的具體問題包括:軟件生產難以滿足用戶日益增長的需求、軟件開發者與用戶交流不充分、軟件質量難以保證、軟件維護不當等問題。我想這樣的問題的出現原因應該主要是以下原因造成的:軟件規模越來越大,小型程序的開發可能還不需要特定的方法和原則,但規模大起來的話,沒有明確的開發原則,工程化方法作指導,就會使雜亂無章的軟件開發造成越來越多的問題。
于是1968年首次提出了軟件工程的概念,軟件工程強調可維護性,強調文檔化、強調軟件生命周期系統化。軟件工程的提出也讓軟件開發的研究成為了一個獨立的領域,和硬件研究區分開來。軟件開發的一般流程為分析、設計、編碼、運行、維護五個步驟。雖然在幾十年之間軟件工程的各種新的開發思想不斷被提出,但是大的格局并沒有改變。
?
二、云計算
接下來我們要說說云計算。在維基百科中,云計算被定義為一種基于互聯網的計算方式,通過這種方式,共享的軟硬件資源和信息可以按需求提供給計算機各種終端和其他設備。云計算描述了一種基于互聯網的新的IT服務增加、使用和交付模式,通常涉及通過互聯網來提供動態易擴展而且經常是虛擬化的資源。服務分為以下模式:
基礎設施即服務(IaaS):是消費者使用處理、儲存、網絡以及各種基礎運算資源,部署與執行操作系統或應用程序等各種軟件。
平臺即服務(PaaS):提供運算平臺與解決方案堆棧即服務。平臺即服務使用戶能將云基礎設施部署與創建至客戶端,或者借此獲得使用編程語言、程序庫與服務。用戶不需要管理與控制云基礎設施,包含網絡、服務器、操作系統或存儲,但需要控制上層的應用程序部署與應用托管的環境。
軟件即服務(SaaS):在這種軟件交付模式中云端集中式托管軟件及相關數據,軟件僅需透過互聯網,而不需安裝即可使用。
?
說白了,我認為這三種服務分別為三個層次。如果把軟件開發比喻成做一個拼裝玩具,那么我們至少需要零件和改錐、鉗子這樣的工具。于是為我們提供基礎運算資源等資源的基礎設施即服務就像是為我們提供了零件和工具,我們需要自己去完成所有的安裝工作。
但是,也有人不愿意從第一步開始安裝,但也不愿意直接買來已經組裝完畢的玩具,因此有的時候他們會選擇買來半成品進行安裝。這時候,在玩具分為幾個模塊的情況下,如果銷售玩具的人事先將幾個模塊組裝好,然后進行銷售,這樣就能滿足這類人的心愿。這類服務就很像平臺即服務(PaaS),提供了所需的平臺。
當然,還有些人并不想做任何安裝工作,只想拿來就用,那么這種人買玩具的時候只要買現成的就好。因此有時銷售者也會販賣已經組裝好的玩具。這類玩家就好比接受軟件即服務(SaaS)。
三、關于云計算的出現對于傳統軟件工程的影響
?????? 了解了云計算是什么,傳統軟件工程是怎么回事,我們如何去分析云計算究竟會給軟件工程帶來什么呢?我想我們最重要的事情是分析云計算的出現目的是什么,這些目的所作用的對象和軟件開發有什么樣的關系。
?????? 1、我想我們都能想到的一點是:軟件開發成本的降低。以前在沒有云計算的概念的時候,開發軟件所需要的所有硬件都必須要由公司自己來購買,如果需要硬件有很高的運算能力的話,還必須要花大價錢來購買高價的硬件。除了硬件之外,工具軟件、軟件許可證也都需要公司不小的開銷,更何況軟硬件一般都需要定期進行維護,這又是一筆不小而且需要公司長期進行承擔的開銷。而這些問題,這些思之令人感到頭大的開銷,在有了云計算這一概念之后,必將得到極大地緩解。
?????? 2、軟件安裝的困難也會減少很多。我想大家都很清楚,工具軟件的安裝,環境的搭建,有時很簡單,有時卻非常麻煩,會耗掉很多時間,有時工具軟件還會有開發者事先不知道的問題。這些都會使得軟件開發程序員浪費掉大量時間和精力,情緒有時也會受到很大影響。而有了云計算的軟件即服務(SaaS)之后,軟件開發者并不需要安裝軟件就可以使用。
?????? 3、硬件的利用效率也會有很多提高。很多時候我們自己買來硬件,自己進行管理調度的效果會比較差,使得程序運行的效果也會比較差。而云計算恰恰又幫助我們解決了這一問題,我們無需自己進行硬件的調度和管理。
?????? 4、軟件的復用程度也會提高。云中的軟件是被不同開發者所共有的,因此不同開發者都在用這同一個軟件,而不是不同的開發者每人裝了一個這樣的軟件,因此被共用的軟件被使用的次數自然也就得到了很大的提高。在提高的同時,軟件自身存在的問題也更容易被發現,因此軟件值得信任的程度也更高。而可信性這一點對于軟件開發的效率提高也起著非常大的作用,根據國內著名PaaS提供商800APP 提供的信息,云計算模式下開發時間可以縮減1/3~1/10。績效與可靠的矛盾關系一直是軟件危機的根源所在,云計算在這兩方面同時具有的優勢無疑為緩解軟件危機帶來了希望。
?????? 5、不僅僅是數量,我相信軟件的質量、以及用戶的滿意程度也會得到非常大的提高。為什么這么說呢?因為在有了云服務的情況下,特別是在有平臺即服務、軟件即服務的情況下,很多原先在軟件開發的過程中需要開發者自己動手去寫的底層很瑣碎的代碼現在直接拿來用即可。這顯然就為軟件開發者爭取了更多的時間來思考如何設計整個架構才能更好地滿足客戶的需求,而不是糾結于無盡的小bug的調試中。同時,由于不再像過去那樣需要開發者有非常強的調試能力,因此會有更多人能夠勝任開發者的工作,人手的增加也會提高軟件的開發速度。因此從這個角度也能得出云計算加大軟件開的的效率的結論。
?????? 6、最后,我還發現,開發商和用戶的二元格局被打破,變成了開發商——云計算中心——用戶三元格局。這可能是不多的對于軟件開發商不利的一面。因為大量的計算和服務工作交給了云計算中心,用戶所出的酬勞就必然要拿出相當一部分來給云計算中心,從而使得開發商的地位下降。因此我想對于開發商來說,最重要的事情是抓住所有云計算中心提供的便利因素,盡最大可能提高開發速度,從而在和以前相同的時間內能夠完成更多的項目。當然,這樣有可能反而加大了開發者的壓力和負擔,因此如何把握這一尺度,在我看來是一個相當困難,值得好好研究的點。
?
四、小結
?????? 我們現在可以知道,在云計算的影響下,軟件開發的效率、質量都會有很大的提高。但所有的失誤都有兩面性,云計算也會打破原先的兩極格局,使得開發商對其是一種“愛恨交織”的想法。不過,我想傳統的軟件工程開發流程中,雖然很多步驟的實現都會比原先方便很多,但大的步驟還是那些,并沒有因為云計算的出現而有哪一步消失,因此我認為云計算不會成為打倒傳統軟件工程的“銀彈”。
?
參考文獻:
史杰,謝麗君,史少華.《論云計算對軟件工程的影響》.昆明學院學報,2011,33(6):67-68
李未《云計算與軟件開發變革》2013年03月19日
轉載于:https://www.cnblogs.com/zhangshaojun96/p/5990244.html
總結
以上是生活随笔為你收集整理的算对于传统软件工程的影响的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java基于springboot+vue
- 下一篇: java截全屏,Selenium+Jav