吉盼盼
摘要:在軟件開發(fā)中,做好軟件需求分析,能夠降低后續(xù)變更問題發(fā)生的幾率?;诖?,本文詳細(xì)闡述了業(yè)務(wù)需求分析、用戶需求分析、功能需求分析、非功能需求分析在軟件開發(fā)中的重要性,實(shí)現(xiàn)了對軟件產(chǎn)品開發(fā)設(shè)計(jì)的深入分析,希望能夠?yàn)橛?jì)算機(jī)軟件產(chǎn)業(yè)的發(fā)展提供助力。
關(guān)鍵詞:軟件開發(fā);業(yè)務(wù)需求;用戶需求
軟件需求分析是指在軟件開發(fā)中,針對計(jì)劃期間,軟件所能達(dá)到精確度的分析,其作為第一項(xiàng)開發(fā)工作環(huán)節(jié),是后續(xù)開發(fā)工作有效性的重要保障,因此,工作者應(yīng)當(dāng)明確軟件需求分析的重要性,并采取有效措施,強(qiáng)化分析結(jié)果的準(zhǔn)確性,促進(jìn)軟件產(chǎn)品的順利交付使用。
一、業(yè)務(wù)需求分析的重要性
(一)需求識別
根據(jù)現(xiàn)階段人們對軟件開發(fā)需求分析的定義來看,需求分析中涵蓋四個層次,即業(yè)務(wù)需求、用戶需求、功能需求、非功能需求。其中業(yè)務(wù)需求主要是指,客戶對軟件產(chǎn)品的高層次目標(biāo)要求,通常體現(xiàn)在項(xiàng)目范圍文檔、視圖內(nèi)容中。在此層面的需求分析中,工作者要采用技術(shù)架構(gòu)元模型,將零散分布于資料中的業(yè)務(wù)需求信息進(jìn)行整理和分類,明確用戶的業(yè)務(wù)需求,以保障軟件高層次開發(fā)目標(biāo)定位的準(zhǔn)確性。在此過程中,工作者應(yīng)將軟件履行的業(yè)務(wù)按照其所在領(lǐng)域進(jìn)行劃分,并確保用于分類的領(lǐng)域能夠被定義,進(jìn)而構(gòu)建出各個業(yè)務(wù)元素。然后將各個元素進(jìn)行羅列,并采用連線的方式,示意元素之間的關(guān)系,形成一個完整的技術(shù)架構(gòu)元模型,方便工作者隨時查閱,同時,為后續(xù)的系統(tǒng)邏輯檢查奠定基礎(chǔ)。
(二)需求信息校正
在需求識別環(huán)節(jié)完畢后,工作者應(yīng)認(rèn)識到,即便持有了明確的元素關(guān)系架構(gòu),但由于自身無法確定業(yè)務(wù)之間的邏輯關(guān)系是否正確,因此,在此項(xiàng)分析環(huán)節(jié)中,工作者仍不能保證信息的完整性。若待到開發(fā)時才發(fā)現(xiàn)邏輯錯誤,則會嚴(yán)重影響開發(fā)效率。為此,工作者應(yīng)采用規(guī)則引擎、流程引擎等方式,對該架構(gòu)進(jìn)行仿真分析,并進(jìn)行系統(tǒng)的模擬運(yùn)行,查看各個環(huán)節(jié)是否存在問題,然后及時予以校正,最終形成一個系統(tǒng)圖紙,使工作者能夠更加明確其所需開發(fā)的系統(tǒng),提高后續(xù)開發(fā)工作的準(zhǔn)確性和效率。
二、用戶需求分析的重要性
(一)需求識別
用戶需求主要是指用戶在應(yīng)用軟件時,必須要完成的工作,通常被記錄在 use case 文檔或 scenario 說明中,是軟件系統(tǒng)設(shè)計(jì),以及后續(xù)維護(hù)設(shè)計(jì)的主要依據(jù)。在此過程中,工作者需要通過與客戶進(jìn)行溝通,來調(diào)查、分析用戶的需求,以降低變更發(fā)生的幾率。為此,工作者先要對用戶的需求進(jìn)行識別。在需求識別中,部分客戶本身并不具備足夠的計(jì)算機(jī)專業(yè)知識,不能準(zhǔn)確地描述自身的需求,造成了大量潛在的要求無法被順利識別,導(dǎo)致后續(xù)頻繁出現(xiàn)變更,因此,工作者應(yīng)先細(xì)化《用戶需求說明書》,然后針對復(fù)雜的需求,采用建模分析法,識別用戶潛在需求,例如:RUP 需求建模分析法,在分析中,工作者可以采用 UML 作為建模工具,并借助工具中的用例模型描述功能,從用戶的角度上,理解系統(tǒng)總體功能,使需求識別結(jié)果更加準(zhǔn)確、完整。
(二)變更預(yù)防
在用戶需求分析中,完全按照需求識別結(jié)果,來進(jìn)行軟件開發(fā)也不能完全保障后期不會出現(xiàn)變更,因?yàn)楣ぷ髡咭膊荒艽_認(rèn)識別結(jié)果不能存在誤差。為此,在實(shí)際的分析工作中,工作者還要積極與用戶進(jìn)行溝通,逐步確認(rèn)各項(xiàng)潛在需求,同時,對于用戶提出的新需求,也要及時予以記錄和整理,然后基于此,深入分析用戶提出新需求的原因,并發(fā)掘新需求所帶來的潛在需求,增強(qiáng)需求分析結(jié)果的完整性。減少后續(xù)變更的數(shù)量。此外,工作者還要明確告知用戶,變更會帶來的結(jié)果,以免變更降低用戶的滿意度。
三、功能需求分析的重要性
(一)需求識別
功能需求層次被定位為開發(fā)工作者務(wù)必要實(shí)現(xiàn)的軟件功能,該功能應(yīng)當(dāng)是用戶利用系統(tǒng)完成任務(wù)所必不可少的功能,因此,該項(xiàng)需求在實(shí)際描述中經(jīng)常會采用“應(yīng)該”一詞,例如:系統(tǒng)應(yīng)該推送通知,告知用戶其申請內(nèi)容已經(jīng)得到批復(fù)。從本質(zhì)上來講,該項(xiàng)需求也被定義為客戶需要開發(fā)人員所實(shí)現(xiàn)的功能或效果,所以,部分用戶需求也可以轉(zhuǎn)化為功能需求。在該層次上的需求識別中,工作者需要采用 Visio、excel、腦圖等工具,仔細(xì)梳理軟件業(yè)務(wù)運(yùn)行程序,然后將其抽象成為功能模塊,并歸納整理出滿足需求的功能列表,為開發(fā)過程中的功能設(shè)計(jì)環(huán)節(jié),提供有力的依據(jù)。而在這種模塊化的需求識別中,工作者也要做好用戶訪談、問卷調(diào)查等工作,以強(qiáng)化需求識別結(jié)果的完整性。
(二)需求解決方案
在功能需求層面,分析工作主要服務(wù)于具體的開發(fā)設(shè)計(jì),因此,其在作用上,相較于以上兩個層次上的分析工作也更具針對性和具象性。基于此,在需求識別完成后,工作者還要根據(jù)需求,制定相應(yīng)的解決方案,以明確設(shè)計(jì)思路大框,保障后續(xù)開發(fā)工作效果。在此過程中,工作者需要將已經(jīng)歸納好的功能模塊,轉(zhuǎn)化為流程圖,或邏輯圖,以闡述系統(tǒng)的作業(yè)流水線,然后根據(jù)各個功能模塊在流水線中的職能,設(shè)計(jì)出相應(yīng)的軟件系統(tǒng)解決方案,即可以支持該功能順利完成的編程思路,并繪制交互原圖,結(jié)合素材,與 UI 溝通,確保軟件開發(fā)結(jié)果可以達(dá)到預(yù)期。
四、非功能需求分析的重要性
(一)需求識別
非功能需求從本質(zhì)上來看是一種對軟件產(chǎn)品設(shè)計(jì)、構(gòu)造的限制,其闡述了軟件展現(xiàn)給用戶的行為,以及執(zhí)行操作,通常包含產(chǎn)品必須遵循的規(guī)范、合約、標(biāo)準(zhǔn)等,同時也包括對外部界面的具體要求。此外,還包括可靠性、安全性、可擴(kuò)展性等其他非功能性的要求,因此,工作者難以通過主觀來識別軟件產(chǎn)品的非功能需求,并且需要借助建模等方式,來實(shí)現(xiàn)準(zhǔn)確的需求識別。在此過程中,工作者可以建立一個需求元模型,但考慮到該項(xiàng)需求分析的特殊性,工作者應(yīng)將常規(guī)的需求元模型框架 RGPS 中的目標(biāo)層模型進(jìn)行擴(kuò)展,將非功能需求進(jìn)行定量和定性,增強(qiáng)非功能需求分析效果。
(三)變更預(yù)防
由于該項(xiàng)需求內(nèi)容比較籠統(tǒng),因此,在實(shí)際操作中,即使將分析結(jié)果的準(zhǔn)確性盡可能提高,待后續(xù)開發(fā)時,依然有可能常出現(xiàn)變更情況。為此,工作者還要將變更情況的預(yù)防,納入到非功能需求分析環(huán)節(jié)中,增強(qiáng)需求分析的效用。在此過程中,工作者應(yīng)注意挖掘客戶的潛在需求,以確保非功能需求分析結(jié)果的準(zhǔn)確性。從客戶角度上來說,非功能需求涵蓋對系統(tǒng)應(yīng)用體驗(yàn)的要求和具體應(yīng)用場景下,系統(tǒng)性能的要求,所以,工作者應(yīng)從以上兩點(diǎn)入手,深入分析客戶的潛在需求,以降低后期變更發(fā)生的幾率[1]。
五、結(jié)論
提高需求分析結(jié)果的準(zhǔn)確性,有助于軟件開發(fā)工作水平的發(fā)展。在需求分析過程中,工作者通過從各個層次角度上進(jìn)行需求分析可以準(zhǔn)確定位高層次開發(fā)目標(biāo)、有效預(yù)防變更、合理設(shè)計(jì)系統(tǒng)功能、優(yōu)化軟件產(chǎn)品性能,從而充分發(fā)揮需求分析的效用,優(yōu)化開發(fā)工作效果。
參考文獻(xiàn):
[1]李靖.分層技術(shù)在計(jì)算機(jī)軟件開發(fā)中的應(yīng)用[J].通訊世界,2020,27(06):33+35.