
軟件系統(tǒng)需求分析策劃方案
軟件需求分析(Software Reguirement Analysis)是研究用戶需求得到的東西,完全理解用戶對軟件需求的完整功能,確認(rèn)用戶軟件功能需求,建立可確認(rèn)的、可驗(yàn)證的一個基本依據(jù)。
軟件需求分析是一個項(xiàng)目的開端,也是項(xiàng)目實(shí)施最重要的關(guān)鍵點(diǎn)。據(jù)有關(guān)的機(jī)構(gòu)分析結(jié)果表明,我們設(shè)計的軟件產(chǎn)品存在不完整性、不正確性等問題80%以上是需求分析錯誤所導(dǎo)致的,而且由于需求分析錯誤造成根本性的功能問題尤為突出。因此,一個項(xiàng)目的成功軟件需求分析是關(guān)鍵的一步。
A.軟件需求分析人員組織
軟件需求分析其根本性問題是理解用戶功能需求,由此軟件需求分析實(shí)際上是與客戶間交流過程完成的目標(biāo)。要求我們組織適當(dāng)?shù)膮⑴c人員進(jìn)行交流活動。
需求分析是一個綜合團(tuán)隊(duì)的工作,是在需求分析理論的指導(dǎo)下,對用戶需要進(jìn)行漸進(jìn)方式逐步深化;通過不斷變化方式形成具體約束;努力實(shí)現(xiàn)需求功能目標(biāo)形成特色效果的商業(yè)化
產(chǎn)品。需求分析是一個商業(yè)行為,完全是一個商業(yè)化操作,要求有商業(yè)、技術(shù)等結(jié)合的團(tuán)隊(duì)共同合作,解決需求和設(shè)計的同步,設(shè)計符合需求。
項(xiàng)目涉及內(nèi)容,項(xiàng)目大小都需要我們考慮參加軟件需求分析工作團(tuán)退的人數(shù),配置合理的參與人員。一般我們必須有商務(wù)活動人員,項(xiàng)目管理人員,設(shè)計技術(shù)人員等參加,而且要求組織人員必須明確負(fù)責(zé)范圍,以及明確工作目標(biāo),保證實(shí)施的有效性。
B.具體開展需求分析工作,建議采用以下步驟形成軟件需求:確定項(xiàng)目目標(biāo)及范圍→獲取用戶需求→分析用戶需求→編寫需求文檔→評審需求文檔→管理需求。
第一步:明確需要分析的工作目標(biāo),同時確定調(diào)研對象,最好能指定本次項(xiàng)目的接口人。
明確軟件需求分析的主要實(shí)現(xiàn)目標(biāo)包括如下內(nèi)容:
1)對實(shí)現(xiàn)軟件的功能做全面的描述,幫助用戶判斷實(shí)現(xiàn)功能的正確性、一致性和完整性,促使用戶在軟件設(shè)計啟動之前周密地、全面地思考軟件需求;
2)了解和描述軟件實(shí)現(xiàn)所需的全部信息,為軟件設(shè)計、確認(rèn)和驗(yàn)證提供一個基準(zhǔn);
3)為軟件管理人員進(jìn)行軟件成本計價和編制軟件開發(fā)計劃書提供依據(jù);
第二步:獲取用戶需求。這是該階段的一個最重要的任務(wù)。對用戶進(jìn)行訪談和調(diào)研。交流的方式可以是會議、電話、電子郵件、小組討論、模擬演示等不同形式。具體說來可分為三個階段:
1.“訪談”階段
這一階段是和具體用戶方的領(lǐng)導(dǎo)層、業(yè)務(wù)層人員的訪談式溝通,主要目的是從宏觀上把握用戶的具體需求方向和趨勢,了解現(xiàn)有的組織架構(gòu)、業(yè)務(wù)流程、硬件環(huán)境、軟件環(huán)境、現(xiàn)有的運(yùn)行系統(tǒng)等等具體情況、客觀的信息。建立起良好的溝通渠道和方式。針對具體的職能部門以及成員單位。
實(shí)現(xiàn)手段:訪談、調(diào)查表格
輸出成果:調(diào)查報告、業(yè)務(wù)流程報告
2.“誘導(dǎo)”階段
這一階段是在承建方已經(jīng)了解了具體用戶方的組織架構(gòu)、業(yè)務(wù)流程、硬件環(huán)境、軟件環(huán)境、現(xiàn)有的運(yùn)行系統(tǒng)等等具體實(shí)際、客觀的信息基礎(chǔ)上,結(jié)合現(xiàn)有的硬件、軟件實(shí)現(xiàn)方案,做出簡單的用戶流程頁面,同時結(jié)合以往的項(xiàng)目經(jīng)驗(yàn)對用戶采用誘導(dǎo)式、啟發(fā)式的調(diào)研方法和手段,和用戶一起探討業(yè)務(wù)流程設(shè)計的合理性、準(zhǔn)確性、便易性、習(xí)慣性。用戶可以操作簡單演示的DEMO,來感受一下整個業(yè)務(wù)流程的設(shè)計合理性、準(zhǔn)確性等等問題,及時地提出改進(jìn)意見和方法。
實(shí)現(xiàn)手段:拜訪(誘導(dǎo))、原型演示
輸出成果:調(diào)研分析報告、原型反饋報告、業(yè)務(wù)流程報告
3.“確認(rèn)”階段
這一階段是在上述兩個階段成果的基礎(chǔ)上,進(jìn)行具體的流程細(xì)化、數(shù)據(jù)項(xiàng)的確認(rèn)階段,這個階段承建方必須提供原型系統(tǒng)和明確的業(yè)務(wù)流程報告、數(shù)據(jù)項(xiàng)表,并能清晰地向用戶描述系統(tǒng)的業(yè)務(wù)流設(shè)計目標(biāo)。用戶方可以通過審查業(yè)務(wù)流程報告、數(shù)據(jù)項(xiàng)表以及操作承建方提供的DEMO系統(tǒng),來提出反饋意見,并對已經(jīng)可接受的報告、文檔簽字確認(rèn)。
實(shí)現(xiàn)手段:拜訪(回顧、確認(rèn)),提交業(yè)務(wù)流程報告、數(shù)據(jù)項(xiàng)表;原型演示系統(tǒng)
輸出成果:需求分析報告、數(shù)據(jù)項(xiàng)、業(yè)務(wù)流程報告、原型系統(tǒng)反饋意見(后三者可以統(tǒng)一歸入需求分析報告中,提交用戶方、監(jiān)理方進(jìn)行確認(rèn)和存檔)
整體來講,需求分析的三個階段是需求調(diào)研中不可忽視一個重要的部分,三個階段或者說三步法的實(shí)施和采用,對用戶和承建方都同樣提供了項(xiàng)目成功的保證。當(dāng)然在系統(tǒng)建設(shè)的過程中,特別在采用迭代法的開發(fā)模式時,需求分析的工作需一直進(jìn)行下去,而在后期的需求改進(jìn)中,工作則基本集中在后兩個階段中。
第三步:分析用戶需求。
需求分析人員對收集到的用戶需求做進(jìn)一步的分析和整理。下面是幾條常見的準(zhǔn)則:
1.對于用戶提出的每個需求都要知道“為什么”,并判斷用戶提出的需求是否有充足的理由;
2.將那種以“如何實(shí)現(xiàn)”的表述方式轉(zhuǎn)換為“實(shí)現(xiàn)什么”的方式,因?yàn)樾枨蠓治鲭A段關(guān)注的目標(biāo)是“做什么”,而不是“怎么做”;
3.分析由用戶需求衍生出的隱含需求,并識別用戶沒有明確提出來的隱含需求(有可能是實(shí)現(xiàn)用戶需求的前提條件),這一點(diǎn)往往容易忽略掉,經(jīng)常因?yàn)閷﹄[含需求考慮得不夠充分而引起需求變更。
需求分析的具體內(nèi)容可以歸納為六個方面:軟件的功能需求,軟件與硬件或其他外部系統(tǒng)接口,軟件的非功能性需求,軟件的反向需求,軟件設(shè)計和實(shí)現(xiàn)上的限制,閱讀支持信息。
軟件需求分析應(yīng)盡量提供軟件實(shí)現(xiàn)功能需求的全部信息,使得軟件設(shè)計人員和軟件測試人員不再需要需求方的接觸。這就要求軟件需求分析內(nèi)容應(yīng)正確、完整、一致和可驗(yàn)證。此外,為保證軟件設(shè)計質(zhì)量,便于軟件功能的休整和驗(yàn)證,軟件需求表達(dá)無岔意性,具有可追蹤性和可修改性。
1.軟件的功能需求。
軟件的功能需求是整個需求分析最主要、最關(guān)鍵和最復(fù)雜的部分,它描述軟件的各種可能的條件下,對所有可能輸入的數(shù)據(jù)信息,應(yīng)完成那些具體功能,產(chǎn)生什么樣的輸出。描述軟件功能需求是應(yīng)注意下面幾點(diǎn):
1)功能需求的完整性和一致性
對功能的描述應(yīng)包含與功能相關(guān)的信息,并應(yīng)具有內(nèi)在的一致性(即各種描述之間不矛盾、不沖突)。應(yīng)注意以下幾點(diǎn):
(1)給出觸發(fā)功能的各種條件(如:控制流、運(yùn)行狀態(tài)、運(yùn)行模式等);
(2)定義各種可能性條件下的所有可能的輸入(包括合法的輸入空間和非法的輸入空間);
(3)給出各種功能間可能的相互關(guān)系(如各個功能間的控制流、數(shù)據(jù)流、信息流,功能運(yùn)行關(guān)系:順序、重復(fù)、選擇、并發(fā)、同步);
(4)給出功能性的主要級別(如:基本功能、可由設(shè)計者選擇逐步實(shí)現(xiàn)的功能、可由設(shè)計者改變實(shí)現(xiàn)的功能等);
(5)盡可能不使用“待定”這樣的詞。所有含有待定內(nèi)容的需求都不是完整的文件,如果出現(xiàn)待定的部分,必須進(jìn)行待定部分內(nèi)容說明,落實(shí)負(fù)責(zé)人員、落實(shí)實(shí)施日期。
2)功能描述的無岔意性和可追蹤性
需求功能描述的無岔意性、可追蹤性和規(guī)范化:
(1)功能描述必須清晰地描述出怎樣輸入到怎樣輸出,并且輸入、輸出描述應(yīng)對應(yīng)有數(shù)據(jù)流描述、控制流描述圖,這些描述必須與其它地方描述一致;
(2)可以用語言、方程式、決策表、矩陣或圖等對功能的描述。如果選用語言描述必須使用結(jié)構(gòu)化的語言,描述前必須說明該步驟(或子功能)的執(zhí)行是順序,選擇,重復(fù),還是并發(fā),然后說明步驟邏輯。整個描述必須單入單出。
(3)描述時,每一個功能名稱和參照編號必須唯一,且不要將多個功能混在一起進(jìn)行描述,這樣便于功能的追蹤和修改。
(4) 功能描述應(yīng)注意需求說明和程序設(shè)計的區(qū)別。需求設(shè)計僅僅是軟件的功能設(shè)計,它給出軟件運(yùn)行的的外部功能描述,以及為了實(shí)現(xiàn)這一外部功能必須做哪些事情(采用和種數(shù)據(jù)結(jié)構(gòu),定義多個模塊,接口間的接口等)是設(shè)計階段的事情,功能描述不應(yīng)涉及到那些細(xì)節(jié)問題,以避免給軟件設(shè)計帶來不必要的約束。
2.軟件與硬件或其他外部系統(tǒng)接口。
軟件與硬件或其它外部系統(tǒng)接口包括下述內(nèi)容:
(1)人機(jī)接口:說明輸入、輸出的內(nèi)容、屏幕安排、格式等要求;
(2)硬件接口:說明端口號,指令集,輸入輸出信號的內(nèi)容與數(shù)據(jù)類型,初始化信號源,傳輸通道號和信號處理方式。
(3)軟件接口:說明軟件的名稱、助記符、規(guī)格說明、版本號和來源;
(4)通訊接口:指定通訊接口和通訊協(xié)議等描述。
3.軟件的非功能性要求。
軟件非功能性需求是指軟件性能指標(biāo),容限等功能以外的需求。一般指下述內(nèi)容:
(1)時間需求:輸入、輸出頻率,輸入、輸出響應(yīng)時間,各種功能恢復(fù)時間等;
(2)處理容限、精度、采樣參數(shù)的分辨率,誤差處理等;
(3)可靠性的MTBF要求,可維護(hù)性、安全性要求等。(對可能的不正常的輸入給以正常響應(yīng)是可靠性的重要內(nèi)容,這屬于功能性需求。)
4.軟件反向需求
軟件的反向需求描述軟件在那些情況下不能做什么。這一條是隨軟件實(shí)際要求而定。有兩類情形需要采用反向需求的形式。第一種情況:某些用戶需求適宜采用反向形式說明,如數(shù)據(jù)安全性要求屬于這類形式。第二種情況:對一些可靠性和安全性要求較高的軟件,有些必須描述軟件不能做些什么。如控制點(diǎn)火時序,我們必須交代清楚在那些情況下不能點(diǎn)火,否則會造成故障。
5.軟件設(shè)計和實(shí)現(xiàn)上的限制
軟件設(shè)計和實(shí)現(xiàn)上的限制主要指對軟件設(shè)計者的限制。如軟件運(yùn)行環(huán)境的限制(選擇計算機(jī)類型,使用配置,操作系統(tǒng)的限制等)、設(shè)計工具的限制(使用語言、執(zhí)行的標(biāo)準(zhǔn))和保密要求等。
6.閱讀支持信息
這部分內(nèi)容是為了更好的幫助我們理解用戶需求,也是為了使需求便于修改和追蹤。其本身并不是對需求的描述,但它影響到需求分析的可讀性,也屬于需求分析的一個重要部分。一般目錄、需求背景信息、內(nèi)容索引、交叉引用表、注釋等均屬于這個部分的內(nèi)容。
再看軟件需求分析常用工具
我們根據(jù)用戶需求,通過反復(fù)討論、分析,最終明確一個唯一性的用戶需求,這個結(jié)果其實(shí)就是我們的軟件需求分析報告。一般我們采用Word、PowerPoint、Visio、ProntPage、Excel等Office工具,同時可能采用一些開發(fā)工具,如VC或BC等,同樣也會使用一些圖形工具,如Potoshop、調(diào)色板等畫圖工具。
使用各種工具表達(dá)軟件需求分析,其具體表達(dá)手段可以分為: