




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第3章結(jié)構(gòu)化分析本章要點(diǎn)可行性研究獲取需求的方法結(jié)構(gòu)化分析過程快速原型分析方法成本/效益分析可行性研究開發(fā)軟件需要解決的問題:Whytodo?—可行性研究Whattodo?—需求分析Howtodo?—系統(tǒng)設(shè)計(jì)可行性研究是以預(yù)測為提前,以投資效果為目的,從技術(shù)上、經(jīng)濟(jì)上、管理上進(jìn)行全面分析研究的方法。問題定義問題定義是軟件工程過程中最簡短的階段,是一個(gè)項(xiàng)目的開始。問題定義階段必須回答的關(guān)鍵問題是“要解決的問題是什么”。規(guī)范的問題定義:思想上重視客觀全面地定義嚴(yán)格評(píng)審深入分析可行性研究的內(nèi)容回答是否可行最短時(shí)間最小代價(jià)四個(gè)方面的可行性技術(shù)可行性(預(yù)期功能、質(zhì)量、效率)經(jīng)濟(jì)可行性(性價(jià)比-成本效益短長期效益)社會(huì)可行性(市場與政策)人的可行性可行性研究過程接受委托書組建研究小組事前調(diào)查編制研究計(jì)劃簽訂合同或協(xié)議正式調(diào)查分析研究優(yōu)化和選擇方案可行性研究報(bào)告主要內(nèi)容引言可行性研究前提對(duì)現(xiàn)有系統(tǒng)的分析對(duì)所建議系統(tǒng)的技術(shù)可行性分析對(duì)所建議系統(tǒng)的經(jīng)濟(jì)可行性分析社會(huì)因素可行性分析其他可供選擇的方案結(jié)論意見7循環(huán)可行性研究的步驟復(fù)查系統(tǒng)規(guī)模和目標(biāo)研究現(xiàn)有系統(tǒng)功能導(dǎo)出新系統(tǒng)模型重新定義問題導(dǎo)出和分析各種可選解決方案推薦行動(dòng)方針草擬開發(fā)計(jì)劃書寫文檔提交審查81復(fù)查系統(tǒng)規(guī)模和目標(biāo)問題定義階段的成果系統(tǒng)規(guī)模和目標(biāo)報(bào)告書復(fù)查任務(wù)改正含糊的、二義的描述改正不正確的描述核查系統(tǒng)限制和約束92研究現(xiàn)有系統(tǒng)功能分析現(xiàn)有系統(tǒng)高層系統(tǒng)流程圖確定系統(tǒng)功能比較新舊系統(tǒng)新系統(tǒng)必須完成舊系統(tǒng)的基本功能新系統(tǒng)必須改正舊系統(tǒng)存在問題新系統(tǒng)必須比舊系統(tǒng)增收入、減支出103導(dǎo)出新系統(tǒng)模型舊系統(tǒng)邏輯模型新系統(tǒng)目標(biāo)和規(guī)模邏輯模型描述工具數(shù)據(jù)流圖數(shù)據(jù)字典用例圖新系統(tǒng)邏輯模型114重新定義問題復(fù)查問題定義、規(guī)模和目標(biāo)根據(jù)新系統(tǒng)模型分析員誤解用戶遺漏重新定義問題循環(huán)(定義,分析,求解,重定義)125導(dǎo)出和分析可選解決方案從邏輯模型導(dǎo)出物理系統(tǒng)方案不同角度多個(gè)方案分析各種可選方案技術(shù)可行性操作可行性經(jīng)濟(jì)可行性為可行方案制定初步進(jìn)度計(jì)劃136推薦行動(dòng)方針得出可行性研究結(jié)果繼續(xù)開發(fā)終止項(xiàng)目推薦解決方案成本/效益147草擬開發(fā)計(jì)劃為推薦方案確定開發(fā)計(jì)劃進(jìn)度開發(fā)人員硬件設(shè)備軟件工具各階段成本估計(jì)158書寫文檔提交審查可行性研究報(bào)告各步驟結(jié)果推薦方案開發(fā)計(jì)劃等需求分析需求的基本概念
寬泛地講,需求來源于用戶的一些“需要”,這些“需要”被分析、確認(rèn)后形成完整的文檔,該文檔詳細(xì)地說明了產(chǎn)品“必須或應(yīng)當(dāng)”做什么。需求獲取是十分困難的用戶不清楚自己的希望用戶與開發(fā)人員領(lǐng)域不同不同用戶需求可能有矛盾需求經(jīng)常性的變更需求分析的任務(wù)深入描述軟件的功能和性能確定軟件設(shè)計(jì)的約束和軟件同其它系統(tǒng)元素的接口細(xì)節(jié)定義軟件的其它有效性需求需求分析研究的對(duì)象是軟件項(xiàng)目的用戶要求準(zhǔn)確地表達(dá)被接受的用戶要求確定被開發(fā)軟件系統(tǒng)的系統(tǒng)元素將功能和信息結(jié)構(gòu)分配到這些系統(tǒng)元素中需求分析的任務(wù)就是借助于當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型,解決目標(biāo)系統(tǒng)的“做什么”的問題。19需求分析的步驟(1)調(diào)查研究從系統(tǒng)的角度來理解軟件并評(píng)審軟件范圍是否恰當(dāng)確定對(duì)目標(biāo)系統(tǒng)的綜合要求,即軟件的需求提出這些需求實(shí)現(xiàn)條件,以及需求應(yīng)達(dá)到的標(biāo)準(zhǔn)20軟件的需求包括:功能需求性能需求環(huán)境需求可靠性需求安全保密要求用戶界面需求資源使用需求成本消耗需求開發(fā)進(jìn)度需求預(yù)先估計(jì)以后系統(tǒng)可能達(dá)到的目標(biāo)21
調(diào)查研究的另一項(xiàng)工作是建立分析所需要的通信途徑,以保證能順利地對(duì)問題進(jìn)行分析。22(2)分析與綜合從數(shù)據(jù)流和數(shù)據(jù)結(jié)構(gòu)出發(fā),逐步細(xì)化所有的軟件功能,找出系統(tǒng)各元素之間的聯(lián)系、接口特性和設(shè)計(jì)上的約束,分析它們是否滿足功能要求,是否合理。剔除其不合理的部分,增加其需要部分。最終綜合成系統(tǒng)的解決方案,給出目標(biāo)系統(tǒng)的詳細(xì)邏輯模型。23常用的分析方法面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法(SA)面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法(JSD)面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)方法(DSSD)面向?qū)ο蟮姆治龇椒?OOA)等24(3)書寫文檔系統(tǒng)規(guī)格說明書數(shù)據(jù)要求說明書用戶系統(tǒng)描述修正的開發(fā)計(jì)劃25需求分析流程26準(zhǔn)備調(diào)查
首先,需求分析員應(yīng)當(dāng)起草需求調(diào)查問題表,將調(diào)查重點(diǎn)鎖定在該問題表內(nèi),否則調(diào)查工作將變得漫無邊際。問題表可以有多份,隨著調(diào)查的深入,問題表將不斷地被細(xì)化。根據(jù)經(jīng)驗(yàn),用戶通常沒有耐心回答復(fù)雜的論述題,所以問題表應(yīng)當(dāng)以“選擇題”和“是非題”為主。制定問題表最簡便的方法就是從《用戶需求說明書》的模板中提取需求問題。其次,需求分析員應(yīng)當(dāng)確定需求調(diào)查的方式,例如:與用戶交談,向用戶提問題。向用戶群體發(fā)調(diào)查問卷。參觀用戶的工作流程,觀察用戶的操作。與同行、專家交談,聽取他們的意見。分析已經(jīng)存在的同類軟件產(chǎn)品,提取需求。從行業(yè)標(biāo)準(zhǔn)、規(guī)則中提取需求。從Internet上搜查相關(guān)資料。最后,需求分析員與被調(diào)查者建立聯(lián)系,確定調(diào)查的時(shí)間、地點(diǎn)、人員等,撰寫需求調(diào)查計(jì)劃。要特別留意的是不要漏掉典型的用戶。
如何開展需求調(diào)查
27執(zhí)行調(diào)查
準(zhǔn)備工作完畢后,需求分析員按照計(jì)劃執(zhí)行調(diào)查。在調(diào)查過程中隨時(shí)記錄(或存儲(chǔ))需求信息。需求分析員與用戶面談時(shí)應(yīng)當(dāng)注意以下事項(xiàng):
如果與用戶約好了時(shí)間,切勿遲到或早退。要注意禮節(jié),盡可能獲得用戶的好感,并為下次打擾他們埋下伏筆。需求分析員應(yīng)事先了解用戶的身份、背景,以便隨機(jī)應(yīng)變。IT人士不可貌相,有些大企業(yè)的領(lǐng)導(dǎo)其外表很土氣,象農(nóng)民。如果你路上碰到他,以為是個(gè)勤雜工,說:“喂,老師傅,來幫我拎東西?!币苍S這筆生意就泡湯了。需求調(diào)查不象偵探推理那樣從蛛絲馬跡著手,應(yīng)該先了解宏觀問題,再了解細(xì)節(jié)問題。如果雙方氣氛融洽,可以采用靈活的訪談形式,輕易不要打斷用戶的談話。當(dāng)雙方對(duì)某些問題的交流合乎邏輯地結(jié)束后,即可繼續(xù)討論問題表中的其它問題。盡可能避免為用戶添麻煩,但也不能怕給用戶添麻煩而降低需求調(diào)查的力度。避免片面地聽取某些用戶的需求而忽視其它用戶的需求。28《用戶需求說明書》與《產(chǎn)品需求規(guī)格說明書》的主要區(qū)別與聯(lián)系前者主要采用自然語言(和應(yīng)用域術(shù)語)來表達(dá)用戶需求,其內(nèi)容相對(duì)于后者而言比較粗略,不夠詳細(xì)。后者是前者的細(xì)化,更多地采用計(jì)算機(jī)語言和圖形符號(hào)來刻畫需求,產(chǎn)品需求是軟件系統(tǒng)設(shè)計(jì)的直接依據(jù)。兩者之間可能并不存在一一映射關(guān)系,因?yàn)檐浖_發(fā)商會(huì)根據(jù)產(chǎn)品發(fā)展戰(zhàn)略、企業(yè)當(dāng)前狀況適當(dāng)?shù)卣{(diào)整產(chǎn)品需求,例如用戶需求可能被分配到軟件的數(shù)個(gè)版本中。軟件開發(fā)人員應(yīng)當(dāng)依據(jù)《產(chǎn)品需求規(guī)格說明書》來開發(fā)當(dāng)前產(chǎn)品。
撰寫《用戶需求說明書》29用戶需求說明書的參考模板30什么是好的需求規(guī)格說明書1正確
需求規(guī)格說明書應(yīng)當(dāng)正確地反映用戶的真實(shí)意圖,“正確”是《產(chǎn)品需求規(guī)格說明書》最重要的屬性。如果“不正確”僅僅是由于錯(cuò)別字造成的,那么多檢查幾遍文檔就能解決問題。真正的困難是開發(fā)者和用戶自己都不明白用戶究竟“想要什么”和“不要什么”。為確保需求是正確的,開發(fā)方和用戶必須對(duì)《需求規(guī)格說明書》進(jìn)行確認(rèn)。2清楚清楚的需求讓人易讀易懂。清楚的反義詞是“難讀”、“難理解”。你可以采用反問的方式來判斷需求文檔是否清楚:文檔的結(jié)構(gòu)、段落是否亂七八糟?上下文是否不連貫?文檔的語句是否含糊其詞、羅里羅嗦?看了半天是否還不明白需求究竟是什么?313無二義性
“無二義性”是指每個(gè)需求只有唯一的含義。如果一個(gè)人說的話,不同的人可能有不同的理解,那么這句話就有二義性。如果需求存在二義性,將會(huì)導(dǎo)致人們誤解需求而開發(fā)出偏離需求的產(chǎn)品。為了使需求無二義性,人們在寫《產(chǎn)品需求規(guī)格說明書》時(shí)措詞應(yīng)當(dāng)準(zhǔn)確,切勿模棱兩可。4一致
“一致”(Consistent)是指《產(chǎn)品需求規(guī)格說明書》中各個(gè)需求之間不會(huì)發(fā)生矛盾。矛盾常常潛伏在需求文檔的上下文中。5必要
《產(chǎn)品需求規(guī)格說明書》中的各項(xiàng)需求對(duì)用戶而言應(yīng)當(dāng)都是必要的??梢园选氨匾北扔鳛椤把┲兴吞俊??!氨匾蓖耙徊?,要么是“畫蛇添足”要么是“錦上添花”。32“畫蛇添足”顯然是壞事,會(huì)導(dǎo)致開發(fā)人員多干一些吃力不討好的工作。所以要盡量剔除需求規(guī)格說明書中“畫蛇添足”的那些需求?!板\上添花”是好事,可能會(huì)讓用戶獲得比期望更多的喜悅,但是眼前用戶不會(huì)為此多付錢。開發(fā)者應(yīng)當(dāng)集中精力先完成必要的需求,如果條件允許則再做“錦上添花”的需求。為了避免主次顛倒,應(yīng)當(dāng)在《產(chǎn)品需求規(guī)格說明書》中將那些“錦上添花”的需求設(shè)置為較低的優(yōu)先級(jí)。
6完備“完備”(Complete)是指《產(chǎn)品需求規(guī)格說明書》中沒有遺漏一些必要的需求。人們往往傾向于關(guān)注系統(tǒng)的特色功能,而忽視了其它一些不起眼的但卻是必需的功能。不完備的《產(chǎn)品需求規(guī)格說明書》將導(dǎo)致產(chǎn)生功能不完整的軟件,用戶在使用該軟件時(shí)可能無法完成預(yù)期的任務(wù)。
337可實(shí)現(xiàn)《產(chǎn)品需求規(guī)格說明書》中的各項(xiàng)需求對(duì)開發(fā)方而言應(yīng)當(dāng)都是可實(shí)現(xiàn)的(Attainable)?!翱蓪?shí)現(xiàn)”意味著在技術(shù)上是可行的,并且滿足時(shí)間、費(fèi)用、質(zhì)量等約束。營銷人員和用戶談生意時(shí),為了能拿到“單子”,他們往往對(duì)用戶提出的需求“來者不拒”。吹牛皮雖然不犯法,但是《產(chǎn)品需求規(guī)格說明書》可是白紙黑字啊。經(jīng)過雙方確認(rèn)的《產(chǎn)品需求規(guī)格說明書》相當(dāng)于商業(yè)合同,如果開發(fā)方不能夠?qū)崿F(xiàn)《產(chǎn)品需求規(guī)格說明書》中的內(nèi)容,那就是違約,可能會(huì)被罰款的。對(duì)于合同項(xiàng)目,如果開發(fā)方不能確信某些需求是否可實(shí)現(xiàn),則應(yīng)事先與用戶協(xié)商,達(dá)成一致的處理意見,避免將來發(fā)生商業(yè)糾紛。348可驗(yàn)證
《產(chǎn)品需求規(guī)格說明書》中的各項(xiàng)需求對(duì)用戶方而言應(yīng)當(dāng)都是可驗(yàn)證的(Verifiable)。如果需求是不可驗(yàn)證的,那么用戶就無法驗(yàn)收軟件,可能會(huì)發(fā)生商業(yè)糾紛。例如,摩天大樓的一項(xiàng)需求是“抗十二級(jí)臺(tái)風(fēng)”,這個(gè)需求看起來堂而皇之,但是如何驗(yàn)證呢?當(dāng)摩天大樓完工后驗(yàn)收時(shí),用戶又不是巫師,他怎能造個(gè)十二級(jí)臺(tái)風(fēng)來試驗(yàn)?如果雙方都認(rèn)可“采用計(jì)算機(jī)模擬十二級(jí)臺(tái)風(fēng)”等效于實(shí)際測試,那么這項(xiàng)需求就是“可驗(yàn)證”的。9確定優(yōu)先級(jí)為什么要確定需求的“優(yōu)先級(jí)”?理論上講,軟件的所有需求都應(yīng)當(dāng)被實(shí)現(xiàn)。但是在現(xiàn)實(shí)之中,項(xiàng)目存在“進(jìn)度、費(fèi)用、人力資源”等限制。在項(xiàng)目剛開始的時(shí)候,開發(fā)方和客戶比較樂觀,什么都要做,可是做著做著,人們常常會(huì)面臨“進(jìn)度延誤、費(fèi)用超支、人員不足”等問題,這時(shí)就亂套了。人們想出了“取舍”辦法:先做優(yōu)先級(jí)高的需求,后做(甚至放棄)優(yōu)先級(jí)低的需求,這樣可以將風(fēng)險(xiǎn)降到最低。35需求的優(yōu)先級(jí)其實(shí)就是需求“輕重緩急”的分級(jí)表述,例如劃分為“高、中、低”三級(jí)。一般地,由用戶和開發(fā)方共同確定需求的優(yōu)先級(jí)。10闡述“做什么”而不是“怎么做”
《產(chǎn)品需求規(guī)格說明書》的重點(diǎn)是闡述“做什么”,而不是闡述“怎么做”?!霸趺醋觥笔窍到y(tǒng)設(shè)計(jì)和實(shí)現(xiàn)階段的事情。國內(nèi)的很多軟件公司里,開發(fā)人員常常身兼數(shù)職,可能把需求開發(fā)、系統(tǒng)設(shè)計(jì)、編程等工作從頭做到尾。所以他們在調(diào)查、分析、定義需求時(shí),自然會(huì)想到“怎么做”,這并沒有什么過錯(cuò)。如果在調(diào)查、定義需求時(shí)想好了“怎么做”,當(dāng)然應(yīng)該寫下來,否則豈不浪費(fèi)!關(guān)鍵是不要將“怎么做”寫到需求規(guī)格說明書里面,記錄在其它文檔里就行了。36結(jié)構(gòu)化分析方法
面向數(shù)據(jù)流進(jìn)行需求分析的方法結(jié)構(gòu)化分析方法適合于數(shù)據(jù)處理類型軟件的需求分析具體來說,結(jié)構(gòu)化分析方法就是用抽象模型的概念,按照軟件內(nèi)部數(shù)據(jù)傳遞、變換的關(guān)系,自頂向下逐層分解,直到找到滿足功能要求的所有可實(shí)現(xiàn)的軟件為止37結(jié)構(gòu)化分析方法使用工具:
數(shù)據(jù)流圖數(shù)據(jù)詞典結(jié)構(gòu)化語言
IPO處理描述判定表與判定樹38數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,以圖形的方式刻畫數(shù)據(jù)流從輸入到輸出的傳輸變換過程。是結(jié)構(gòu)化系統(tǒng)分析的主要工具。數(shù)據(jù)流圖的特性:抽象性、概括性、層次性數(shù)據(jù)流圖39
加工(數(shù)據(jù)變換)是數(shù)據(jù)流圖的核心,一個(gè)處理可以表示一個(gè)程序、一個(gè)模塊或多個(gè)程序,也可以是人工處理過程。為使系統(tǒng)清晰,每個(gè)處理應(yīng)給予一個(gè)編號(hào),并寫出處理的名稱。數(shù)據(jù)輸入的源點(diǎn)(Source)或數(shù)據(jù)輸出的匯點(diǎn)(Sink)其中要注明源點(diǎn)或匯點(diǎn)的名字?jǐn)?shù)據(jù)流被加工的數(shù)據(jù)與流向,箭頭邊應(yīng)給出數(shù)據(jù)流名字,可用名詞或名詞性短語命名。數(shù)據(jù)存儲(chǔ)文件保存數(shù)據(jù)的地方,它可以是文件,數(shù)據(jù)庫表或是它們的一部分,用名詞或名詞性短語命名。數(shù)據(jù)流圖中的主要圖形元素N140數(shù)據(jù)流與數(shù)據(jù)加工之間的關(guān)系41數(shù)據(jù)流圖的層次結(jié)構(gòu)為了表達(dá)數(shù)據(jù)處理過程的數(shù)據(jù)加工情況,需要采用層次結(jié)構(gòu)的數(shù)據(jù)流圖。按照系統(tǒng)的層次結(jié)構(gòu)進(jìn)行逐步分解,并以分層的數(shù)據(jù)流圖反映這種結(jié)構(gòu)關(guān)系,能清楚地表達(dá)和容易理解整個(gè)系統(tǒng)42數(shù)據(jù)流圖的功能系統(tǒng)分析員用這種工具可以自頂向下分析系統(tǒng)信息流程可在圖上劃出需要計(jì)算機(jī)處理的部分根據(jù)數(shù)據(jù)存儲(chǔ),進(jìn)一步作數(shù)據(jù)分析,向數(shù)據(jù)庫設(shè)計(jì)過渡根據(jù)數(shù)據(jù)流向,定出存取放式。對(duì)應(yīng)一個(gè)處理過程,用相應(yīng)的語言、判定表等工具表達(dá)處理方法。43
分層數(shù)據(jù)流圖的設(shè)計(jì)方法
第一步,畫子系統(tǒng)的輸入輸出
把整個(gè)系統(tǒng)視為一個(gè)大的加工,然后根據(jù)數(shù)據(jù)系統(tǒng)從哪些外部實(shí)體接收數(shù)據(jù)流,以及系統(tǒng)發(fā)送數(shù)據(jù)流到那些外部實(shí)體,就可以畫出輸入輸出圖。這張圖稱為頂層圖。第二步,畫子系統(tǒng)的內(nèi)部
把頂層圖的加工分解成若干個(gè)加工,并用數(shù)據(jù)流將這些加工連接起來,使得頂層圖的輸入數(shù)據(jù)經(jīng)過若干加工處理后,變成頂層圖的輸出數(shù)據(jù)流。這張圖稱為0層圖。從一個(gè)加工畫出一張數(shù)據(jù)流圖的過程就是對(duì)加工的分解。44
分層數(shù)據(jù)流圖的設(shè)計(jì)方法
第一步,畫子系統(tǒng)的輸入輸出
把整個(gè)系統(tǒng)視為一個(gè)大的加工,然后根據(jù)數(shù)據(jù)系統(tǒng)從哪些外部實(shí)體接收數(shù)據(jù)流,以及系統(tǒng)發(fā)送數(shù)據(jù)流到那些外部實(shí)體,就可以畫出輸入輸出圖。這張圖稱為頂層圖。第二步,畫子系統(tǒng)的內(nèi)部
把頂層圖的加工分解成若干個(gè)加工,并用數(shù)據(jù)流將這些加工連接起來,使得頂層圖的輸入數(shù)據(jù)經(jīng)過若干加工處理后,變成頂層圖的輸出數(shù)據(jù)流。這張圖稱為0層圖。從一個(gè)加工畫出一張數(shù)據(jù)流圖的過程就是對(duì)加工的分解。45第三步,畫加工的內(nèi)部
把每個(gè)加工看作一個(gè)小系統(tǒng),把加工的輸入輸出數(shù)據(jù)流看成小系統(tǒng)的輸入輸出流。于是可以象畫0層圖一樣畫出每個(gè)小系統(tǒng)的加工的DFD圖。第四步,畫子加工的分解圖
對(duì)第三步分解出來的DFD圖中的每個(gè)加工,重復(fù)第三步的分解過程,直到圖中尚未分解的加工都是足夠簡單的(即不可再分解)。至此,得到了一套分層數(shù)據(jù)流圖。第五步,對(duì)數(shù)據(jù)流圖和加工編號(hào)
對(duì)于一個(gè)軟件系統(tǒng),其數(shù)據(jù)流圖可能有許多層,每一層又有許多張圖。為了區(qū)分不同的加工和不同的DFD子圖,應(yīng)該對(duì)每張圖進(jìn)行編號(hào),以便于管理。46分層的數(shù)據(jù)流圖47在多層數(shù)據(jù)流圖中,頂層流圖僅包含一個(gè)加工,它代表被開發(fā)系統(tǒng)。它的輸入流是該系統(tǒng)的輸入數(shù)據(jù),輸出流是系統(tǒng)所輸出數(shù)據(jù)底層流圖是指其加工不需再做分解的數(shù)據(jù)流圖,它處在最底層中間層流圖則表示對(duì)其上層父圖的細(xì)化。它的每一加工可能繼續(xù)細(xì)化,形成子圖。48結(jié)構(gòu)化分析方法步驟示例
商店業(yè)務(wù)處理系統(tǒng)49這個(gè)數(shù)據(jù)流圖只是一個(gè)高層的系統(tǒng)邏輯模型,它反映了目標(biāo)系統(tǒng)要實(shí)現(xiàn)的功能數(shù)據(jù)流圖繪制步驟首先畫系統(tǒng)的輸入輸出,即先畫頂層數(shù)據(jù)流圖。頂層流圖只包含一個(gè)加工,用以表示被開發(fā)的系統(tǒng),然后考慮該系統(tǒng)有哪些輸入數(shù)據(jù)、輸出數(shù)據(jù)流。頂層圖的作用在于表明被開發(fā)系統(tǒng)的范圍以及它和周圍環(huán)境的數(shù)據(jù)交換關(guān)系。
畫系統(tǒng)內(nèi)部,即畫下層數(shù)據(jù)流圖。不再分解的加工稱為基本加工。一般將層號(hào)從0開始編號(hào),采用自頂向下,由外向內(nèi)的原則。畫0層數(shù)據(jù)流圖時(shí),分解頂層流圖的系統(tǒng)為若干子系統(tǒng),決定每個(gè)子系統(tǒng)間的數(shù)據(jù)接口和活動(dòng)關(guān)系。50【例題】
考務(wù)處理系統(tǒng)的分層數(shù)據(jù)流圖如下圖所示。 該考務(wù)處理系統(tǒng)有如下功能:①對(duì)考生送來的報(bào)名表進(jìn)行檢查; ②對(duì)合格的報(bào)名表編好準(zhǔn)考證號(hào)碼后將準(zhǔn)考證送給考生,并將匯總后的考生名單送給閱卷站; ③對(duì)閱卷站送來的成績表進(jìn)行檢查,并根據(jù)考試中心指定的合格標(biāo)準(zhǔn)審定合格者; ④填寫考生通知單(內(nèi)容包含考試成績及合格/不合格標(biāo)志),送給考生; ⑤按地區(qū)、年齡、文化程度、職業(yè)、考試級(jí)別等進(jìn)行成績分類統(tǒng)計(jì)及試題難度分析,產(chǎn)生統(tǒng)計(jì)分析表。 515253應(yīng)注意的問題:①適當(dāng)?shù)貫閿?shù)據(jù)流、加工、文件、數(shù)據(jù)的源/匯點(diǎn)命名。名字應(yīng)反映該元素的實(shí)際含義,避免空洞的名字。如數(shù)據(jù)、信息處理、計(jì)算等名字都不好。②畫數(shù)據(jù)流時(shí)不要夾帶控制流。數(shù)據(jù)流圖中各種數(shù)據(jù)的加工沒有考慮時(shí)序關(guān)系,引入控制流后,加工之間就有了時(shí)序關(guān)系,這與畫數(shù)據(jù)流圖不考慮實(shí)現(xiàn)細(xì)節(jié)的初衷相違背。③一個(gè)加工的輸出數(shù)據(jù)流不要與該加工的輸入數(shù)據(jù)流重名,即使它們的組成成分相同。例如圖(c)中加工1.1的輸入數(shù)據(jù)流“報(bào)名表”與輸出數(shù)據(jù)流“合格報(bào)名表”。④允許一個(gè)加工有多個(gè)數(shù)據(jù)流流向另一個(gè)加工,也允許一個(gè)加工有兩個(gè)相同的輸出數(shù)據(jù)流流向兩個(gè)不同的加工。⑤保持父圖與子圖的平衡。就是說,父圖與它的子圖的輸入數(shù)據(jù)流與輸出數(shù)據(jù)流應(yīng)當(dāng)在數(shù)量與名字上都相同。特別的是,如果父圖的一個(gè)輸入(或輸出)數(shù)據(jù)流對(duì)應(yīng)于子圖中幾個(gè)輸入(或輸出)數(shù)據(jù)流,但子圖中這幾個(gè)數(shù)據(jù)流中的數(shù)據(jù)項(xiàng)合起來正好是父圖中的那個(gè)數(shù)據(jù)流,這時(shí)它們還算是平衡的。例如,圖(b)中加工2的輸出數(shù)據(jù)流“統(tǒng)計(jì)分析表”是由“難度分析表”和“分類統(tǒng)計(jì)表”組成,那么圖(b)與圖(d)仍滿足父圖與子圖平衡的條件。⑥在自頂向下的分解過程中,若一個(gè)文件首次出現(xiàn)時(shí)只與一個(gè)加工有關(guān),那么這個(gè)文件應(yīng)作為這個(gè)加工的內(nèi)部文件而不必畫出。例如,圖(d)中的文件“試題得分表”就是圖(b)中加工的內(nèi)部文件,所以在圖(b)中沒有畫出。⑦保持?jǐn)?shù)據(jù)守恒。就是說,一個(gè)加工的所有輸出數(shù)據(jù)流中的數(shù)據(jù)必須能從該加工的輸入數(shù)據(jù)流中直接獲得,或者是通過該加工產(chǎn)生的數(shù)據(jù)。54檢查和修改數(shù)據(jù)流圖的原則數(shù)據(jù)流圖上所有圖形符號(hào)只限于前述四種基本圖形元素?cái)?shù)據(jù)流圖的主圖必須包括前述四種基本元素,缺一不可數(shù)據(jù)流圖的主圖上的數(shù)據(jù)流必須封閉在外部實(shí)體之間每個(gè)加工至少有一個(gè)輸入數(shù)據(jù)流和一個(gè)輸出數(shù)據(jù)流55在數(shù)據(jù)流圖中,需按層給加工框編號(hào)。編號(hào)表明該加工所處層次及上下層的父圖與子圖的對(duì)應(yīng)關(guān)系任何一個(gè)數(shù)據(jù)流子圖必須與它上一層的一個(gè)加工對(duì)應(yīng),兩者的輸入數(shù)據(jù)流和輸出數(shù)據(jù)流必須一致。此即父圖與子圖的平衡圖上每個(gè)元素都必須有名字?jǐn)?shù)據(jù)流圖中不可夾帶控制流初畫時(shí)可以忽略瑣碎的細(xì)節(jié),以集中精力于主要數(shù)據(jù)流56數(shù)據(jù)流圖的優(yōu)缺點(diǎn)總體概念強(qiáng),每一層都明確強(qiáng)調(diào)干什么,需要什么,給出什么??梢苑从吵鰯?shù)據(jù)的流向和處理過程。由于自頂向下分析,容易及早發(fā)現(xiàn)系統(tǒng)各部分的邏輯結(jié)構(gòu),也容易修正。不直觀,一般都要在作業(yè)流程分析的基礎(chǔ)上加以概括、抽象、修正來得到。人工繪制太麻煩,工作量較大。57數(shù)據(jù)字典數(shù)據(jù)字典與數(shù)據(jù)流圖配合,能清楚地表達(dá)數(shù)據(jù)處理的要求數(shù)據(jù)字典的內(nèi)容:
數(shù)據(jù)流數(shù)據(jù)項(xiàng)數(shù)據(jù)存儲(chǔ)基本加工58(1)數(shù)據(jù)流數(shù)據(jù)流名稱及其編號(hào)數(shù)據(jù)流的來源:來自何方數(shù)據(jù)流的去向:去向何處數(shù)據(jù)流的組成:數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)量的流通量:單位時(shí)間的傳輸次數(shù)高峰時(shí)期的流通量:業(yè)務(wù)的頻繁程度和時(shí)間有關(guān)59數(shù)據(jù)結(jié)構(gòu)的描述60例存折格式
在取款數(shù)據(jù)流圖中,數(shù)據(jù)文件“存折”的格式如下圖所示:它在數(shù)據(jù)字典中的定義格式為:61存折=戶名+所號(hào)+帳號(hào)+開戶日+性質(zhì)+(印密)+1{存取行}50戶名=2{字母}24所號(hào)=“001”..“999”帳號(hào)=“00000001”..“99999999”開戶日=年+月+日性質(zhì)=“1”..“6”注:“1”表示普通戶,“5”表示工資戶等印密=“0”注:印密在存折上不顯示存取行=日期+(摘要)+支出+存入+余額+操作+復(fù)核62購書單發(fā)票領(lǐng)書單審查并開發(fā)票開領(lǐng)書單無效書單學(xué)生12各班學(xué)生用書表例:學(xué)生教材存量表63數(shù)據(jù)流條目說明舉例數(shù)據(jù)流名:發(fā)票別名:無簡述:學(xué)生購書時(shí)填寫的項(xiàng)目來源:學(xué)生去向:加工1“審查并開發(fā)票”組成:(學(xué)號(hào))+姓名+{書號(hào)+數(shù)量}數(shù)據(jù)流量:1000次/周
高峰值:開學(xué)期間1000次/天
64(2)數(shù)據(jù)項(xiàng)(數(shù)據(jù)元素)數(shù)據(jù)項(xiàng)名稱及編號(hào):別名:取值的范圍和取值的含義數(shù)據(jù)項(xiàng)的長度:數(shù)據(jù)項(xiàng)所包含的字符或數(shù)字的位數(shù)65(3)數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)的名稱及其編號(hào):流入的數(shù)據(jù)流:指出其來源流出的數(shù)據(jù)流:指出其去向數(shù)據(jù)存儲(chǔ)的組成:指它所包含的數(shù)據(jù)項(xiàng)或數(shù)據(jù)結(jié)構(gòu)66數(shù)據(jù)存儲(chǔ)的例子數(shù)據(jù)存儲(chǔ)名稱:銷售歷史編號(hào):F05-01簡述:公司從九月初到目前為止所有配件的銷售量流入的數(shù)據(jù)流:“顧客的發(fā)貨單”,來源是“產(chǎn)生發(fā)貨單”處理邏輯流出的數(shù)據(jù)流:“銷售量”,去向是“產(chǎn)生銷售報(bào)表”處理邏輯數(shù)據(jù)存儲(chǔ)的組成:配件編號(hào)+日期+銷售量67(4)處理邏輯處理邏輯的編號(hào)及名稱簡述處理邏輯的輸入和輸出處理邏輯的主要功能處理邏輯的小說明(文檔之一)68加工邏輯說明結(jié)構(gòu)化語言判定表判定樹
對(duì)數(shù)據(jù)流圖中每個(gè)基本加工都必須有一個(gè)加工小說明,給出這個(gè)加工的精確描述。小說明中應(yīng)精確地描述加工的激發(fā)條件、加工邏輯、優(yōu)先級(jí)、執(zhí)行頻率和出錯(cuò)處理等。對(duì)基本加工說明有三種描述方式:69結(jié)構(gòu)化語言
介于自然語言和形式語言之間的語言結(jié)構(gòu)化語言的特點(diǎn):無確定語法可分層、嵌套70處理名:核實(shí)訂票處理(MHGP3200MD)編號(hào):3.2激活條件:收到取訂票信息處理邏輯:1讀訂票旅客信息文件
2搜索此文件中是否有與輸入信息中姓名及身份證號(hào)相符的項(xiàng)
IF
有
THEN判斷余項(xiàng)是否與文件中信息相符
IF是THEN輸出已訂票信息
ELSE輸出未訂票信息
ELSE
輸出未訂票信息執(zhí)行頻率:實(shí)時(shí)71判定表(決策表)描述多條件、多目標(biāo)動(dòng)作的形式化工具判定表舉例(計(jì)算機(jī)票折扣率)
旅游時(shí)間訂票量折扣量7
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 天津物業(yè)薪酬管理制度
- 員工借款金額管理制度
- 地下礦山安全管理制度
- 小學(xué)編程社團(tuán)管理制度
- 工程往來資料管理制度
- 獸藥銷售現(xiàn)場管理制度
- 外包單位服務(wù)管理制度
- 公司報(bào)銷財(cái)務(wù)管理制度
- 監(jiān)理師職業(yè)生態(tài)試題及答案
- 行政組織理論的影響機(jī)制試題及答案
- DB42T1745-2021橋梁高強(qiáng)度螺栓連接安裝技術(shù)指南
- 實(shí)驗(yàn)室安全記錄表
- 進(jìn)出口業(yè)務(wù)內(nèi)部審計(jì)制
- 揚(yáng)塵污染防治監(jiān)理實(shí)施細(xì)則
- 詞匯及翻譯四級(jí)漢譯英練習(xí)
- 教科版二年級(jí)下冊各單元知識(shí)整理復(fù)習(xí)及思維導(dǎo)圖-課件
- 四年級(jí)下冊數(shù)學(xué)課件-3 乘法分配律2-冀教版14張PPT
- 《學(xué)弈》優(yōu)質(zhì)課教學(xué)課件
- erp動(dòng)畫(做飯)ppt課件
- 2022屆北京市海淀區(qū)高考語文查漏補(bǔ)缺練習(xí)(七):文學(xué)類文本
- 2022年檢驗(yàn)科三基試題及答案
評(píng)論
0/150
提交評(píng)論