需求分析的任務(wù)是借助于當(dāng)前系統(tǒng)的物理模型(待開發(fā)系統(tǒng)的系統(tǒng)元素)導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型(只描述系統(tǒng)要完成的功能和要處理的數(shù)據(jù)),解決目標(biāo)系統(tǒng)“做什么”的問題,所要做的工作是深入描述軟件的功能和性能,確定軟件設(shè)計(jì)的限制和軟件同其他系統(tǒng)元素的接口細(xì)節(jié),定義軟件的其他有效性需求,通過逐步細(xì)化對(duì)軟件的要求描述軟件要處理的數(shù)據(jù),并給軟件開發(fā)提供一種可以轉(zhuǎn)化為數(shù)據(jù)設(shè)計(jì)、結(jié)構(gòu)設(shè)計(jì)和過程設(shè)計(jì)的數(shù)據(jù)與功能表示。必須全面理解用戶的各項(xiàng)要求,但不能全盤接受,只能接受合理的要求;對(duì)其中模糊的要求要進(jìn)一步澄清,然后決定是否采納;對(duì)于無法實(shí)現(xiàn)的要求要向用戶作充分的解釋。最后將軟件的需求準(zhǔn)確地表達(dá)出來,形成軟件需求說明書SRS。其實(shí)現(xiàn)步驟如圖:
(1) 獲得當(dāng)前系統(tǒng)的物理模型:首先分析、理解當(dāng)前系統(tǒng)是如何運(yùn)行的,了解當(dāng)前系統(tǒng)的組織機(jī)構(gòu)、輸入輸出、資源利用情況和日常數(shù)據(jù)處理過程,并用一個(gè)具體的模型來反映自己對(duì)當(dāng)前系統(tǒng)的理解。此步驟也可以稱為“業(yè)務(wù)建模”,其主要任務(wù)是對(duì)用戶的組織機(jī)構(gòu)或企業(yè)進(jìn)行評(píng)估理解他們的需要及未來系統(tǒng)要解決的問題,然后建立一個(gè)業(yè)務(wù)USECASE模型和業(yè)務(wù)對(duì)象模型。當(dāng)然假如系統(tǒng)相對(duì)簡單,也沒必要大動(dòng)干戈區(qū)進(jìn)行業(yè)務(wù)建模,只要做一些簡單的業(yè)務(wù)分析即可。
(2) 抽象出當(dāng)前系統(tǒng)的邏輯模型:在理解當(dāng)前系統(tǒng)“怎樣做”的基礎(chǔ)上,取出非本質(zhì)因素,抽取出“做什么”的本質(zhì)。
(4) 對(duì)邏輯模型的補(bǔ)充,如用戶界面、啟動(dòng)和結(jié)束、出錯(cuò)處理、系統(tǒng)輸入輸出、系統(tǒng)性能、其他限制等等。
(1) 問題識(shí)別:解決目標(biāo)系統(tǒng)做什么,做到什么程度。需求包括:功能、性能、環(huán)境、可靠性、安全性、保密性、用戶界面、資源使用、成本、進(jìn)度。同時(shí)建立需求調(diào)查分析所需的通信途徑。
(2) 分析與綜合:從數(shù)據(jù)流和數(shù)據(jù)結(jié)構(gòu)出發(fā),逐步細(xì)化所有的軟件功能,找出各元素之間的聯(lián)系、接口特性和設(shè)計(jì)上的限制,分析它們是否滿足功能要求并剔除不合理部分,綜合成系統(tǒng)解決方案,給出目標(biāo)系統(tǒng)的具體邏輯模型。常用的分析方法有面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法SA(數(shù)據(jù)流圖DFD、數(shù)據(jù)詞典DD、加工邏輯說明)、描繪系統(tǒng)數(shù)據(jù)關(guān)系的實(shí)體關(guān)系圖ERD、面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法JSD、面向?qū)ο蠓治龇椒∣OA(主要用UML)、對(duì)于有動(dòng)態(tài)時(shí)序問題的軟件可以用形式化技術(shù),包括有窮狀態(tài)機(jī)FSM的狀態(tài)遷移(轉(zhuǎn)換)圖STD、時(shí)序圖、Petri網(wǎng)或Z。每一種分析建模方法都有其優(yōu)勢和局限性,可以兼而有之以不同角度分析,應(yīng)該避免陷入在軟件需求方法和模型中發(fā)生教條的思維模式和派系斗爭,一般來說結(jié)構(gòu)化方法用于中小規(guī)模軟件、面向?qū)ο蠓椒ㄓ糜诖笮蛙浖?BR>
1、 必須能夠表達(dá)和理解問題的數(shù)據(jù)域和功能域:系統(tǒng)的目的都是為了解決數(shù)據(jù)處理問題,就是將一種形式的數(shù)據(jù)轉(zhuǎn)換(輸入、處理、輸出)為另一種形式的數(shù)據(jù)。數(shù)據(jù)域應(yīng)包括數(shù)據(jù)流、數(shù)據(jù)內(nèi)容和數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)流式數(shù)據(jù)通過系統(tǒng)時(shí)的變化方式。對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換就是程序的功能或子功能,兩個(gè)轉(zhuǎn)換之間的數(shù)據(jù)傳遞確定了功能間的接口。數(shù)據(jù)內(nèi)容就是數(shù)據(jù)項(xiàng),如人的數(shù)據(jù)項(xiàng)包括姓名、性別、出生日期等等。數(shù)據(jù)結(jié)構(gòu)即各種數(shù)據(jù)項(xiàng)的邏輯組織,如是表格結(jié)構(gòu)還是樹形結(jié)構(gòu)、數(shù)據(jù)項(xiàng)間的相互關(guān)系
2、 必須按自頂向下、逐層分解的方式對(duì)問題進(jìn)行分解和不斷細(xì)化:軟件的功能域和信息與都能做進(jìn)一步的分解,可以是同一層次上的橫向分解,也可以是多層次上的縱向分解。
3、 給出系統(tǒng)的邏輯模型和物理模型:邏輯模型給出軟件要達(dá)到的功能和要處理的數(shù)據(jù)之間的關(guān)系;物理模型給出處理功能和數(shù)據(jù)結(jié)構(gòu)的實(shí)際表示形式
3、 收集分析客戶使用的各種表格、有關(guān)工作責(zé)任、工作流程、工作規(guī)范、相關(guān)數(shù)據(jù)標(biāo)準(zhǔn)、業(yè)務(wù)標(biāo)準(zhǔn)的各種文字資料;
5、 情景分析:利用情景分析誘導(dǎo)用戶能夠把它們的需求告知分析員(可以描述當(dāng)前一項(xiàng)業(yè)務(wù)怎么做、也可以描述設(shè)想的系統(tǒng)中此項(xiàng)業(yè)務(wù)怎么做);
6、 可視化方法:結(jié)和情景分析,利用畫用戶界面圖、業(yè)務(wù)流程圖、功能結(jié)構(gòu)圖、時(shí)序圖等圖形與客戶進(jìn)行討論;
1、 首先確定用戶的軟件開發(fā)目標(biāo),確定系統(tǒng)基本范圍,然后圍繞這一目標(biāo),確定要訪問的部門和人員,要了解的業(yè)務(wù),在基本范圍內(nèi)展開調(diào)研;
2、 以部門職責(zé)為基礎(chǔ)搞清各種現(xiàn)有業(yè)務(wù)、要填寫的表簿冊文檔報(bào)表等,其數(shù)據(jù)來源及去向;
3、 以業(yè)務(wù)為主線,搞清每個(gè)業(yè)務(wù)的每個(gè)環(huán)節(jié)的流程關(guān)系、涉及部門、輸入輸出項(xiàng);
4、 以數(shù)據(jù)為主線,搞清數(shù)據(jù)采集方式、數(shù)據(jù)流向、數(shù)據(jù)之間的內(nèi)在聯(lián)系;
6、 應(yīng)思考是否有新技術(shù)可以改進(jìn)現(xiàn)有工作,用戶提出的需求用現(xiàn)有技術(shù)能否實(shí)現(xiàn)。進(jìn)入討論組討論。
八、結(jié)構(gòu)化方法分析步驟
1、 畫出數(shù)據(jù)流圖。設(shè)計(jì)數(shù)據(jù)流圖必須逐步求精;
2、 決定哪些部分需要計(jì)算機(jī)化和怎樣計(jì)算機(jī)化(取決于用戶投資限制和自身技術(shù)限制);
![]()
3、 描述數(shù)據(jù)流細(xì)節(jié),大型軟件可以使用數(shù)據(jù)字典描述所有數(shù)據(jù)元素;
4、 定義處理邏輯(加工邏輯:每個(gè)加工處理做什么);
5、 定義數(shù)據(jù)存儲(chǔ),即定義每個(gè)存儲(chǔ)的確切內(nèi)容及其表示法(格式);
6、 定義物理資源:如是文件需指定:文件名、組織結(jié)構(gòu)(排序、索引等)、存儲(chǔ)介質(zhì)和記錄;如是
數(shù)據(jù)庫需指定每個(gè)表的相關(guān)信息;
7、 確定輸入輸出規(guī)格說明,如輸入內(nèi)容、輸入屏幕、打印輸出格式、輸出長度等等;
8、 確定硬件所需有關(guān)數(shù)值,如輸入量、打印頻率、CPU、記錄大小、數(shù)據(jù)量大小、文件大小等等;
9、 確定軟硬件接口和環(huán)境需求。
九、UML方法分析步驟
一般的應(yīng)用系統(tǒng)又是各組成部分:問題論域、人機(jī)界面、數(shù)據(jù)治理、任務(wù)治理,在OOA階段重點(diǎn)對(duì)問題論域進(jìn)行分析,對(duì)人機(jī)界面、數(shù)據(jù)治理、任務(wù)治理等問題,OOA一般較少或沒有分析,而是留待OOD階段解決。
1、 調(diào)研、識(shí)別系統(tǒng)需求;
2、 分析問題領(lǐng)域:主要任務(wù)是充分理解領(lǐng)域問題和項(xiàng)目投資者及用戶的需求,對(duì)需求進(jìn)行抽象,提出高層次的解決方案);
(1) 確定系統(tǒng)范圍和系統(tǒng)邊界;
(2) 確定系統(tǒng)的約束(環(huán)境和條件);
(3) 定義活動(dòng)者;
(4) 確定系統(tǒng)的綜合要求(功能、性能、運(yùn)行);
(5) 確定系統(tǒng)的數(shù)據(jù)要求(名稱、范圍、類型、數(shù)量、特點(diǎn));
(6) 建立USE CASE模型、繪制USE CASE圖;
(7) 繪制主要交互圖;
3、 建立靜態(tài)結(jié)構(gòu)模型(對(duì)象類圖、數(shù)據(jù)庫模型、包圖);
4、 建立動(dòng)態(tài)行為模型(順序圖、協(xié)同圖、狀態(tài)圖、活動(dòng)圖);
5、 建立系統(tǒng)物理模型(組件圖、配置圖);
十、企業(yè)級(jí)信息系統(tǒng)調(diào)研分析步驟
企業(yè)級(jí)信息系統(tǒng)即著眼于整個(gè)企業(yè)的信息系統(tǒng),是一個(gè)覆蓋企業(yè)所有業(yè)務(wù)領(lǐng)域、適應(yīng)企業(yè)不斷發(fā)展的綜合信息系統(tǒng),它是一個(gè)統(tǒng)一的整體數(shù)據(jù)具有一致性,提高了系統(tǒng)的綜合利用效率。
A、規(guī)劃階段
1、 構(gòu)建高層次的企業(yè)模型
(1) 調(diào)查組織結(jié)構(gòu)、建立組織關(guān)系層次圖;
(2) 調(diào)查企業(yè)的任務(wù)、目標(biāo)、戰(zhàn)略重點(diǎn)和要害成功因素并予以分類;
(3) 識(shí)別每個(gè)目標(biāo)和要害成功因素所需的信息;
(4) 給出每個(gè)目標(biāo)完成的度量標(biāo)準(zhǔn);
(5) 分析信息技術(shù)對(duì)企業(yè)業(yè)務(wù)的潛在影響;
(6) 建立高層次企業(yè)模型(描述業(yè)務(wù)處理的主題域及其關(guān)系、建立企業(yè)初始功能層次圖);
(7) 與企業(yè)中高層治理人員討論,對(duì)所得信息和分析進(jìn)行補(bǔ)充和確認(rèn);
2、 對(duì)功能進(jìn)行分解(輸出:功能層次圖、功能關(guān)系圖、功能/組織矩陣);
3、 進(jìn)行實(shí)體分析(輸出:高層實(shí)體關(guān)系圖、實(shí)體類/信息需求矩陣、業(yè)務(wù)功能/實(shí)體類矩陣);
4、 評(píng)估企業(yè)當(dāng)前環(huán)境(現(xiàn)有系統(tǒng)和數(shù)據(jù)存儲(chǔ)的清單、信息結(jié)構(gòu)的范圍、信息需求列表、組織、技術(shù)環(huán)境);
5、 識(shí)別和確定預(yù)期的數(shù)據(jù)存儲(chǔ)和業(yè)務(wù)系統(tǒng),建立業(yè)務(wù)系統(tǒng)的結(jié)構(gòu)圖,確定和記錄業(yè)務(wù)領(lǐng)域;
B、業(yè)務(wù)領(lǐng)域分析階段
1、 確定業(yè)務(wù)范圍、建立組織、制訂計(jì)劃;
2、 進(jìn)行數(shù)據(jù)分析、建立具體的數(shù)據(jù)模型(具體實(shí)體關(guān)系圖);
3、 業(yè)務(wù)活動(dòng)分析(分析業(yè)務(wù)過程細(xì)節(jié)、分解業(yè)務(wù)過程、分析過程間的依靠關(guān)系、分析業(yè)務(wù)交互作用、建立業(yè)務(wù)活動(dòng)模型);
4、 現(xiàn)有系統(tǒng)分析(操作程序分解表、數(shù)據(jù)流圖、用戶視圖:用戶感愛好的字段集);
5、 業(yè)務(wù)領(lǐng)域模型的確認(rèn)(完整性、正確性、長效性)進(jìn)入討論組討論。
十一、調(diào)研說明與基本問題
不少行業(yè)的業(yè)務(wù)都是由一系列環(huán)節(jié)構(gòu)成的業(yè)務(wù)流程組成的,有的簡單只有一兩個(gè)環(huán)節(jié),有的復(fù)雜有多個(gè)環(huán)節(jié),還可能有循環(huán)或分枝,系統(tǒng)軟件不僅要解決獨(dú)立環(huán)節(jié)的業(yè)務(wù)問題,而且要能夠自動(dòng)把這些環(huán)節(jié)串聯(lián)起來,
![]()
希望一個(gè)環(huán)節(jié)所做的工作能夠自動(dòng)被下一個(gè)環(huán)節(jié)利用,這就是最基本工作流的需求。例如一個(gè)案件從接案、立案、偵查、起訴,到執(zhí)行由不同的部門來完成。這些環(huán)節(jié)不是獨(dú)立的,后面的環(huán)節(jié)不應(yīng)該比前面的發(fā)生的早,也不能延遲過多,因?yàn)榇嬖诜蓵r(shí)限,并且流程中存在循環(huán),也就是說某些環(huán)節(jié)可能重復(fù)多次,再者每個(gè)部門的流程種類又多,每個(gè)工作人員可能要處理多個(gè)環(huán)節(jié)上的任務(wù)。因此我們把每個(gè)業(yè)務(wù)的每個(gè)環(huán)節(jié)搞清楚,主要搞清以下幾個(gè)基本問題:
每個(gè)流程中的每個(gè)環(huán)節(jié)是否已經(jīng)不能再分解?
每個(gè)流程中的每個(gè)環(huán)節(jié)的主辦(責(zé)任)部門是誰?
每個(gè)環(huán)節(jié)要求的輸入(項(xiàng)目、格式、方式)和輸出(項(xiàng)目、格式、方式)是什么?
每個(gè)環(huán)節(jié)的輸入和輸出之間的變化或關(guān)系是什么?
每個(gè)環(huán)節(jié)的輸入的數(shù)據(jù)來源是什么?
每個(gè)環(huán)節(jié)的輸出的數(shù)據(jù)去向是什么?
每個(gè)環(huán)節(jié)的數(shù)據(jù)項(xiàng)目有無國家標(biāo)準(zhǔn)或部頒標(biāo)準(zhǔn)或其他標(biāo)準(zhǔn)?
每個(gè)環(huán)節(jié)的數(shù)據(jù)項(xiàng)目的類型是什么?
每個(gè)環(huán)節(jié)的責(zé)任人對(duì)本環(huán)節(jié)中數(shù)據(jù)項(xiàng)目的權(quán)限是什么?(可新建、可刪除、可修改、只讀、)
每個(gè)環(huán)節(jié)的輸入的數(shù)據(jù)項(xiàng)目有無檢驗(yàn)規(guī)則?(如不能為空)
從一個(gè)環(huán)節(jié)到下一個(gè)環(huán)節(jié)的條件是什么?
從一個(gè)環(huán)節(jié)到下一個(gè)環(huán)節(jié)有無時(shí)間限制?是多少?
收集上來的表單用在哪個(gè)業(yè)務(wù)中的哪個(gè)環(huán)節(jié)?
多個(gè)表單間的關(guān)系:繼續(xù)?關(guān)聯(lián)?

