前言:想要寫出一篇引人入勝的文章?我們特意為您整理了大數(shù)據(jù)時代下的軟件工程分析范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:本文通過對大數(shù)據(jù)和軟件工程的簡述,分析了大數(shù)據(jù)與軟件工程的結(jié)合方式,在此基礎上研究了大數(shù)據(jù)時代下的軟件服務工程。大數(shù)據(jù)時代背景下應該進一步研究大數(shù)據(jù)技術與軟件工程技術的結(jié)合,探索軟件服務工程開發(fā)模式,重視數(shù)據(jù)密集型科研第四范式,發(fā)揮軟件工程服務功能,不斷推動和實現(xiàn)軟件工程技術的創(chuàng)新和發(fā)展。
關鍵詞:大數(shù)據(jù);軟件工程;軟件服務工程;第四范式
自上個世紀90年代初,信息高速公路在美國提出以來,歷經(jīng)近30年的發(fā)展演進,信息技術發(fā)展突飛猛進,信息化領域的新技術、新詞語層出不窮,諸如IT技術、互聯(lián)網(wǎng)技術、大數(shù)據(jù)技術、區(qū)塊鏈技術、人工智能等。并且對人們的生產(chǎn)、生活方式產(chǎn)生了深刻的影響,認為現(xiàn)在進入了大數(shù)據(jù)時代、萬物互聯(lián)時代、智能化時代等。筆者認為,一直以來,其中除了硬件的發(fā)展,還有兩個關鍵因素同樣值得關注,一是數(shù)據(jù),其是基礎和目的;二是軟件,其是方法和工具。唯如此,才能實現(xiàn)在軟件生命周期即設計、開發(fā)、運行、優(yōu)化,實現(xiàn)與大數(shù)據(jù)生命周期即獲取、清洗、集成、分析、呈現(xiàn)等的互動。[1]換言之,現(xiàn)在來說,就是大數(shù)據(jù)和軟件工程,二者助推了信息技術的發(fā)展,同時也是信息化的產(chǎn)物,在大數(shù)據(jù)時代背景下,研究軟件工程技術的應用,對于經(jīng)濟社會的發(fā)展有著十分重要的意義。
1大數(shù)據(jù)和軟件工程簡述
1.1大數(shù)據(jù)簡述
沃爾瑪?shù)摹捌【婆c尿布”是眾所周知的大數(shù)據(jù)經(jīng)典案例,大數(shù)據(jù)已經(jīng)是當今信息社會炙手可熱、耳熟能詳?shù)脑~匯,而且已形成共識,即人類已經(jīng)進入大數(shù)據(jù)時代。上個世紀80年代初,《第三次浪潮》一書風行全世界。該書作者美國社會思想家阿爾文•托夫勒就在文中將人類社會發(fā)展劃分為三次浪潮,即以“農(nóng)業(yè)文明”為主導的第一次浪潮,以“工業(yè)文明”為主導的第二次浪潮,以“信息化”為主導第三次浪潮。[2]其中首次提出了“大數(shù)據(jù)”(BigData)一詞,并且,以“第三次浪潮的華彩樂章”這樣的用詞對其進行熱情的謳歌。[3]全球著名咨詢公司麥肯錫于2011年5月了《大數(shù)據(jù):創(chuàng)新、競爭和生產(chǎn)力的下一個前沿》報告,公認此報告宣告了大數(shù)據(jù)時代的到來。由于大數(shù)據(jù)概念的提出源于不斷的發(fā)展實踐,其本身并沒有嚴格、權威的定義。通常認為,大數(shù)據(jù)的大即大數(shù)據(jù)集的規(guī)模一般應達到10TB左右,現(xiàn)在已經(jīng)達到了PB級的數(shù)據(jù)量。維基百科稱“大數(shù)據(jù)”是這樣一個術語,即其是用以描述用傳統(tǒng)的數(shù)據(jù)處理應用軟件無法完好處理的龐大的或者復雜的數(shù)據(jù)集。但“大數(shù)據(jù)”這一概念并不僅僅指數(shù)據(jù)規(guī)模的龐大,還包括對這些數(shù)據(jù)對象的處理以及應用活動。IBM提出大數(shù)據(jù)通常具有“5V”特征:Volume(數(shù)據(jù)體量大)、Variety(數(shù)據(jù)類別多樣)、Velocity(處理速度快)、Veracity(數(shù)據(jù)真實性高)、Volume(數(shù)據(jù)價值高)。[4]大數(shù)據(jù)技術分類并分平行關系,而是呈縱向、層級狀結(jié)構(gòu),詳見圖1所示。
1.2軟件工程簡述
軟件工程本身并沒有嚴格、權威的定義。并且,也是直到20世紀60年代初才出現(xiàn)了“軟件”一詞,于此之前,更多的是程序的概念,后來人們認識到與程序相關的文檔也有著相當重要的作用,才有了“軟件”一詞的出現(xiàn)。軟件發(fā)展至今天,已經(jīng)遠遠不是程序個體或者程序員合作的方式能夠完成的,即使能夠完成,也會是效率低下、程序運行可靠性差,或者說根本就無法完成。于是,在1968年召開的大西洋公約學術會議上提出了軟件工程的概念,簡單理解,就是以工程的方法來進行軟件系統(tǒng)設計、開發(fā)、運行、維護、優(yōu)化等技術的總和,進一步言之,就是用“計算機科學、數(shù)學管理科學等原理,以工程化方法制作軟件的工程”,屬于一門交叉學科。[5]通常認為其包含有四個要素:(1)軟件工程目標;(2)軟件工程范型;(3)軟件工程過程;(4)軟件工程原則。
2大數(shù)據(jù)與軟件工程的結(jié)合方式
宏觀上講,軟件工程是比大數(shù)據(jù)更為寬泛的概念,大數(shù)據(jù)的技術與應用被軟件工程所涵攝。如圖1所示意,雖然大數(shù)據(jù)的各項技術與應用屬于垂直領域,而軟件工程牽涉的是橫向領域,更加關注軟件產(chǎn)品及軟件系統(tǒng)工程上的實現(xiàn)及其管理。但是,大數(shù)據(jù)無論是其產(chǎn)品還是其系統(tǒng)的完成與落地,都離不開軟件工程方法論的支持。換言之,軟件工程的方法與技術貫穿于大數(shù)據(jù)的開發(fā)與應用,大數(shù)據(jù)也只是在軟件工程發(fā)展過程中出現(xiàn)的概念。軟件工程開發(fā)具有綜合性,其應用滲透于各個學科和領域,大數(shù)據(jù)的技術與應用當然是軟件工程所關注和研究的對象,或者說大數(shù)據(jù)技術的每一環(huán)節(jié)都離不開軟件工程的支持。大數(shù)據(jù)應用的基礎是要依賴數(shù)據(jù)鏈條的完整性,采用相應的算法于海量的數(shù)據(jù)中進行規(guī)律分析,算法要依據(jù)相應的實際環(huán)境進行相應的升級,遵循開發(fā)的基本原理,充分調(diào)整數(shù)據(jù)分布,從而在研究過程中將大數(shù)據(jù)技術與軟件工程方法結(jié)合起來。并在開放的環(huán)境中通過網(wǎng)絡與通信技術實現(xiàn)數(shù)據(jù)的共享,在此過程中,軟件技術和水平亦能得到進一步的提高。在二者相互作用滲透的過程,軟件效率得到提高,軟件效益得以提升,從而實現(xiàn)客戶需求的最大化。在軟件開發(fā)過程中,還需要有必備的硬件和軟件的支撐,來支持相應的數(shù)據(jù)流,隨著數(shù)據(jù)流的增長,對于硬件和軟件就會有更高的要求。工程技術人員在對數(shù)據(jù)流進行分析研究的同時,專家學者還會對在線服務進行研究。但是,數(shù)據(jù)流是重點,包括對數(shù)據(jù)流的使用方法的研究,對支撐數(shù)據(jù)流的軟件和硬件的研究。另外,從軟件工程開發(fā)角度看,無論是在服務端還是在用戶端,軟件的運行當然會產(chǎn)生大量的數(shù)據(jù)流,都將產(chǎn)生大量的數(shù)據(jù)信息,這些數(shù)據(jù)流對于軟硬件的使用壽命有著決定性的影響。因此,在軟件工程的開發(fā)中,對于海量數(shù)據(jù)產(chǎn)生的環(huán)境下,更有必要做好數(shù)據(jù)流的管理,要高度重視數(shù)據(jù)流的分析研究,并且對于原始數(shù)據(jù)進行深入的研究也應該引起重視,以期延長軟件的使用周期。[6]
3大數(shù)據(jù)時代的軟件服務工程
軟件服務工程即所謂的面向服務的軟件工程,強調(diào)的是其相對于傳統(tǒng)軟件工程的擴展。近些年來得到了很快的發(fā)展,已經(jīng)成為當今時代的主流社會需求之一,服務功能已經(jīng)是軟件開發(fā)的基本原則。另一方面,也可以將其直觀理解為“軟件(Software)+服務(Service)+工程(Engineering)”三個方面的交叉融合,或者軟件工程與服務工程兩者的融合等。其內(nèi)涵可以理解為研究面向服務的軟件工程原則、軟件工程方法以及軟件工程技術,同時利用相應的軟件服務設施和平臺,開發(fā)較高水平的軟件服務系統(tǒng)。[7]軟件開發(fā)者根據(jù)需求變化,在社會實際實用中,以面向服務作為主要建設目標。在開發(fā)的初期就要首先搭建好軟件的框架,充分利用編程語言、構(gòu)思好編程思路,確保開發(fā)軟件能夠提供可靠的服務應用,保障軟件運行時的穩(wěn)定與可靠。在實際的服務過程中,要求開發(fā)者運用分布式應用程序,以虛擬操作的方式提供用戶相應的服務。在應用中,融合大數(shù)據(jù)技術,能夠?qū)崿F(xiàn)對數(shù)據(jù)進行編程,達到軟件互操作的效果,并提高對數(shù)據(jù)的主動協(xié)調(diào)。軟件工程開發(fā)工程師可以對數(shù)據(jù)信息共享,實現(xiàn)各種學習交流,對軟件進行協(xié)同開發(fā),并結(jié)合用戶的反饋,對軟件系統(tǒng)進行優(yōu)化處理,提高軟件的性價比。近年來,開源軟件是較為成功的軟件習作模式,但是,其采用常規(guī)的研究方法,應用價值還不是很高。與開源軟件相比,群體軟件工程屬于一種分布式軟件開發(fā)模型,能夠依靠網(wǎng)絡進行任務分配,并能實現(xiàn)創(chuàng)造性的查詢,通過眾包形式的開發(fā),解決開發(fā)過程中的難題。并且,在整個開發(fā)過程中,眾包開發(fā)可以貫穿其全過程。所謂眾包,一如其字面含義,是一種分布式的生產(chǎn)開發(fā)模式和問題解決方案。通過該種方式,開源軟件和商業(yè)軟件均可通過網(wǎng)絡進行任務和責任分配。[8]隨著我國計算機科學技術的不斷發(fā)展進步,軟件工程技術也取得了長足發(fā)展,軟件服務工程也支持得到拓展和延伸。在大數(shù)據(jù)時代背景下,我們應當加快大數(shù)據(jù)技術和軟件工程技術的融合與創(chuàng)新,提升對海量網(wǎng)絡數(shù)據(jù)進行編程處理的能力,提高軟件的安全和效能,增強其穩(wěn)定性和可操作性,進一步整合軟件工程系統(tǒng)的集成度。
4數(shù)據(jù)密集型科研第四范式
圖靈獎獲得者、關系數(shù)據(jù)庫研究專家詹姆士•格雷(JamesGray)曾經(jīng)從科學哲學的層面將人類科學研究模式總結(jié)劃分為最初的實驗科學階段,之后的理論科學階段,到通過模擬的方法進行的計算科學三個階段,相對應地稱之為科學研究的第一范式、第二范式、第三范式。但是伴隨著模擬連同實驗所產(chǎn)生的海量的數(shù)據(jù),需要由軟件處理這些由各種儀器或者模擬實驗產(chǎn)生的海量數(shù)據(jù),并將處理得到的信息和知識存儲于計算機中。之后,科研人員只需要對這些存儲于計算機中的少量數(shù)據(jù)進行分析研究,不再是直接通過儀器或者模擬進行研究。因而基于數(shù)據(jù)密集型科學研究獨特的技術以及其顯著的不同于以往研究的特點,詹姆士•格雷在2007于其科研報告中提出了將這種數(shù)據(jù)密集型的科學研究模式從計算機科學類型中單獨區(qū)分出來的思想,隨之產(chǎn)生了一種被稱之為第四范式的新的科研模式。該報告整理后題名“吉姆•格雷論e-Science:一種科研模式的變革”,成為微軟于2009的年首次全面對數(shù)據(jù)密集型數(shù)據(jù)進行描述的論文集《e-Science:科學研究的第四種范式》的開篇文章。[9]當前,相當多的計算機領域的專家學者對數(shù)據(jù)密集型科研第四范式予以了關注,并進行了相應的研究,探索出了相應的方式方法,第四范式的研究被認為是大數(shù)據(jù)時代背景下軟件工程技術研發(fā)的關鍵。信息化的發(fā)展與滲透,導致一切的事物都在隨之發(fā)生著變化。包括實驗、理論分析和計算科學均在數(shù)據(jù)泛濫的影響下與之前大不相同,軟件工程技術既要適應科研第四范式,又在其中扮演著更加重要的作用。傳統(tǒng)范式下的目的與探索之間不能夠很好地銜接,數(shù)據(jù)信息的應用效率難以保障,難以滿足項目管理目標的實現(xiàn)。數(shù)據(jù)密集型科研第四范式下的技術以及理論相關內(nèi)容,與大數(shù)據(jù)技術特別是其中的存儲技術有著緊密的關聯(lián)性,其待探索的空間和應用價值相當廣闊,其數(shù)據(jù)信息研發(fā)急需相應的理論支撐,該范式下的軟件工程技術應用模塊,亦能夠?qū)ζ渌妒较碌臄?shù)據(jù)信息進行分析,對于更好地實現(xiàn)數(shù)據(jù)的存儲與處理,提升處理效率,有著重要的研究價值。在第四范式模式下,對集成密集型數(shù)據(jù)的軟件服務價值進行評估是首要的,需要摒棄以往的數(shù)據(jù)統(tǒng)計方法,構(gòu)建新的針對大數(shù)據(jù)進行信息統(tǒng)計和分析的方法,這對軟件工程技術的發(fā)展起著重要的作用。在軟件工程技術的研究中,應當更新傳統(tǒng)理念,重視其對大數(shù)據(jù)的處理和分析能力,使軟件產(chǎn)業(yè)呈現(xiàn)全新的面貌,從而亦能促進其對大數(shù)據(jù)的數(shù)據(jù)分析能力。在第四范式的基礎上,亦能夠更好地支持第三范式,甚至于第一范式。該范式研究在我國軟件工程開發(fā)中還處于初級階段,軟件工程開發(fā)人員需在強化已有數(shù)據(jù)模型研究基礎上,加速由第三范式向第四范式的轉(zhuǎn)變,盡快實現(xiàn)其應用層面的服務價值。
5結(jié)語
概言之,大數(shù)據(jù)時代背景下,信息化程度高度發(fā)達,社會各行各業(yè)都被大數(shù)據(jù)所包圍和滲透,且都離不開軟件工程技術。在電子支付、遠程控制、自動駕駛、智能入住、智能售貨等應用中,軟件都在其中扮演著越來越核心的作用。因此,大數(shù)據(jù)背景下應該加大對于軟件工程技術研究和軟件研發(fā)的經(jīng)費投入力度,加大軟件工程人才的培養(yǎng)力度,特別是軟件工程復合型人才的培養(yǎng)力度,加大軟件工程技術人員與相關產(chǎn)業(yè)與領域的深度融合,不斷推動和實現(xiàn)軟件工程技術的創(chuàng)新和發(fā)展。
參考文獻
[1]劉璘,周明輝,尹剛.大數(shù)據(jù)時代軟件工程專題前言[J].軟件學報,2017,28(06):1327-1329.
[2]韓際平.“大數(shù)據(jù)”浪潮來襲[J].數(shù)據(jù),2012(12):1.
[3]黎林峰.大數(shù)據(jù)奏響時代華彩樂章[J].中國建設信息化,2015(Z1):12-13.
[4]姜奇平.大數(shù)據(jù)時代到來[J].互聯(lián)網(wǎng)周刊,2012(02):6.
[5]《計算機科學技術百科全書》(選編本).清華大學出版社,2002:121-122.
[6]張小雨.大數(shù)據(jù)時代下軟件工程技術的應用[J].電腦知識與技術,2020,16(33):84-85+105.
[7]徐曉飛.談軟件服務工程學科知識體系及教育[J].計算機教育,2014(01):3-8.
[8]李奇冰.大數(shù)據(jù)時代下軟件工程關鍵技術分析[J].數(shù)字技術與應用,2016(11):231.
[9]郎楊琴,孔麗華.科學研究的第四范式吉姆•格雷的報告“e-Science:一種科研模式的變革”簡介[J].科研信息化技術與應用,2010,1(02):92-94.
作者:李奇旻 單位:華東師范大學