軟件需求分析也稱為需求分析断傲、系統(tǒng)需求分析或需求分析工程等脱吱,是開發(fā)人員經(jīng)過深入細(xì)致的調(diào)研和分析,準(zhǔn)確理解用戶和項(xiàng)目的功能认罩、性能箱蝠、可靠性等具體要求,將用戶非形式的需求表述轉(zhuǎn)化為完整的需求定義垦垂,從而確定系統(tǒng)必須做什么的過程宦搬,是系統(tǒng)分析和軟件設(shè)計(jì)階段之間的橋梁。
主要表現(xiàn)在:
1. 需求分析以系統(tǒng)規(guī)格說明和項(xiàng)目規(guī)劃作為分析活動(dòng)的基本出發(fā)點(diǎn)劫拗,并從軟件角度對它們進(jìn)行檢查與調(diào)整间校。
2. 需求規(guī)格說明又是軟件開發(fā)設(shè)計(jì)、以及實(shí)現(xiàn)和測試直至維護(hù)的主要基礎(chǔ)页慷。良好的分析活動(dòng)有助于避免或盡早剔除早期錯(cuò)誤憔足,從而提高軟件生產(chǎn)率,降低開發(fā)成本酒繁,改進(jìn)軟件質(zhì)量滓彰,提高軟件系統(tǒng)的穩(wěn)定性和健全性。
需求分析的工作大致可以分為四個(gè)方面:問題識(shí)別州袒、分析與綜合揭绑、制訂規(guī)格說明、評(píng)審郎哭。
問題識(shí)別:就是從系統(tǒng)角度來理解軟件洗做,確定對所開發(fā)系統(tǒng)的綜合要求,并提出這些需求的實(shí)現(xiàn)條件彰居,以及需求應(yīng)該達(dá)到的標(biāo)準(zhǔn)诚纸。這些需求包括:功能需求(做什么)、性能需求(要達(dá)到什么指標(biāo))陈惰、環(huán)境需求(如機(jī)型畦徘、操作系統(tǒng)等)毕籽、可靠性需求(不發(fā)生故障的概率)、安全保密需求井辆、用戶界面需求关筒、資源使用需求(軟件運(yùn)行是所需的內(nèi)存、CPU等)杯缺、軟件成本消耗與開發(fā)進(jìn)度需求蒸播、預(yù)先估計(jì)以后系統(tǒng)可能達(dá)到的目標(biāo)。
分析與綜合:逐步細(xì)化所有的軟件功能萍肆,找出系統(tǒng)各元素間的聯(lián)系袍榆,接口特性和設(shè)計(jì)上的限制,分析他們是否滿足需求塘揣,剔除不合理部分包雀,增加需要部分。最后綜合成系統(tǒng)的解決方案亲铡,給出要開發(fā)的系統(tǒng)的詳細(xì)邏輯模型(做什么的模型)才写。
制訂規(guī)格說明書:即編制文檔,描述需求的文檔稱為軟件需求規(guī)格說明書奖蔓。請注意赞草,需求分析階段的成果是需求規(guī)格說明書,向下一階段提交吆鹤。
評(píng)審:對功能的正確性房资,完整性和清晰性,以及其它需求給予評(píng)價(jià)檀头。評(píng)審?fù)ㄟ^才可進(jìn)行下一階段的工作,否則重新進(jìn)行需求分析轰异。
?需求分析的方法
1 .功能分析方法
功能分析法即功能分解法是以系統(tǒng)提供的功能為中心來組織系統(tǒng)。首先定義各種功能,?然后把功能分解為子功能,?同時(shí)定義功能之間的接口暑始。數(shù)據(jù)結(jié)構(gòu)是根據(jù)功能/子功能的需要設(shè)計(jì)的搭独。?其基本策略是以分析員的經(jīng)驗(yàn)為依據(jù),?確定新系統(tǒng)所期望的處理步驟或子步驟,?然后,?將問題空間映射到功能和子功能上。
2 .數(shù)據(jù)流分析方法
數(shù)據(jù)流分析方法也叫結(jié)構(gòu)化分析,?其基本策略是研究問題域中數(shù)據(jù)如何流動(dòng)以及在各個(gè)環(huán)節(jié)上進(jìn)行何種處理,?從而發(fā)現(xiàn)數(shù)據(jù)流和加工廊镜。?問題域被映射為由數(shù)據(jù)流牙肝、加工以及文件、端點(diǎn)等成份構(gòu)成的數(shù)據(jù)流圖(DFD) ,?并用數(shù)據(jù)字典對數(shù)據(jù)流和加工進(jìn)行詳細(xì)說明嗤朴。這種方法的關(guān)鍵是動(dòng)態(tài)跟蹤數(shù)據(jù)流動(dòng)配椭。
3 .信息建模分析方法
信息建模分析方法的核心概念是實(shí)體和關(guān)系,?主要工具是語義數(shù)據(jù)模型(實(shí)體關(guān)系圖) ,?其基本策略是找出現(xiàn)實(shí)世界的對象,?然后用屬性來描述對象,?增添對象與對象之間的關(guān)系,?定義父類與子類,?用父類型/子類型提煉屬性的共性,?用關(guān)聯(lián)對象關(guān)系作細(xì)化的描述,?最后進(jìn)行規(guī)范化處理。?其實(shí)質(zhì)是將問題空間直接映射成模型中的對象雹姊。
4 .面向?qū)ο蠓治龇椒?/b>
面向?qū)ο蠓治?OOA(Object- Oriented Analysis)?的基本策略是通過信息隱藏將比較容易變化的元素隱藏起來,?分析員基于比較穩(wěn)定的元素建立其思想和規(guī)格說明的總體結(jié)構(gòu)股缸。
面向?qū)ο蠓治龅闹饕匦允羌訌?qiáng)了對問題域( Problem Domain) 和系統(tǒng)責(zé)任( System Responsibili-ties)的理解; 改進(jìn)與分析有關(guān)的各類人員之間的交流; 對需求的變化具有較強(qiáng)的適應(yīng)性; 支持軟件復(fù)用
5 .面向本體分析方法
面向本體的需求分析 OORA (Ontology- Oriented Require-ments Analysis) , 是 OOA方法的有效補(bǔ)充和提升。 面向本體方法強(qiáng)調(diào)相關(guān)領(lǐng)域的本質(zhì)概念以及這些概念之間的關(guān)聯(lián)吱雏。其實(shí)質(zhì)是在面向?qū)ο蠓椒ㄖ幸雽ο箨P(guān)聯(lián), 并給出各種關(guān)聯(lián)的語義語用敦姻。
OORA方法由 4 個(gè)階段來完成瘾境。第一階段: 用一種自然語言BIDL( Bisiness Information Description Language) 描述事務(wù); 第二階段: 確認(rèn)隱含在 BIDL文本中的本體和對象; 第三階段: 將這些本體和對象轉(zhuǎn)換成另一種語言 Ononet (Ontology and Object- Ori-ented Network) , 得到用 Ononet 書寫的需求預(yù)定義; 第四階段: 在采用 Ononet 作為知識(shí)表示形式的領(lǐng)域本體知識(shí)庫中搜索相關(guān)的知識(shí), 并和前面的需求預(yù)定義合并, 得到軟件完整的需求定義。
6 .形式化分析方法
形式化分析方法,廣義上講, 是應(yīng)用數(shù)學(xué)的手段來設(shè)計(jì)镰惦、 模擬和分析, 得到像數(shù)學(xué)公式那樣精確的表示迷守。從狹義上講, 就是使用一種形式語言進(jìn)行語言公式的形式推理, 用于檢查語法的良構(gòu)性并證明某些屬性。在需求分析階段, 利用形式化方法得到需求規(guī)格說明書, 可以規(guī)范軟件開發(fā)過程, 為獲得更好的系統(tǒng)性能提供重要保證旺入。
需求分析的特點(diǎn)及難點(diǎn):
1. 確定問題難兑凿。主要原因:一是應(yīng)用領(lǐng)域的復(fù)雜性及業(yè)務(wù)變化,難以具體確定茵瘾;二是用戶需求所涉及的多因素引起的礼华,比如運(yùn)行環(huán)境和系統(tǒng)功能、性能龄捡、可靠性和接口等。
2. 需求時(shí)常變化慷暂。軟件的需求在整個(gè)軟件生存周期聘殖,常會(huì)隨著時(shí)間和業(yè)務(wù)而有所變化。有的用戶需求經(jīng)常變化行瑞,一些企業(yè)可能正處在體制改革與企業(yè)重組的變動(dòng)期和成長期奸腺,其企業(yè)需求不成熟、不穩(wěn)定和不規(guī)范血久,致使需求具有動(dòng)態(tài)性突照。
3. 交流難以達(dá)到共識(shí)。需求分析涉及的人事物及相關(guān)因素多氧吐,與用戶讹蘑、業(yè)務(wù)專家、需求工程師和項(xiàng)目管理員等進(jìn)行交流時(shí)筑舅,不同的背景知識(shí)座慰、角色和角度等,使交流共識(shí)較難翠拣。
4. 獲取的需求難以達(dá)到完備與一致版仔。由于不同人員對系統(tǒng)的要求認(rèn)識(shí)不盡相同,所以對問題的表述不夠準(zhǔn)確误墓,各方面的需求還可能存在著矛盾蛮粮。難以消除矛盾,形成完備和一致的定義谜慌。
5. 需求難以進(jìn)行深入的分析與完善然想。需求理解對不全面準(zhǔn)確的分析,客戶環(huán)境和業(yè)務(wù)流程的改變欣范。市場趨勢的變化等又沾。也會(huì)隨著分析弊仪、設(shè)計(jì)和實(shí)現(xiàn)而不斷深入完善,可能在最后重新修訂軟件需求杖刷。分析人員應(yīng)認(rèn)識(shí)到需求變化的必然性励饵,并采取措施減少需求變更對軟件的影響。對必要的變更需求要經(jīng)過認(rèn)真評(píng)審滑燃、跟蹤和比較分析后才能實(shí)施役听。
?需求分析文檔的編寫:
需求調(diào)研和分析完成后,就是要根據(jù)需求分析內(nèi)容來編寫需求分析文檔表窘,也叫需求說明書典予,當(dāng)然需求文檔根據(jù)不同階段也會(huì)再細(xì)分。文檔怎么寫呢乐严?最好的上手方法就是——找模板瘤袖,根據(jù)模板來做“完型填寫”,這樣就不會(huì)出現(xiàn)漏項(xiàng)昂验、缺項(xiàng)捂敌,屬于武功里的“秘籍”部分。上哪能找到這些專業(yè)的需求文檔呢既琴?模板文檔網(wǎng)上很多(筆者最近也做了一個(gè)資料分享網(wǎng)站產(chǎn)品學(xué)習(xí)網(wǎng)占婉,里面有各種模板,有興趣的可以查看個(gè)人資料中的資料分享網(wǎng)站甫恩,里面也有相關(guān)的模板文件)可以下載作為參考逆济。
注:以上資料均來自網(wǎng)絡(luò),僅作為學(xué)習(xí)交流使用磺箕。