十二、需求治理
需求調(diào)研分析過程是一個(gè)由粗到細(xì)、漸進(jìn)明晰、持續(xù)完善的過程。在指導(dǎo)后面系統(tǒng)設(shè)計(jì),編碼階段時(shí)都應(yīng)當(dāng)不斷完善修改需求文檔,因此需求治理非常重要。需求治理包括在工程進(jìn)展過程中維持需求約定集成型和精確性的所有活動(dòng),它是CMM模型二級(jí)中的首要KPA(要害過程域),這些活動(dòng)包括:
(1) 定義需求基線(需求文檔的主體);
(2) 評(píng)審提出的需求變更申請、評(píng)估每項(xiàng)變更可能的影響,從而決定是否實(shí)施變更;
(3) 以一種可控的方式將需求變更融入到項(xiàng)目中;
(4) 使當(dāng)前的項(xiàng)目計(jì)劃與需求保持一致;
(5) 分析變更所產(chǎn)生的影響并在此基礎(chǔ)上協(xié)商出新的約定;
(6) 使每項(xiàng)需求都能與其對(duì)應(yīng)的設(shè)計(jì)、源代碼和測試用例聯(lián)系起來以實(shí)現(xiàn)跟蹤;
(7) 在整個(gè)項(xiàng)目過程中跟蹤需求狀態(tài)及其變更情況。
(圖片較大,請拉動(dòng)滾動(dòng)條觀看)
本文章的留言內(nèi)容:
進(jìn)入討論組討論。