2.需求分析的過程
需求分析階段的工作,可以分成以下4個(gè)方面:對(duì)問題的識(shí)別、分析與綜合、制定規(guī)格說明和評(píng)審。
(1)問題識(shí)別首先系統(tǒng)分析人員要研究計(jì)劃階段產(chǎn)生的可行性分析報(bào)告(如果有的話)和軟件項(xiàng)目實(shí)施計(jì)劃。主要是從系統(tǒng)的角度來理解軟件并評(píng)審用于產(chǎn)生計(jì)劃估算的軟件范圍是否恰當(dāng)。確定對(duì)目標(biāo)系統(tǒng)的綜合要求,即軟件的需求。并提出這些需求實(shí)現(xiàn)條件,以及需求應(yīng)達(dá)到的標(biāo)準(zhǔn)。也就是要求所開發(fā)軟件做什么,做到什么程度。這些需求包括:
功能需求:列舉出所開發(fā)軟件在職能上應(yīng)做什么。這是最主要的需求。
性能需求:給出所開發(fā)軟件的技術(shù)性能指標(biāo),包括存儲(chǔ)容量限制、運(yùn)行時(shí)間限制、安全保密性等。
環(huán)境需求:這是對(duì)軟件系統(tǒng)運(yùn)行時(shí)所處環(huán)境的要求。例如在硬件方面,采用什么機(jī)型、有什么外部設(shè)備、數(shù)據(jù)通信接口等等。在軟件方面,采用什么支持系統(tǒng)運(yùn)行的系統(tǒng)軟件(指操作系統(tǒng)、網(wǎng)絡(luò)軟件、數(shù)據(jù)庫管理系統(tǒng)等)。在使用方面,需要使用部門在制度上、操作人員的技術(shù)水平上應(yīng)具備什么樣的條件等等。
可靠性需求:各種軟件在運(yùn)行時(shí),失效的影響各不相同。在需求分析時(shí),應(yīng)對(duì)所開發(fā)軟件在投入運(yùn)行后不發(fā)生故障的概率,按實(shí)際的運(yùn)行環(huán)境提出要求,對(duì)于那些重要的軟件,或是運(yùn)行失效會(huì)造成嚴(yán)重后果的軟件,應(yīng)當(dāng)提出較高的可靠性要求,以期在開發(fā)的過程中采取必要的措施,使軟件能夠高度可靠地穩(wěn)定運(yùn)行,避免因運(yùn)行事故而帶來的損失。
安全保密要求:工作在不同環(huán)境的軟件對(duì)其安全,保密的要求顯然是不同的。應(yīng)當(dāng)把這方面的需求恰當(dāng)?shù)刈龀鲆?guī)定,以便對(duì)所開發(fā)的軟件給予特殊的設(shè)計(jì),使其在運(yùn)行中其安全方面的性能得到必要的保證。
用戶界面需求:軟件與用戶界面的友好性是用戶能夠方便、有效、愉快地使用該軟件的關(guān)鍵之一。從市場(chǎng)角度來看,具有友好用戶界面的軟件有很強(qiáng)的競爭力。因此,必須在需求分析時(shí),為用戶界面細(xì)致地規(guī)定達(dá)到的要求。
資源使用需求:這是指所開發(fā)軟件運(yùn)行時(shí)所需的數(shù)據(jù)、軟件、內(nèi)存空間等各項(xiàng)資源外,軟件開發(fā)時(shí)所需的人力、支撐軟件、開發(fā)設(shè)備等則屬于軟件開發(fā)的資源,需要在需求分析時(shí)加以確定。
軟件成本消耗與開發(fā)進(jìn)度需求:在軟件項(xiàng)目立項(xiàng)后,要根據(jù)合同規(guī)定,對(duì)軟件開發(fā)的進(jìn)度和步驟的費(fèi)用提出要求,作為開發(fā)管理的依據(jù)。
預(yù)先估計(jì)以后系統(tǒng)可能達(dá)到的目標(biāo)。這樣,在開發(fā)過程中,可對(duì)系統(tǒng)將來可能擴(kuò)駐與修改做準(zhǔn)備。一旦需要時(shí),就比較容易進(jìn)行補(bǔ)充和修改。
功能性需求是人們普遍關(guān)注的,但常常忽視對(duì)非功能性需求的分析。其實(shí)非功能性需求并不是無關(guān)緊要的,它們涉及到的方面多而廣,因而容易被忽略。如果在進(jìn)行需求分析之前沒有做過可行性分析,那么補(bǔ)充完成這部分工作往往是必要的。從問題定義和調(diào)查研究入手,與用戶密切聯(lián)系,詳細(xì)了解問題提出的背景,弄清要解決什么問題。然后從軟件系統(tǒng)特性和用戶目標(biāo)出發(fā),做市場(chǎng)調(diào)查和現(xiàn)場(chǎng)考察。仔細(xì)收集信息之后進(jìn)行數(shù)據(jù)分析和功能分析,建立系統(tǒng)的高層邏輯模型,再進(jìn)一步做成本/效益分析。最后提交一份可行性分析報(bào)告,從技術(shù)、經(jīng)濟(jì)、社會(huì)效應(yīng)等方面論證可行性,以確認(rèn)軟件開發(fā)的目標(biāo)是否可行。問題識(shí)別的另一項(xiàng)工作是建立分析所需要的通信途徑,以保證能順利地對(duì)問題進(jìn)行分析。分析員必須與用戶、軟件開發(fā)機(jī)構(gòu)的管理部門、軟件開發(fā)組的人員建立聯(lián)系。項(xiàng)目負(fù)責(zé)人在此過程中起協(xié)調(diào)人的作用。分析員通過這種通信途徑與各方商討,以便能滿足用戶的要求。
。2)分析與綜合需求分析的第二步工作是問題分析和方案的綜合。分析員需從數(shù)據(jù)流和數(shù)據(jù)結(jié)構(gòu)出發(fā),逐步細(xì)化所有的軟件功能,找出系統(tǒng)各元素之間的聯(lián)系、接口特性和設(shè)計(jì)上的限制,分析它們是否滿足功能要求,是否合理。依據(jù)功能需求、性能需求、運(yùn)行特性和設(shè)計(jì)上的限制分析它們是否滿足功能要求,是否合理。依據(jù)功能需求、性能需求、運(yùn)行環(huán)境需求等,剔除其不合理的部分,增加其需要的部分。最終綜合成系統(tǒng)的解決方案,給出目標(biāo)系統(tǒng)的詳細(xì)邏輯模型。在這個(gè)步驟中,分析和綜合工作反復(fù)地進(jìn)行。在對(duì)現(xiàn)行問題和期望的信息(輸入和輸出)進(jìn)行分析的基礎(chǔ)上,分析員開始綜合出一個(gè)或幾個(gè)解決方案,然后檢查這些方案是否符合軟件計(jì)劃中規(guī)定的范圍等等,再進(jìn)行修改?傊,對(duì)問題進(jìn)行分析和綜合的過程將一直持續(xù)到分析員與用戶雙方都感到有把握正確地制定該軟件的規(guī)格說明為止。常用的分析方法有面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法(簡稱SA)、面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法(簡稱JSD)、面向?qū)ο蟮姆治龇椒ǎê喎QOOA)等,以及用于建立動(dòng)態(tài)、模型的狀態(tài)遷移圖或Petri網(wǎng)等。這些方法都采用圖文結(jié)合的方式,可以直觀地描述軟件的邏輯模型。
。3)編制需求分析的文檔已經(jīng)確定的需求應(yīng)當(dāng)?shù)玫角逦鷾?zhǔn)確的描述。通常把描述需求的文檔叫做軟件需求規(guī)格說明書。同時(shí),為了確切表達(dá)用戶對(duì)軟件的輸入輸出要求,還需要制定數(shù)據(jù)要求說明書及編寫初步的用戶手冊(cè),著重反映被開發(fā)軟件的用戶界面和用戶使用的具體要求。此外,依據(jù)在需求分析階段對(duì)系統(tǒng)的進(jìn)一步分析,從目標(biāo)系統(tǒng)的精細(xì)模型出發(fā),可以更確切地估計(jì)所開發(fā)項(xiàng)目的成本與進(jìn)度,從而修改、完善與確定軟件開發(fā)的實(shí)施計(jì)劃。
。4)需求分析評(píng)審作為需求分析階段工作的復(fù)查手段,在需求分析的最后一步,應(yīng)該對(duì)功能的正確性、完整性和清晰性,以及其他需求給予評(píng)價(jià)。評(píng)審的主要內(nèi)容是:
系統(tǒng)定義的目標(biāo)是否與用戶的要求一致;
系統(tǒng)需求分析階段提供的文檔資料是否齊全;
文檔中的所有描述是否完整、清晰、準(zhǔn)確所反映用戶要求;
與所在其他系統(tǒng)成分的重要接口是否都已經(jīng)描述;
所開發(fā)項(xiàng)目的數(shù)據(jù)流與數(shù)據(jù)結(jié)構(gòu)是否足夠,確定;
所有圖表是否清楚,在不補(bǔ)充說明時(shí)能否理解;
主要功能是否已包括在規(guī)定的軟件范圍之內(nèi),是否都已充分說明;
設(shè)計(jì)的約束條件或限制條件是否符合實(shí)際;
開發(fā)的技術(shù)風(fēng)險(xiǎn)是什么;
是否考慮過軟件需求的其他方案;
是否考慮過將來可能會(huì)提出的軟件需求;
是否詳細(xì)制定了檢驗(yàn)標(biāo)準(zhǔn),它們能否對(duì)系統(tǒng)定義是否成功進(jìn)行確認(rèn);
有沒有遺漏、重復(fù)或不一致的地方;
用戶是否審查了初步的用戶手冊(cè);
軟件開發(fā)計(jì)劃中的估算是否受到了影響。為保證軟件需求定義的質(zhì)量,評(píng)審應(yīng)以專門指定的人員負(fù)責(zé),并按規(guī)程嚴(yán)格進(jìn)行。評(píng)審結(jié)束應(yīng)有評(píng)審負(fù)責(zé)人的結(jié)論意見及簽字。除分析員之外,用戶,開發(fā)部門的管理者,軟件設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試的人員都應(yīng)當(dāng)參加評(píng)審工作。通常,評(píng)審的結(jié)果都包括了一些修改意見,待修改完成后再經(jīng)評(píng)審?fù)ㄟ^,才可進(jìn)入設(shè)計(jì)階段。
希望與更多計(jì)算機(jī)等級(jí)考試的網(wǎng)友交流,請(qǐng)進(jìn)入計(jì)算機(jī)等級(jí)考試論壇
更多信息請(qǐng)?jiān)L問:考試吧計(jì)算機(jī)等級(jí)考試欄目
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |