肖建芳
(汕頭職業(yè)技術(shù)學院計算機系,汕頭515041)
快速原型模型(Rapid Prototype Model)又稱為原型模型,是軟件開發(fā)模型中的重要開發(fā)模型之一,使用快速原型模型進行的軟件開發(fā)方法稱為快速原型法。快速原型法是一種以計算機為基礎(chǔ)的系統(tǒng)開發(fā)方法,它首先構(gòu)造一個功能簡單的原型系統(tǒng),然后通過對原型系統(tǒng)逐步求精,不斷擴充完善得到最終的軟件系統(tǒng)。原型就是模型,而原型系統(tǒng)就是應(yīng)用系統(tǒng)的模型,它是待構(gòu)筑的實際系統(tǒng)的縮小比例模型,但是保留了實際系統(tǒng)的大部分性能。這個模型可在運行中被檢查、測試、修改,直到它的性能達到用戶需求。
快速原型模型能更好地滿足用戶實際需求,縮短開發(fā)周期。要獲得更好的軟件質(zhì)量,必須從多方面考慮是否選用快速原型模型。
首先,從用戶需求方面考慮,如果用戶需求模糊,只有一個需求的大方向,尤其是對系統(tǒng)的詳細需求不明確或經(jīng)常更改需求,快速原型模型是能讓用戶盡快明確需求并滿意的首選。其次,從軟件邏輯結(jié)構(gòu)方面考慮,快速原型模型適用于擁有大量數(shù)據(jù)信息的管理信息系統(tǒng),不太適用于基于大量算法的系統(tǒng)。再次,從開發(fā)時間考慮,如果系統(tǒng)開發(fā)時間緊迫,或用戶急于看到可運行系統(tǒng),快速原型模型也是首選,因為能讓用戶盡早體驗系統(tǒng)原型。最后,從項目風險上考慮,如果是風險較大的項目,例如項目涉及較多新技術(shù)或市場前景具有較大風險,宜選用快速原型模型盡早規(guī)避風險。
快速原型模型是對以文檔為驅(qū)動的瀑布模型的強有力的補充,它的技術(shù)特點是不需要事先準備各種開發(fā)文檔,并將用戶納入開發(fā)團隊,隨時與用戶保持溝通,能夠適應(yīng)用戶需求的變化,支持需求的漸進式完善和確認,在需求復(fù)雜,動態(tài)變化的軟件系統(tǒng)開發(fā)中尤其適用。
快速原型模型的核心思想是:在軟件開發(fā)的早期快速掌握核心需求,按需求快速開發(fā)一個可運行的目標系統(tǒng)軟件模型,讓用戶使用并提出修改意見,開發(fā)者根據(jù)用戶反饋進行修改和完善后,再次交由用戶使用,直到用戶滿意則最終產(chǎn)品實現(xiàn)。原型的功能往往是最終軟件功能的一個子集。原型的主要作用是驗證用戶的功能需求,在用戶使用后獲得用戶的真正需求。在系統(tǒng)概要設(shè)計和詳細設(shè)計的過程中,也可以用原型驗證某些關(guān)鍵算法。快速原型模型的開發(fā)過程如圖1所示。
圖1 快速原型開發(fā)過程
學生選課系統(tǒng)從開始進行需求分析到系統(tǒng)正式投入使用,時間跨度不到3 個月,教務(wù)部門對于系統(tǒng)的部分功能需求及細節(jié)不明確,快速原型模型成為該系統(tǒng)首選。在組建合理的開發(fā)團隊后,使用快速原型模型開發(fā)學生選課系統(tǒng)分成以下步驟:快速需求分析并構(gòu)造原型、用戶測試原型并反饋、修改和完善原型系統(tǒng)。
該系統(tǒng)的開發(fā)團隊由計算機系教師和相關(guān)教務(wù)人員組成,對學院的教學管理流程及學生選課系統(tǒng)的各種需求非常熟悉,開發(fā)人員能夠迅速獲得系統(tǒng)的核心需求并快速構(gòu)造出可用的系統(tǒng)初級原型,滿足了快速原型開發(fā)的前提。團隊成員及任務(wù)分工如表1 所示。
表1 開發(fā)團隊主要成員組成
該系統(tǒng)的開發(fā)團隊是一個交流方便的團隊,所有成員都有開發(fā)者和用戶雙重身份,系統(tǒng)開發(fā)過程中,共同參與、相互交流共同完成系統(tǒng)的設(shè)計與開發(fā)。
學生選課系統(tǒng)集成了課程申請、審批、學生選課、選課結(jié)果統(tǒng)計、學生課程管理、成績上傳等多個功能模塊。根據(jù)權(quán)限設(shè)置,將系統(tǒng)劃分成三個子系統(tǒng):學生子系統(tǒng)、教師子系統(tǒng)和管理員子系統(tǒng)。
學生子系統(tǒng)主要功能模塊包括:個人信息管理、密碼修改、個人選課管理等。教師子系統(tǒng)主要功能模塊包括:個人信息管理、選課在線申請、選課成績管理、本人課程管理等,如圖2 所示[2]。
圖2 系統(tǒng)功能模塊設(shè)計圖
管理員子系統(tǒng)是系統(tǒng)最重要的部分,功能也比較多,功能模塊包括:校區(qū)管理、系別管理、專業(yè)管理、班級管理、教師管理、學生管理、選課申請管理、在選課程管理、班級選課管理等,現(xiàn)將管理員子系統(tǒng)的功能模塊單獨列出來,如圖3 所示[2]。
由于開發(fā)團隊具有開發(fā)者和用戶的雙重身份,熟悉教學領(lǐng)域,主要開發(fā)者可以確定教師子系統(tǒng)的所有需求,經(jīng)過與相關(guān)教務(wù)人員及學生代表溝通后,可以明確學生子系統(tǒng)和管理員子系統(tǒng)的主要功能和絕大部分細節(jié)需求,從而可以快速開發(fā)出具有基本功能的初級系統(tǒng)原型模型。
該3×750 t/d垃圾焚燒發(fā)電廠設(shè)計厭氧進水量800 m3/d。參照2018年1—6月該垃圾焚燒發(fā)電廠實際運行數(shù)據(jù),滲瀝液原液、處理后濃縮液、沼氣產(chǎn)量、污泥產(chǎn)生量見表3。
系統(tǒng)在設(shè)計過程中采用快速原型模型,先了解系統(tǒng)核心功能及需求,開發(fā)出管理子系統(tǒng)的初步原型,移交教務(wù)人員測試并提出修改建議和新的需求,在此基礎(chǔ)上又開發(fā)出第二版已經(jīng)實現(xiàn)管理子系統(tǒng)基本功能的系統(tǒng)原型,再次移交教務(wù)人員測試使用,獲得測試反饋后繼續(xù)新版本原型的開發(fā),直到用戶對系統(tǒng)所有功能和操作都滿意就可以確定完成主體開發(fā)工作,進入系統(tǒng)公開測試階段。下面以快速原型模型在學生選課功能模塊及班級管理模塊中的使用為例說明該方法的具體運用。
(1)快速原型模型在學生選課功能模塊中的原型完善
系統(tǒng)模塊功能的細節(jié)在概要設(shè)計中往往被忽略,在詳細設(shè)計時原型就發(fā)揮出其優(yōu)勢。需求分析階段考慮不到的許多需求細節(jié),使用原型開發(fā)法進行階段用戶測試時都被檢測出來。在學生子系統(tǒng)設(shè)計過程中,開發(fā)人員在掌握核心需求后,快速開發(fā)出子系統(tǒng)的初步原型并移交用戶測試。在學生子系統(tǒng)的“個人選課管理”功能模塊中,學生一開始被設(shè)定可以選擇任何已經(jīng)通過審批的課程。用戶(即教務(wù)管理人員)測試后提出需求:根據(jù)目前學院有異地多校區(qū)的實際情況,學生只能選擇所在校區(qū)的開課課程;開發(fā)人員根據(jù)反饋改進原型后,用戶又提出新需求:選課時不同課程班級要有不同的人數(shù)限制(教師開班時需要設(shè)置學生人數(shù)的上限和下限);開發(fā)者根據(jù)反饋信息進行修改,原型得到進一步完善,用戶再次試用后又提出需求:學生選課數(shù)目要有限制,且需要為每門選課增加備注功能,學生參考備注進行選課。于是在一輪一輪的原型修改中系統(tǒng)功能逐步完善。
(2)班級管理模塊中的原型完善
在管理員子系統(tǒng)的“班級管理”模塊中,使用增(in?sert)、刪(delete)、查(select)、改(update)等操作完成了基本功能完備的系統(tǒng)原型,用戶使用后給出要增加以班級為單位限制班級選課門數(shù)、管理人員按需設(shè)置班級選課權(quán)限等反饋,開發(fā)者修改原型并移交用戶使用后,用戶又提出增加在“班級管理”模塊中查看每個班級已經(jīng)選課學生人數(shù)及名單和未選課學生人數(shù)及名單功能的需求,開發(fā)者再次根據(jù)反饋完善系統(tǒng)。
原型就是在用戶一次次的反饋并根據(jù)反饋進行完善后慢慢成熟,成為最終的功能完善、用戶滿意的系統(tǒng)。
針對用戶(教務(wù)管理人員、教師、學生)在試用過程中提出的反饋意見,開發(fā)人員迅速調(diào)整開發(fā)方案,對學生選課系統(tǒng)進行修改和完善,生成最終的軟件產(chǎn)品交付用戶使用。
首先,快速建立的系統(tǒng)結(jié)構(gòu)加上連續(xù)的修改可能會導致產(chǎn)品質(zhì)量降低。因為用戶參與開發(fā)過程并不時改變需求,過多的修改使程序容易出現(xiàn)Bug 從而導致產(chǎn)品質(zhì)量降低。當然,開發(fā)人員通過完善跟蹤文檔可以盡量減少這種情況,例如學生選課系統(tǒng)在每個原型建立時都有相應(yīng)的文檔說明,有效降低了出現(xiàn)Bug 概率。其次,因為用戶可能隨時更改需求,導致開發(fā)人員的工作量大大增加。用戶每次需求的更改都需要對原型進行修改,界面和功能都可能發(fā)生變化,代碼和數(shù)據(jù)庫都相應(yīng)要做出大量的修改。學生選課系統(tǒng)開發(fā)團隊選擇了使用母版頁、助手類、存儲過程、采用面向?qū)ο蠹夹g(shù)等前沿技術(shù)從而大大減少了工作量。最后,需求變化導致的數(shù)據(jù)庫設(shè)計的變更給開發(fā)工作帶來很大的麻煩。鑒于此,開發(fā)人員選擇該開發(fā)方法時一定要注意揚長避短,最大程度地發(fā)揮快速原型模型的優(yōu)勢。
使用快速原型模型開發(fā)產(chǎn)品的一個重要前提,就是要在盡量短時間內(nèi)構(gòu)造出原型。學生選課系統(tǒng)的開發(fā)團隊比較熟悉教學領(lǐng)域,學生和教務(wù)管理人員意見反饋很及時準確,對問題的定義一直比較準確,所以原型完善得很快,也縮短了軟件開發(fā)周期。
快速原型模型適用在B/S 構(gòu)架上。B/S 構(gòu)架網(wǎng)站的一個網(wǎng)頁相當于一個功能模塊,原型的建立相當于發(fā)布相應(yīng)功能的網(wǎng)頁。.NET 和SQL Server 技術(shù)的無縫結(jié)合在快速構(gòu)造原型中也發(fā)揮了很大作用。為了提高頁面的執(zhí)行效率,選課系統(tǒng)使用了大量的存儲過程,存儲過程適用于模塊化的程序設(shè)計,編譯一次可調(diào)用任意次,減少了網(wǎng)絡(luò)流量、提高了代碼執(zhí)行效率的同時也提升了系統(tǒng)的安全指數(shù)。