胡凡瑋 謝靜思
計(jì)算機(jī)網(wǎng)絡(luò)從出現(xiàn)以來就對(duì)人們的生產(chǎn)和生活產(chǎn)生了重要的積極影響,且社會(huì)正處在一個(gè)全新的環(huán)境之下,這種環(huán)境既是新的發(fā)展機(jī)遇,同時(shí)也是新的挑戰(zhàn)。特別是2015年李克強(qiáng)總理開始提出“互聯(lián)網(wǎng)+”的概念之后,軟件在現(xiàn)實(shí)世界的應(yīng)用逐漸深入,其規(guī)模和復(fù)雜性呈現(xiàn)出不斷發(fā)展的態(tài)勢(shì)。
(一)迭代化
工作效率的保障是網(wǎng)絡(luò)軟件工程技術(shù)的核心內(nèi)容與要求,對(duì)于軟件工程人員而言,工作效率始終是密切關(guān)注的問題,因此軟件系統(tǒng)的開發(fā)時(shí)間成為了控制管理工作的核心內(nèi)容。為了縮短開發(fā)周期,迭代化開發(fā)成為了軟件開發(fā)環(huán)節(jié)的重點(diǎn),對(duì)于人員的協(xié)調(diào)能力和測(cè)試能力也提出了新的要求,逐漸形成了以敏捷為基礎(chǔ)的導(dǎo)向方式。
對(duì)于一個(gè)項(xiàng)目來說,在為一個(gè)問題開發(fā)解決方案的過程當(dāng)中會(huì)涉及到不同類型的活動(dòng)行為,此時(shí)我們需要正確地分析那些需要解決的問題然后重新設(shè)計(jì)方案并收集需求,最終將這些需求轉(zhuǎn)換在設(shè)計(jì)范疇之內(nèi)。最后在對(duì)方案進(jìn)行設(shè)計(jì)測(cè)試后活動(dòng)結(jié)果,這一順序相對(duì)自然。但如果要將規(guī)模進(jìn)行擴(kuò)大,那么所有的開發(fā)環(huán)節(jié)和測(cè)試環(huán)節(jié)都面臨著某些關(guān)鍵問題。這要求我們利用迭代思想在計(jì)劃內(nèi)的每一個(gè)環(huán)節(jié)(或版本內(nèi)容)進(jìn)行驗(yàn)證和評(píng)估,從客觀演示的范圍內(nèi)以減少項(xiàng)目可能存在的各類風(fēng)險(xiǎn),建立一個(gè)更加完整的解決方案。
(二)持續(xù)性集成
持續(xù)性集成(Continuous Integration)是一種軟件開發(fā)實(shí)踐,目的在于驗(yàn)證集成的正確性并及早地發(fā)現(xiàn)錯(cuò)誤的存在。開發(fā)人員在完成代碼編寫之后會(huì)向版本控制庫(kù)提交這些代碼,并且在提交之前會(huì)在本地展開一次私有構(gòu)建確保代碼修改不出現(xiàn)其它問題。此時(shí)集成服務(wù)器CI會(huì)一直對(duì)版本變更情況進(jìn)行檢測(cè),一旦有變更情況產(chǎn)生,CI服務(wù)器就會(huì)在版本控制庫(kù)選擇代碼然后到集成服務(wù)器上執(zhí)行構(gòu)建腳本進(jìn)行軟件編譯、單元測(cè)試、代碼檢查、文檔生成等。在完成此類工作之后CI服務(wù)器再根據(jù)構(gòu)建結(jié)果進(jìn)行反饋,包括提交某些BUG信息等,并繼續(xù)監(jiān)控代碼變更情況等待下一次持續(xù)集成過程。
持續(xù)性集成的意義在于確保迭代開發(fā)環(huán)節(jié)的整體質(zhì)量?,F(xiàn)代網(wǎng)絡(luò)軟件工程行業(yè)變得更加多元化和復(fù)雜化,其中的開發(fā)業(yè)務(wù)也隨之產(chǎn)生了改變,會(huì)更加關(guān)注需求和分析的相互作用。自動(dòng)化的持續(xù)集成能夠顯著保障代碼質(zhì)量,并且在已有的配置管理模塊當(dāng)中完成集成和自動(dòng)build的步驟,結(jié)合軟件開發(fā)的具體要求展開檢測(cè)并生成報(bào)表內(nèi)容。對(duì)于專業(yè)化的軟件開發(fā)人員來說,軟件工程的規(guī)?;蟛粩嗵嵘?,應(yīng)重視實(shí)踐環(huán)節(jié)并規(guī)劃已經(jīng)開發(fā)完成的項(xiàng)目做好戰(zhàn)略部署。
(一)邏輯應(yīng)用
對(duì)于軟件工程技術(shù)來說,如何保障軟件在各個(gè)階段的工作效率非常重要,對(duì)于軟件描述、管理等各個(gè)方面的研究也是當(dāng)前的工作重心。我們基于工作過程來分析可以將軟件工程的不同生存周期視作為不同的發(fā)展階段,在定義時(shí)會(huì)涉及到問題的可行性與需求分析,并且獲得后期開發(fā)和維護(hù)過程的重點(diǎn)信息。在詳細(xì)設(shè)計(jì)環(huán)節(jié)則會(huì)通過編寫代碼和測(cè)試的方式最終發(fā)布軟件,并且從問題的確認(rèn)和問題范圍入手來綜合評(píng)估后續(xù)的工作需求。如果有效性證明環(huán)節(jié)當(dāng)中有一種情況是“假的”,那么對(duì)于有效性的證明也可以隨之停止。綜合來看,當(dāng)相關(guān)的步驟可以符合用戶需求時(shí),則可以判定這一分析過程是正確的;反之,分析結(jié)果是錯(cuò)誤的,需要繼續(xù)展開完善過程。
1.軟件定義階段
在軟件定義階段,首先要進(jìn)行問題定義然后再作出可行性分析。在設(shè)計(jì)開發(fā)某個(gè)軟件的時(shí)候除去基本的開發(fā)要求和功能模塊外,還應(yīng)該考慮到部分功能的必要性和有效性。在項(xiàng)目初期,要準(zhǔn)確地應(yīng)用邏輯思維來完成具體的工作規(guī)劃。例如對(duì)于管理系統(tǒng)設(shè)計(jì)來說,就需要對(duì)某個(gè)時(shí)間段使用的人數(shù)作出一定的限制,否則必然導(dǎo)致服務(wù)器壓力過大,并且在登錄人數(shù)過多時(shí)還要進(jìn)行管理監(jiān)督,包括開發(fā)者范圍的約束和客戶范圍的約束。邏輯學(xué)當(dāng)中任何概念都可以被視為是“類概念”,即概念是思維的形式并承擔(dān)著相應(yīng)的思維內(nèi)容。
2.軟件開發(fā)階段
在軟件的正式開發(fā)階段,首要工作是做好需求分析,將各個(gè)數(shù)據(jù)之間的聯(lián)系進(jìn)行結(jié)合評(píng)估之后再選擇圖形化的方法做出描述。需注意的是如果我們需要獲取直觀的數(shù)據(jù)模型聯(lián)系信息,那么就需要根據(jù)已有的信息得出用戶的實(shí)際需求結(jié)論,在多方考慮要求下滿足運(yùn)行實(shí)踐要求。在進(jìn)行需求分析后,后續(xù)的工作則是規(guī)范描述應(yīng)用,即將軟件的需求實(shí)際轉(zhuǎn)化為軟件體系結(jié)構(gòu),在此階段需要確定系統(tǒng)接口和數(shù)據(jù)庫(kù)模式,在概念設(shè)計(jì)環(huán)節(jié)用適當(dāng)?shù)姆椒ū硎舅惴ê蛿?shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)內(nèi)容,這一階段即我們所說的詳細(xì)設(shè)計(jì)階段。例如我們?cè)谶M(jìn)行網(wǎng)絡(luò)購(gòu)物時(shí),如果已經(jīng)確定訂單但沒有在規(guī)定時(shí)間內(nèi)付款,那么很可能就需要重新登錄驗(yàn)證信息,此時(shí)編寫代碼時(shí)就會(huì)有l(wèi)ockform代碼,目的是對(duì)于某些長(zhǎng)時(shí)間未登錄的狀態(tài)進(jìn)行“系統(tǒng)鎖定”。此類程序從邏輯學(xué)的角度來看就是通過驗(yàn)證的方式演化不同的程序,演繹過程當(dāng)中的水平關(guān)系和垂直關(guān)系也是程序當(dāng)中的邏輯關(guān)系。
3.軟件測(cè)試階段
在軟件測(cè)試階段是全部模塊設(shè)計(jì)實(shí)現(xiàn)之后所進(jìn)入的階段,目的在于定位軟件當(dāng)中存在的各種BUG內(nèi)容,并且在開發(fā)環(huán)節(jié)作出修改后回歸至問題當(dāng)中。所有的測(cè)試人員都要熟悉軟件業(yè)務(wù)功能,才能以此為基礎(chǔ)分析軟件可能存在的各類缺陷。當(dāng)然每個(gè)用戶的需求會(huì)產(chǎn)生變化,因此在測(cè)試環(huán)節(jié)當(dāng)中就應(yīng)應(yīng)用邏輯學(xué)的方法來強(qiáng)化彼此之間的溝通。
4.軟件維護(hù)階段
現(xiàn)階段軟件工程產(chǎn)品都需要進(jìn)行維護(hù),如果用戶在使用過程當(dāng)中出現(xiàn)了各類問題,那么就會(huì)展開反饋和維修。準(zhǔn)確地理解軟件設(shè)計(jì)者和使用者之間的矛盾問題至關(guān)重要,因此軟件可靠性成為了關(guān)鍵因素。軟件的運(yùn)行需要硬件的支持,為了滿足用戶的需求,即便軟件本身不出現(xiàn)故障,那么也需要對(duì)部分功能進(jìn)行修改和調(diào)整,這說明計(jì)算機(jī)軟件工程技術(shù)和邏輯學(xué)之間的密切聯(lián)系,也證明了軟件工程技術(shù)的邏輯應(yīng)用價(jià)值。
(二)自適應(yīng)應(yīng)用
自適應(yīng)策略執(zhí)行階段會(huì)按照被控制目標(biāo)的特性作出調(diào)整,確定軟件系統(tǒng)當(dāng)中有哪些內(nèi)容可以調(diào)整、如何支持自適應(yīng)控制層并進(jìn)行操作、如何正確地執(zhí)行自適應(yīng)。綜合來看自適應(yīng)階段的應(yīng)用是為了調(diào)整某些軟件的參數(shù)與結(jié)構(gòu),其中參數(shù)調(diào)整是控制模塊在運(yùn)行時(shí)對(duì)系統(tǒng)參數(shù)的改變策略,設(shè)定軟件當(dāng)中的可配置變量數(shù)值來改變軟件新維護(hù),對(duì)于目標(biāo)系統(tǒng)實(shí)現(xiàn)過程并不作出修改。而結(jié)構(gòu)調(diào)整一般需要底層系統(tǒng)的支持,比參數(shù)調(diào)整更加靈活,但運(yùn)行環(huán)節(jié)可能會(huì)有風(fēng)險(xiǎn)存在。而基于狀態(tài)模型將某一階段系統(tǒng)所處的狀態(tài)和執(zhí)行策略進(jìn)行遷移之后,可以基于路徑模型從系統(tǒng)運(yùn)行層面來分析可靠性,并確定不同的代碼執(zhí)行路徑是否會(huì)讓系統(tǒng)的可靠性出現(xiàn)問題,基于所有構(gòu)件的傳播過程來對(duì)系統(tǒng)的整體性能作出判定。
在自適應(yīng)應(yīng)用環(huán)節(jié)模型的作用在于描述軟件的結(jié)構(gòu)、參數(shù)信息等,且描述軟件形態(tài)結(jié)構(gòu)和參數(shù)之后會(huì)利用流程思想確定單元之間的數(shù)據(jù)流關(guān)系(主要是調(diào)用關(guān)系),然后確定單元內(nèi)部可以調(diào)整的參數(shù)。整體流程思想來源于面向服務(wù)的架構(gòu)內(nèi)容,組織web服務(wù)穿來執(zhí)行服務(wù),web服務(wù)的相互關(guān)系本質(zhì)上屬于數(shù)據(jù)流轉(zhuǎn)發(fā),因此需要通過參數(shù)控制的方法來調(diào)整調(diào)用過程,在模型當(dāng)中建模之后確定自適應(yīng)的結(jié)構(gòu)參數(shù)來完成調(diào)用過程。在當(dāng)前的軟件系統(tǒng)當(dāng)中,不同的軟件單元共同協(xié)作完成系統(tǒng)服務(wù),我們也可以以此為基礎(chǔ)進(jìn)行軟件單元的過程描述,例如使用CompositeProcess和AtomicProcess評(píng)估組合過程。目標(biāo)系統(tǒng)會(huì)提供不同類型的服務(wù),多個(gè)建??梢悦枋霾煌膯卧卣骱托袨槟J?,呈現(xiàn)出數(shù)據(jù)流的轉(zhuǎn)化關(guān)系。
計(jì)算機(jī)軟件工程技術(shù)的發(fā)展實(shí)現(xiàn)了現(xiàn)階段的技術(shù)創(chuàng)新,使得軟件變得更加多樣化以適應(yīng)多層次的市場(chǎng)需求。技術(shù)發(fā)展模式的核心在于技術(shù)創(chuàng)新,創(chuàng)新發(fā)展會(huì)建立在已有的技術(shù)條件之上。軟件工程技術(shù)在未來的很長(zhǎng)一段時(shí)間內(nèi)將扮演著社會(huì)發(fā)展的輔助者角色,擁有良好的發(fā)展前景和發(fā)展空間,軟件工程師也需要確保服務(wù)過程和功能的優(yōu)化方式,對(duì)軟件做好綜合應(yīng)用。
作者單位:江西交通職業(yè)技術(shù)學(xué)院