軟件工程和云計(jì)算_論云計(jì)算對(duì)傳統(tǒng)軟件工程的影響
本文關(guān)鍵詞:論云計(jì)算對(duì)軟件工程的影響,由筆耕文化傳播整理發(fā)布。
標(biāo)簽:class style com http it la 使用 sp 代碼 云計(jì)算是一種按使用量付費(fèi)的模式,這種模式提供可用的、便捷的、按需的網(wǎng)絡(luò)訪問, 進(jìn)入可配置的計(jì)算資源共享池(資源包括網(wǎng)絡(luò),服務(wù)器,存儲(chǔ),應(yīng)用軟件,服務(wù)),這些資源能夠被快速提供,只需投入很少的管理工作,或與服務(wù)供應(yīng)商進(jìn)行很少的交互。具體而言,其服務(wù)內(nèi)容包括了基礎(chǔ)架構(gòu)即服務(wù)( IaaS) 、平臺(tái)即服務(wù)( PaaS) 和軟件即服務(wù)( SaaS) 3 個(gè)部分。其中IaaS通過虛擬化和智能化技術(shù),為用戶提供基本的計(jì)算與存儲(chǔ)能力。PaaS與SaaS則是將通過虛擬化技術(shù),將開發(fā)平臺(tái)與軟件以服務(wù)的方式提供給使用者[1]。云計(jì)算即是由從硬件到軟件的3 層服務(wù)體系組成的。 任何一個(gè)技術(shù)都不是憑空產(chǎn)生的,其背后必定有實(shí)際需求的拉動(dòng),云計(jì)算技術(shù)自然也不例外。云計(jì)算的出現(xiàn)是為了解決資源利用率、運(yùn)算能力不足以及成本問題。舉例來說,傳統(tǒng)模式下,企業(yè)建立一套IT系統(tǒng)不僅僅需要購(gòu)買硬件等基礎(chǔ)設(shè)施,還要買軟件的許可證,需要專門的人員維護(hù)。當(dāng)企業(yè)的規(guī)模擴(kuò)大時(shí)還要繼續(xù)升級(jí)各種軟硬件設(shè)施以滿足需求。然而,對(duì)于企業(yè)來說,計(jì)算機(jī)等硬件和軟件本身并非他們真正需要的,它們僅僅是完成工作、提供效率的工具而已,然而企業(yè)卻要在這方面花費(fèi)大量的搭建、維護(hù)費(fèi)用。另一方面,這些硬件設(shè)備,由于缺乏有效的資源調(diào)度,往往會(huì)產(chǎn)生一定程度的浪費(fèi)。而云計(jì)算則可以將計(jì)算、存儲(chǔ)資源以服務(wù)的方式提供,從而將主要的計(jì)算過程都放在云端。因而企業(yè)不需要自己搭建IT系統(tǒng)(對(duì)于公有云來說),只需要使用云計(jì)算企業(yè)提供的服務(wù)即可,成本問題就此解決。同時(shí),由于使用了計(jì)算資源虛擬化技術(shù),云計(jì)算企業(yè)可以為企業(yè)按需調(diào)度計(jì)算資源,從而在很大程度上避免了資源浪費(fèi)。 那么云計(jì)算下的軟件工程主要有何特點(diǎn)呢?首先,最直觀的一點(diǎn),由于PaaS層的存在,人們編程的對(duì)象由傳統(tǒng)軟件工程的對(duì)象(Object)變?yōu)榱朔⻊?wù)(Service)。面向服務(wù)也就是將業(yè)務(wù)流整體分成子業(yè)務(wù)流,對(duì)子業(yè)務(wù)流級(jí)別的模塊進(jìn)行組織設(shè)計(jì),并最終形成軟件系統(tǒng)整體。面向服務(wù)使軟件在IT 系統(tǒng)結(jié)構(gòu)層次結(jié)構(gòu)系統(tǒng)中更加接近應(yīng)用。面向服務(wù)的開發(fā)模式延伸出了云計(jì)算下的軟件工程。除此之外,由于IaaS層的存在,云計(jì)算將計(jì)算環(huán)境與IT物理設(shè)備分離開來。這在一定程度上提高了軟件開發(fā)的解耦程度。因而,其對(duì)于傳統(tǒng)軟件工程的影響主要有以下幾點(diǎn): 軟件構(gòu)件的成熟度提高,同時(shí)也能得到更高程度的軟件復(fù)用。由于在云計(jì)算下,編程時(shí)直接使用云計(jì)算提供商提供的服務(wù),而非傳統(tǒng)軟件工程通常的通過對(duì)象自底向上搭建各個(gè)組件,其組件成熟度自然大大提高,同時(shí)其所使用的這部分組件也得到了復(fù)用。成熟組件的復(fù)用是解決傳統(tǒng)軟件工程危機(jī)的關(guān)鍵。一方面,成熟組件的復(fù)用減少了軟件開發(fā)的錯(cuò)誤,提高了軟件的可信度;另一方面,軟件復(fù)用大大減少了工作量,提高了開發(fā)績(jī)效。根據(jù)國(guó)內(nèi)著名PaaS 提供商800APP 提供的信息,云計(jì)算模式下開發(fā)時(shí)間可以縮減1 /3 ~ 1 /10。而軟件質(zhì)量與開發(fā)效率之間的矛盾一直都是傳統(tǒng)軟件工程危機(jī)的根源所在,云計(jì)算在這兩方面同時(shí)具有的優(yōu)勢(shì)自然使得其成為解決軟件危機(jī)的希望。 由于軟件實(shí)現(xiàn)時(shí)直接使用PasS提供的服務(wù),開發(fā)者可能只需要少量甚至不需要編碼。其更主要的工作是根據(jù)客戶需求,對(duì)于云計(jì)算平臺(tái)提供的服務(wù)進(jìn)行組織與安排。而在傳統(tǒng)軟件工程的瀑布模型中,開發(fā)者需要首先經(jīng)過分析客戶需求,對(duì)軟件架構(gòu)進(jìn)行設(shè)計(jì)分析等等流程之后才能進(jìn)入最終的編碼工作。而在每一層流程中,往往又要對(duì)上一層的結(jié)果進(jìn)行一定的建模模擬,這就使得最終編碼時(shí),開發(fā)人員并不會(huì)直接考慮客戶需求,而是面對(duì)經(jīng)過層層建模后的結(jié)果。這也導(dǎo)致了軟件工程中的又一矛盾:最終代碼與客戶需求之間的矛盾。由上述分析我們可以看出,該矛盾的根源在于開發(fā)人員面臨的問題空間(客戶需求)與解空間(實(shí)現(xiàn)代碼)相距太遠(yuǎn)。而在云計(jì)算下,開發(fā)人員直接基于平臺(tái)提供的服務(wù)考慮問題,提高了抽象層次,因而不需要傳統(tǒng)的一層層的向下建模,能夠直接面向客戶需求,使得需求與開發(fā)具有的同等的語境,最終實(shí)現(xiàn)的應(yīng)用自然也可以更加貼近客戶需求。 由于云計(jì)算平臺(tái)直接為開發(fā)人員提供服務(wù),提高了抽象層次,開發(fā)者實(shí)際上不需要做太多的編碼工作,這也大大降低了軟件開發(fā)的門檻,使得更多人能夠參與進(jìn)來。而這一特點(diǎn)在以物聯(lián)網(wǎng)為代表的超量信息系統(tǒng)中尤為關(guān)鍵。超量信息系統(tǒng)是指在運(yùn)行過程中涉及存儲(chǔ)或使用大量數(shù)據(jù)的系統(tǒng)。一個(gè)典型的物聯(lián)網(wǎng)系統(tǒng),涉及大量感知受控的設(shè)備,這些感知設(shè)備要十的七次方,千萬級(jí)。同時(shí)在網(wǎng)上進(jìn)行海量信息和通訊進(jìn)程大約要10的12次方,兆級(jí)每秒,這么多的進(jìn)程在進(jìn)行。第三個(gè)是超量的非結(jié)構(gòu)化動(dòng)態(tài)數(shù)據(jù),約為10的18次方[2]。那么我們不難想象,開發(fā)這樣一個(gè)大體量的信息系統(tǒng),需要相對(duì)應(yīng)量的人力,也就是需要所謂的群體軟件工程。然而,傳統(tǒng)軟件工程需要開發(fā)人員具有一定的專業(yè)技能與開發(fā)經(jīng)驗(yàn),門檻較高,因此群體開發(fā)的想法往往很難實(shí)現(xiàn)。然而在云計(jì)算下,軟件開發(fā)的難度大大降低,開發(fā)者只需要少量的訓(xùn)練就可以具備開發(fā)能力。這使得在短時(shí)間內(nèi)召集起一批開發(fā)人員參與超量信息項(xiàng)目成為可能。因而云計(jì)算為物聯(lián)網(wǎng)系統(tǒng)的發(fā)展提供了便利。 云計(jì)算平臺(tái)將計(jì)算環(huán)境與IT物理設(shè)備分離開來,提高了解耦程度。而眾所周知,軟件技術(shù)的發(fā)展過程就是不斷解耦的過程。最開始所有軟件都是在一個(gè)程序里,軟件技術(shù)的發(fā)展就是不斷的把它的組成不部分分拆出來。比如說70年代、80年代的子程序就是把業(yè)務(wù)邏輯分離出來,八十年代出現(xiàn)的遠(yuǎn)程過程調(diào)用就是把用戶交互解耦出來。 九十年代出現(xiàn)的消息隊(duì)列,就是把同步連接的變成異步連接的,進(jìn)一步解耦。21世紀(jì)出的消息代理,就是將數(shù)據(jù)轉(zhuǎn)換解耦出來。今天,SOA架構(gòu)就是將用戶交互、數(shù)據(jù)轉(zhuǎn)換、業(yè)務(wù)邏輯、業(yè)務(wù)實(shí)現(xiàn)等等都解耦出來,并且以開放和標(biāo)準(zhǔn)的接口進(jìn)行服務(wù)封裝。而云計(jì)算平臺(tái)通過計(jì)算環(huán)境虛擬化,在此基礎(chǔ)上進(jìn)一步解耦。那么解耦為什么對(duì)于軟件工程如此重要呢?這是因?yàn)檐浖こ趟胍鉀Q的一個(gè)核心問題就是變化的問題。在軟件開發(fā)維護(hù)過程中,需求的變化、架構(gòu)的變化、部署的變化、用戶負(fù)荷的變化,從設(shè)計(jì)到最終使用到產(chǎn)品生命周期,它一直在變化。而為了能夠在變化時(shí)不至于“牽一發(fā)而動(dòng)全身”,我們就需要使得各部件之間不相互依賴,因此在更改某一部件時(shí),其他部分就不會(huì)收到影響,這也正是解耦所做的工作——增加部件間獨(dú)立性。 傳統(tǒng)軟件工程采取用戶提出需求,開發(fā)商設(shè)計(jì)實(shí)現(xiàn),用戶審核驗(yàn)收的二元合作方式。然而在云計(jì)算下,第三方云計(jì)算中心的作用亦十分重要。云計(jì)算模式下的軟件開發(fā)和運(yùn)行環(huán)境基本上都是由云計(jì)算中心來架構(gòu)的,這些資源按照開發(fā)者的要求進(jìn)行配置。在開發(fā)者一端省去了硬件設(shè)施架構(gòu)、運(yùn)行環(huán)境調(diào)試等工作,只需一個(gè)瀏覽器和一些簡(jiǎn)單的工具就可以實(shí)施開發(fā)。而一些專用云計(jì)算平臺(tái)甚至承擔(dān)更多工作,使得開發(fā)完成之后的測(cè)試以及運(yùn)行維護(hù)也全部由云計(jì)算中心負(fù)責(zé)。 可以看出,在新型的“三足鼎立”的關(guān)系下,開發(fā)商省去了很多重復(fù)性的工作,從而能夠集中精力處理客戶的需求,大大提高了工作效率。然而云計(jì)算中心在簡(jiǎn)化開發(fā)商工作,,改變工程業(yè)務(wù)鏈的同時(shí),也降低了開發(fā)商的商業(yè)價(jià)值。因而,云計(jì)算平臺(tái),隨著在軟件工程中不斷提升的地位,沖擊了傳統(tǒng)軟件工程中的合作方式。而這種情況,是當(dāng)下眾多的中小企業(yè)所面臨的問題。 眾所周知,軟件工程沒有“銀彈”,云計(jì)算也難以成為那顆“銀彈”。然而不可否認(rèn)的是,云計(jì)算的出現(xiàn)提高了軟件復(fù)用,簡(jiǎn)化了設(shè)計(jì)過程,降低了開發(fā)門檻,增強(qiáng)了解耦程度,大大推動(dòng)了軟件工程的發(fā)展。同時(shí),其對(duì)于傳統(tǒng)工程二元格局的沖擊,也促使軟件工程開發(fā)模型與相關(guān)技術(shù)開始產(chǎn)生變革,使得更加多元化的開發(fā)模式與商業(yè)模式成為可能。 [1] 史杰,謝麗君,史少華.論云計(jì)算對(duì)軟件工程的影響[J].昆明學(xué)院學(xué)報(bào),2011,33(6):67-68. [2] 李未.云計(jì)算與軟件開發(fā)變革[R].北京:第四屆中國(guó)云計(jì)算大會(huì),2012. 論云計(jì)算對(duì)傳統(tǒng)軟件工程的影響 標(biāo)簽:class style com http it la 使用 sp 代碼 原文:
本文關(guān)鍵詞:論云計(jì)算對(duì)軟件工程的影響,由筆耕文化傳播整理發(fā)布。
本文編號(hào):177015
本文鏈接:http://www.sikaile.net/kejilunwen/ruanjiangongchenglunwen/177015.html